Я создаю cloudwatch event
, который будет срабатывать при изменении состояния в моем code pipeline
и назначаться на SNS topic
.Я делаю все вышеописанные настройки через Cloudformation Stack
.Ниже мой шаблон стека
{
"Description": "Triggering CodePipeline notifications.",
"AWSTemplateFormatVersion": "2010-09-09",
"Parameters": {
"EmailAddress": {
"Description": "Email Address",
"Type": "String"
}
},
"Resources": {
"EventRule": {
"Type": "AWS::Events::Rule",
"Properties": {
"Description": "EventRule",
"EventPattern": {
"source": [
"aws.codepipeline"
],
"detail-type": [
"CodePipeline Pipeline Execution State Change"
],
"detail": {
"state": [
"FAILED"
],
"pipeline": [
"mypipelinename"
]
}
},
"State": "ENABLED",
"Targets": [
{
"Arn": {
"Ref": "MySNSTopic"
},
"Id": "PipelineNotificationTopic",
"InputTransformer": {
"InputTemplate": "\"The Pipeline <pipeline> has failed.\" ",
"InputPathsMap": {
"pipeline": "$.detail.pipeline"
}
}
}
]
}
},
"MySNSTopic": {
"Type": "AWS::SNS::Topic",
"Properties": {
"TopicName": "Huaaa",
"Subscription": [
{
"Endpoint": {
"Ref": "EmailAddress"
},
"Protocol": "email"
}
]
}
}
}
}
Это создает все необходимые ресурсы, такие как событие cloudwatch и подписка SNS, и отправляет уведомление на мой адрес электронной почты для подтверждения.Но когда в mypipeline есть state change
, это не вызывает никакого уведомления по электронной почте.
Но когда я создал новый SNSTopic
и создал subscription
, используя aws console
и прикрепил его к событию cloudwatch, которое было создано cloudformation stack
в качестве цели, он работал нормально.Я могу получать уведомления при наличии изменений.
Я что-то пропустил в своем шаблоне?
Спасибо. Любая помощь приветствуется