Appeler une fonction lambda lorsqu'une autre fonction lambda est déployée
J'ai une fonction AWS lambda qui fournit des objets de configuration. Chaque fois que cette fonction lambda est mise à jour (c'est-à-dire déployée à nouveau), je dois déclencher une autre fonction lambda, qui détecte les changements dans ces objets de configuration et prend des mesures. Comment surveiller ce déploiement lambda, à quel événement de surveillance cloud dois-je m'abonner?
Réponses
Je suppose que vos déploiements lambda ne sont pas gérés par CodeDeploy . Si tel est le cas, je recommanderais de créer un essai CloudTrial .
Une fois l'essai CT créé avec les paramètres par défaut, il surveillera tous les appels d'API de gestion à votre fonction lambda. L'un d'eux est UpdateFunctionCode. Ainsi, vous pouvez créer une règle CloudWatch pour AWS API Call via CloudTrail. La règle serait déclenchée lors de l'appel d'API de mise à jour de la fonction.
Exemple d'une telle règle:
{
"source": [
"aws.lambda"
],
"detail-type": [
"AWS API Call via CloudTrail"
],
"detail": {
"eventSource": [
"lambda.amazonaws.com"
],
"eventName": [
"UpdateFunctionCode"
]
}
}
Ensuite, vous pouvez déclencher un deuxième lambda, en fonction de l'événement de mise à jour capturé de la première fonction.
Basé sur la suggestion de @ Marcin, a utilisé le journal de la console pour imprimer l'événement. La règle ci-dessous a aidé à filtrer une fonction spécifique;
{
"source": [
"aws.lambda"
],
"detail-type": [
"AWS API Call via CloudTrail"
],
"detail": {
"eventSource": [
"lambda.amazonaws.com"
],
"eventName": [
"UpdateFunctionCode20150331v2"
],
"responseElements": {
"functionName": [
"myFunction"
]
}
}
}