Invocar uma função lambda quando outra função lambda for implantada
Eu tenho uma função lambda da AWS que fornece objetos de configuração. Sempre que esta função lambda é atualizada (ou seja, implantada novamente), preciso acionar outra função lambda, que detecta alterações nesses objetos de configuração e executa alguma ação. Como faço para monitorar esta implantação lambda, em qual evento de observação em nuvem preciso me inscrever?
Respostas
Presumo que suas implantações lambda não sejam gerenciadas por CodeDeploy . Em caso afirmativo, eu recomendaria criar um teste CloudTrial .
Depois que o teste CT for criado com as configurações padrão, ele monitorará todas as chamadas de API de gerenciamento para sua função lambda. Um deles é UpdateFunctionCode. Assim, você pode criar uma regra CloudWatch para AWS API Call via CloudTrail. A regra seria acionada na chamada da API de atualização da função.
Exemplo de tal regra:
{
"source": [
"aws.lambda"
],
"detail-type": [
"AWS API Call via CloudTrail"
],
"detail": {
"eventSource": [
"lambda.amazonaws.com"
],
"eventName": [
"UpdateFunctionCode"
]
}
}
Em seguida, você pode acionar um segundo lambda, com base no evento de atualização capturado da primeira função.
Com base na sugestão de @Marcin, usei o log do console para imprimir o evento. A regra abaixo ajudou a filtrar uma função específica;
{
"source": [
"aws.lambda"
],
"detail-type": [
"AWS API Call via CloudTrail"
],
"detail": {
"eventSource": [
"lambda.amazonaws.com"
],
"eventName": [
"UpdateFunctionCode20150331v2"
],
"responseElements": {
"functionName": [
"myFunction"
]
}
}
}