确认 Slack Webhook 的 AWS SNS 主题订阅

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

我正在集成 SNS 和 Slack。我创建了一个启用传入 Webhook 的 Slack 应用程序。我已经获得了 webhook URL。我使用 HTTPS 协议创建了 SNS 主题的订阅,并将端点设置为 webhookURL。现在订阅处于 PendingConfirmation 状态。我没有收到任何确认消息,不在指定的频道中。

如何确认订阅?

amazon-web-services webhooks amazon-sns slack slack-api
6个回答
53
投票

您不需要创建 lambda 函数或使用 Slack 创建 HTTPS 订阅。

在您的 Slack 频道上,添加“电子邮件集成”应用程序。完成后,Slack 将为您提供一个带有 slack.com 域的电子邮件地址。

发送到此地址的电子邮件将导入到您的 Slack 频道中。

然后,在 SNS 上创建电子邮件订阅并提供上面的 slack 电子邮件。


21
投票

您无需 lambda 即可确认订阅。这很容易。 我找到了一种将 AWS SNS 与 slack 集成的方法 WITHOUT

AWS Lambda
AWS chatbot

按照清晰显示所有步骤的视频进行操作。 https://www.youtube.com/watch?v=CszzQcPAqNM

遵循的步骤:

  • 创建 slack 通道或使用现有通道
  • 选择 Webhook 创建工作流程
  • 创建变量名称为
    SubscribeURL
    。名字很重要
  • 在工作流程的消息正文中添加上述变量
  • 发布工作流程并获取url
  • 将上述Url添加为SNS订阅
  • 您将在 Slack 频道中看到订阅 URL
  • 按照URL完成订阅
  • 返回工作流程并将变量更改为
    Message
  • 在SNS上发布消息。您将在 Slack 频道中看到该消息。

9
投票

您在 Slack 中看不到它的原因是因为 SNS 消息的默认 JSON 格式不符合 Slack 所需的格式:

您有两个选项可将数据发送到上面的 Webhook URL:

  • 发送 JSON 字符串作为 POST 请求中的有效负载参数
  • 发送 JSON 字符串作为 POST 请求的正文

对于简单消息,您的 JSON 负载至少可以包含文本属性。这是将发布到频道的文本。

正如另一位用户建议的,您可以使用 AWS Lambda 函数来实现这一点。已经有免费的公共解决方案可用,例如这个(我没有创作,也没有使用过......仅作为参考点)。


4
投票

我可能在这个主题上迟到了,但您可以配置 AWS Chatbot(slack 应用程序)以将所有通知发送到您的 slack。 更多信息请参见:https://aws.amazon.com/chatbot/


3
投票

您已经创建了一个 lambda 函数,用于接收 SNS 反馈并将其发布到您的 webhook URL。

当您创建 lambda 主题的订阅时,您选择 AWS Lambda 作为协议并选择您刚刚创建的 lambda。

有关此处的更多信息:https://medium.com/cohealo-engineering/how-set-up-a-slack-channel-to-be-an-aws-sns-subscriber-63b4d57ad3ea


0
投票

我推荐 Slack Webhook 方法中的

SubscribeURL

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