Invocar una función lambda cuando se implementa otra función lambda
Tengo una función lambda de AWS que proporciona objetos de configuración. Cada vez que se actualiza esta función lambda (es decir, se implementa de nuevo), necesito activar otra función lambda, que detecta cambios en esos objetos de configuración y toma alguna acción. ¿Cómo superviso esta implementación de lambda? ¿A qué evento de observación en la nube debo suscribirme?
Respuestas
Supongo que CodeDeploy no administra sus implementaciones de lambda . Si es así, recomendaría considerar la posibilidad de crear una versión de prueba de CloudTrial .
Una vez que se crea la prueba de CT con la configuración predeterminada, monitoreará todas las llamadas de API de administración a su función lambda. Uno de ellos es UpdateFunctionCode. Por lo tanto, puede crear una regla de CloudWatch para AWS API Call via CloudTrail. La regla se activaría en la llamada de API de actualización de función.
Ejemplo de tal regla:
{
"source": [
"aws.lambda"
],
"detail-type": [
"AWS API Call via CloudTrail"
],
"detail": {
"eventSource": [
"lambda.amazonaws.com"
],
"eventName": [
"UpdateFunctionCode"
]
}
}
Luego, puede activar una segunda lambda, basada en el evento de actualización capturado de la primera función.
Basado en la sugerencia de @ Marcin, usé el registro de la consola para imprimir el evento. La siguiente regla ayudó a filtrar una función específica;
{
"source": [
"aws.lambda"
],
"detail-type": [
"AWS API Call via CloudTrail"
],
"detail": {
"eventSource": [
"lambda.amazonaws.com"
],
"eventName": [
"UpdateFunctionCode20150331v2"
],
"responseElements": {
"functionName": [
"myFunction"
]
}
}
}