确认Slack Webhook的AWS SNS主题订阅

Man*_*rya 7 webhooks amazon-web-services amazon-sns slack-api slack

我正在整合SNS和Slack.我创建了一个启用传入webhook的松弛应用程序.我有webhook网址.我使用HTTPS协议创建了SNS主题的订阅,并将端点设置为webhookURL.现在订阅是PendingConfirmation.我没有收到任何确认消息,而不是在预定渠道中.

如何确认订阅?

Sam*_*Sam 21

您可以在没有 lambda 的情况下确认订阅。这很容易。我找到了一种将 AWS SNS 与 slack 集成的方法,无需 AWS LambdaAWS chatbot.

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

应遵循的步骤:

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

  • 干得好伙计。可以确认它有效 (2认同)

小智 16

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

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

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

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

  • @PushpinderSingh,如果你直接从 sns 发送消息到 slack,你如何解析 JSON 消息 (2认同)

Mad*_*aks 7

您没有在 Slack 中看到它的原因是SNS 消息的默认JSON 格式不符合 Slack 要求的格式:

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

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

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

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


小智 3

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

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

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

  • 这个解决方案很旧。请改用此方法:[如何使用 Webhooks 将 Amazon SNS 消息发布到 Amazon Chime、Slack 或 Microsoft Teams?](https://aws.amazon.com/premiumsupport/knowledge-center/sns-lambda-webhooks-chime -松弛团队/)。这对我来说非常有效。) (3认同)