【发布时间】:2019-05-04 10:50:12
【问题描述】:
我正在创建一个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 并使用aws console 创建一个subscription 并将其附加到由cloudformation stack 作为目标创建的cloudwatch 事件时,它运行良好。我可以在有变化时收到通知。
我的模板中是否缺少任何内容?
谢谢 任何帮助表示赞赏
【问题讨论】:
标签: amazon-web-services amazon-cloudformation amazon-sns amazon-cloudwatch