Я создаю файл AWS CloudFormation и застрял в сервисе AWS::Events::Rule
.Я пытаюсь создать правило, которое будет отправлять разработчикам электронное письмо для каждого этапа CodePipeline.Это весь файл:
{
"PipelineWebpageAccessStageNotification": {
"Type": "AWS::Events::Rule",
"Properties": {
"Description": "Send out notifications to developers about the CodePipeline stages status for the websites.",
"Name": "codepipeline-webpage_access",
"RoleArn": { "Fn::GetAtt": ["PipelineWebpageAccessStageNotificationRole", "Arn" ] },
"EventPattern": {
"source": [
"aws.codepipeline"
],
"detail-type": [
"CodePipeline Stage Execution State Change"
],
"detail": {
"pipeline": [
{ "Ref": "PipelineWebpageAccess" }
],
"state": [
"FAILED",
"CANCELED",
"RESUMED",
"SUCCEEDED",
"STARTED"
]
}
},
"State": "ENABLED",
"Targets": [
{
"Arn": { "Ref": "SNSTopic" },
"Id": "SNS",
"InputTransformer": {
"InputPathsMap": {
"pipeline": "$.detail.pipeline",
"stage": "$.detail.stage",
"state": "$.detail.state"
},
"InputTemplate": "Hello Human, This message is related to the CodePipeline: <pipeline>. Bellow are some details: \r\n\r\n - Stage: <stage>\r\n - Status: <state>\r\n\r\n Thank you for reading, Enjoy your existence."
}
}
]
}
}
}
Проблема с InputTemplate
.CloudFormation говорит мне, чтобы отправить строку.Что я и делаю ... Оказывается, вам действительно нужно отправить строку, содержащую JSON.Итак, я сделал это, как и в других местах, например, вы передаете строку с JSON при создании панели мониторинга в CloudWatch.Это работает без проблем.Но здесь - это продолжает терпеть неудачу.
Интересно то, что такая же проблема возникает в панели инструментов AWS.
Я разговаривал с AWS Tach Support, и они также не знают, как решить эту проблему, они предоставили некоторыеподходы попробовать, но никто не работал.
Они сказали мне, что спросят команду, которая отвечает за эту часть AWS, но у меня нет больших надежд.
Вопрос
Если бы у вас былота же проблема и кое как разобраться, будем благодарны за решение :)