Roc*_*cer 12 chatbot amazon-web-services slack
目前,我们已经为 Slack 设置了 AWS Chatbot 集成,以接收有关 CodePipeline 的通知 - CodeBuilds 的结果以及 CodePipeline 所有阶段的状态。我注意到开箱即用的集成消息并不像我想要的那样具有描述性。
例如:如果由于单元测试失败而导致构建失败,聊天机器人将输出POST_BUILD: COMMAND_EXECUTION_ERROR: Error while executing command: <command>. Reason: exit status 1这很好,但我宁愿将该消息更改为更具描述性的内容 - 告诉我测试已失败。
我认为 Chatbot 订阅了 SNS 主题,一旦这些主题被发送出去,它就会在 Slack 上发布一条消息。有没有办法自定义它发送的消息的内容?
官方答案是否定的,但我发现有一个解决方法。您可以使用 Cloudwatch EventBridge 消息并根据您的喜好进行调整。
简单地说
发布以下消息
{
"version": "0",
"id": "13cde686-328b-6117-af20-0e5566167482",
"detail-type": "Your custom message",
"source": "aws.ecr",
"account": "123456789012",
"time": "2019-11-16T01:54:34Z",
"region": "azAZ0-9!-_/|?!.,",
"resources": [],
"detail": {}
}
Run Code Online (Sandbox Code Playgroud)
你会看到类似的东西
并且您可以根据一些限制自由编辑区域、详细类型和帐户
更新:进一步阅读文档后,我发现我们无法修改 aws 聊天机器人中的事件消息。
尽管以下方法是正确的,但 AWS Chatbot 不支持通知的发起服务。
您可以进行Event Rule如下所示的自定义,我选择FAILED状态,您可以自定义您想要的任何事件,然后订阅一个 lambda 到它,您可以在其中构建有意义的消息,然后将其发送到已AWS Chatbot订阅的 SNS 主题:
{
"source": [
"aws.codepipeline"
],
"detail-type": [
"CodePipeline Action Execution State Change"
],
"detail": {
"state": [
"FAILED"
]
}
}
Run Code Online (Sandbox Code Playgroud)
我为 PagerDuty 呼叫做了类似的事情,以便待命人员收到正确的消息,并在警报中附加了一些更多信息。
| 归档时间: |
|
| 查看次数: |
7774 次 |
| 最近记录: |