我可以自定义通过 Slack 的 AWS Chatbot 集成接收的消息吗?

问题描述 投票:0回答:4

目前,我们已经为 Slack 设置了 AWS Chatbot 集成,以接收有关 CodePipeline 的通知 - CodeBuilds 的结果以及 CodePipeline 所有阶段的状态。我注意到开箱即用的集成消息并不像我想要的那样具有描述性。

例如:如果由于单元测试失败而导致构建失败,聊天机器人将输出

POST_BUILD: COMMAND_EXECUTION_ERROR: Error while executing command: <command>. Reason: exit status 1
,这很好,但我宁愿将该消息更改为更具描述性的内容 - 告诉我测试已失败。

我认为 Chatbot 订阅了 SNS 主题,一旦这些主题被发送出去,它就会在 Slack 上发布一条消息。有没有办法自定义它发送的消息的内容?

amazon-web-services chatbot slack
4个回答
9
投票

官方答案是否定的,但我发现有一个解决方法。您可以使用 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": {}
}

你会看到类似的东西

并且您可以根据一些限制

自由编辑区域、详细类型和帐户

6
投票

更新:进一步阅读文档后,我发现我们无法修改 aws 聊天机器人中的事件消息。

我收到“不支持收到的事件”错误

尽管以下方法是正确的,但 AWS Chatbot 不支持通知的发起服务。

将 AWS Chatbot 与其他 AWS 服务结合使用

您可以像下面这样自定义

Event Rule
,我选择
FAILED
状态,您可以自定义您想要的任何事件,然后订阅 lambda 到它,您可以在其中构建有意义的消息,然后将其发送到具有以下内容的 SNS 主题:
AWS Chatbot
已订阅:

{
  "source": [
    "aws.codepipeline"
  ],
  "detail-type": [
    "CodePipeline Action Execution State Change"
  ],
  "detail": {
    "state": [
      "FAILED"
    ]
  }
}

我为 PagerDuty 呼叫做了类似的事情,以便值班人员收到正确的消息,并在警报中附加了一些更多信息。


1
投票

对于@Tom 的回答来说,这个回复太长了。但我想补充一点,这对我有用(必须保留合理的区域名称),并且您还可以包含大量宽松格式:

{
"version": "0",
"id": "12345678-1234-aaaa-aaaa-123456789012",
"detail-type": "The heading for your message",
"source": "aws.events",
"account": "123456789012",
"time": "2023-06-02T00:58:25Z",
"region": "ap-southeast-2",
"resources": [
    "Some random text \nwith newline\n>indented too\nin *bold* and _italic_.",
    "A second dot point in the list.",
    "`code block`",
    "And a big code block:```with some\nmultiline\ncode.```"
],
"detail": {}
}

0
投票

通过此更新,是的,你可以

  • 使用 lambda 生成自定义事件
  • 将其发送到配置了聊天机器人的 sns。

[2023/09/12]

https://aws.amazon.com/about-aws/whats-new/2023/09/custom-notifications-aws-chatbot/

© www.soinside.com 2019 - 2024. All rights reserved.