我在 AWS 上有几个 CD 管道,它们执行以下操作:
- 监听 Github repo 的推送
- 构建 Docker 镜像
- 将图像推送至 ECR
- 更新 ECS 任务定义
- 使用 CloudFormation 堆栈更新 ECS 服务
我想发送以下通知: - 每当管道成功完成时 - 如果管道失败,则发送失败的步骤以及原因
我确信使用 SNS 可以实现这一点,但我找不到如何实现。有人能告诉我如何设置此类通知的资源吗?
答案1
CodePipeline 在管道状态改变(例如管道成功或失败)时发出 CloudWatch 事件:https://docs.aws.amazon.com/codepipeline/latest/userguide/detect-state-changes-cloudwatch-events.html
尽管通知可能不会告诉您具体原因,但它会告诉您具体时间。
您可以通过 Lambda 函数使用该事件,该函数还可以查找额外数据(例如 CodeBuild 日志),然后将它们添加到电子邮件通知中以添加“原因”。