Как я могу поймать событие CREATE_COMPLETED стека CloudFormation и обработать его?

Я создаю стек CloudFormation и Lambda, которые я хочу вызвать после завершения создания стека (стек получил статус CREATE_COMPLETED). Лямбда не является ресурсом стека, но при необходимости его можно изменить, чтобы достичь результата.

Можно ли перехватить это событие для стека с помощью CloudWatchRule?

В настоящее время я могу ловить события создания ресурсов стека, но не сам процесс создания стека.

Подобные вопросы включают в себя подходы подписки CloudFormationTemplate на тему SNS, однако это вызывает SNS при каждом изменении состояния ресурса стека, но не сам стек.

Учитывая это, Lambda будет вызываться при каждом изменении ресурса, что ничего не говорит о статусе всего шаблона.

1 ответ

Это дубликат Как отправить уведомление SNS после формирования облака? и можно ли запустить лямбду при создании из шаблона CloudFormation

Правила CloudWatch здесь не являются решением, поскольку правила запускаются ограниченным набором сервисов или вызовов API. (см. список здесь https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/EventTypes.html).

Решение состоит в том, чтобы подключить ваш Cloudformation к теме SNS (см. Документ здесь https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html) и связать SNS с функцией Lambda.

Вы получите сообщение, как показано ниже

StackId='arn:aws:cloudformation:eu-west-1:99999999999:stack/test/b08a8460-368c-11e9-be1f-025fe09a8a16'
Timestamp='2019-02-22T10:30:41.127Z'
EventId='e710f3c0-368c-11e9-b22d-06366d428b7a'
LogicalResourceId='test'
Namespace='486652066693'
PhysicalResourceId='arn:aws:cloudformation:eu-west-1:486652066693:stack/test/b08a8460-368c-11e9-be1f-025fe09a8a16'
PrincipalId='AID....6SK'
ResourceProperties='null'
ResourceStatus='CREATE_COMPLETE'
ResourceStatusReason=''
ResourceType='AWS::CloudFormation::Stack'
StackName='test'
ClientRequestToken='Console-CreateStack-c305c793-9a83-b175-bd26-f251aee30adc' 
Другие вопросы по тегам