我可以创建一个AWS SNS主题的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
})

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

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

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

我找到了一种将AWS SNS与slackWITHOUTAWS LambdaAWS chatbot集成的方法。使用这种方法,您可以轻松地确认订阅。

按照视频,清楚地显示所有步骤。

  • https://www.youtube.com/watch?v=CszzQcPAqNM

接下来的步骤:

  • 创建空闲通道或使用现有通道
  • 通过选择Webhook创建工作流
  • 将变量名创建为";SubscribeURL";。名称非常重要
  • 将上述变量添加到工作流发布工作流并获取url
  • 添加以上Url作为SNS的订阅您将在松弛通道
  • 遵循URl并完成订阅
  • 回到工作流程;SubscribeURL";变量为";消息">
  • 发布SNS中的消息。您将在空闲频道中看到该消息

嗨,我想说你应该进行for循环,并列出所有用户的列表。要么在lambda中手动声明它们,要么通过slack的api调用获取它们,例如这里的这个:https://api.slack.com/methods/users.list

#!/usr/bin/python3.6
import urllib3
import json
http = urllib3.PoolManager()
def lambda_handler(event, context):
userlist = ["name1", "name2"]
for user in userlist:
url = "https://hooks.slack.com/services/xxxxxxx"
msg = {
"channel": "#" + user, # not sure if the hash has to be here
"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
})

您可以做的另一个解决方案是为空闲用户设置电子邮件,请参阅链接:https://slack.com/help/articles/206819278-Send-emails-to-Slack当你可以将电子邮件作为订阅者添加到sns主题时。您可以使用订阅筛选器策略来提交接收方获得的消息。

最新更新