我可以创建 AWS SNS 主题的 Slack 订阅吗?

Nad*_*man 1 amazon-web-services aws-lambda slack

我正在尝试在 AWS 中创建一个 SNS 主题并订阅一个 lambda 函数,该函数将向 Slack 应用程序/用户发送通知。

我确实读过这篇文章 - https://aws.amazon.com/premiumsupport/knowledge-center/sns-lambda-webhooks-chime-slack-teams/

描述了如何使用此 lambda 代码执行此操作:

#!/usr/bin/python3.6
import urllib3
import json
http = urllib3.PoolManager()
def lambda_handler(event, context):
    url = "https://hooks.slack.com/services/xxxxxxx"
    msg = {
        "channel": "#CHANNEL_NAME",
        "username": "WEBHOOK_USERNAME",
        "text": event['Records'][0]['Sns']['Message'],
        "icon_emoji": ""
    }
    
    encoded_msg = json.dumps(msg).encode('utf-8')
    resp = http.request('POST',url, body=encoded_msg)
    print({
        "message": event['Records'][0]['Sns']['Message'], 
        "status_code": resp.status, 
        "response": resp.data
    })
Run Code Online (Sandbox Code Playgroud)

但问题是,在该实现中我必须为每个用户创建一个 lambda 函数。

我想要将多个 Slack 应用程序/用户订阅一个 SNS 主题。有没有一种方法可以做到这一点,而无需为每个函数创建 lambda 函数?

Sam*_*Sam 5

你真的不需要 Lambda。只需 SNS 和 SLACK 就足够了。

我找到了一种将 AWS SNS 与 slack 集成的方法,无需 AWS LambdaAWS chatbot. 通过这种方法,您可以轻松确认订阅。

按照清晰显示所有步骤的视频进行操作。

应遵循的步骤:

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