基本上,我从aws提供的一个Example Python code snippet for Slack中使用这个示例python函数。
#!/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": "aws-events",
"username": "Event_Notifier",
"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
})不幸的是,上面的代码不会产生任何输出,也不会向空闲通道发送消息。
因此,我们做了如下调整,现在它发送一个通用消息(我们设置)总是有一个事件,而不是一个有意义的消息给团队,它无助于真正找到消息本身的正确事件。团队每次都必须前往aws控制面板,以检查触发器的目的是什么。
#!/usr/bin/python3.6
import urllib3
import json
http = urllib3.PoolManager()
def lambda_handler(event, context):
print(event)
url = "https://hooks.slack.com/services/xxxxxxx"
msg = {
"channel": "aws-events",
"username": "Event_Notifier",
#"text": event['Records'][0]['Sns']['Message'],
"text": "Upcoming Events, check here https://phd.aws.amazon.com/phd/home?region=eu-west-1#/event-log",
"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'],
"message": "Upcoming Events, check here https://phd.aws.amazon.com/phd/home?region=eu-west-1#/event-log",
"status_code": resp.status,
"response": resp.data
})现在,我们做了进一步的改变,但现在完全停止了。
#!/usr/bin/python3.6
import urllib3
import json
http = urllib3.PoolManager()
def lambda_handler(event, context):
print(event)
url = "https://hooks.slack.com/services/xxxxxxx"
last_event = event['Records'][0]['Sns']['Message']
msg = {
"channel": "aws-events",
"username": "Event_Notifier",
"text": "Upcoming Events, check here https://phd.aws.amazon.com/phd/home?region=eu-west-1#/event-log" + "```\n" + str(last_event) + "\n```",
"icon_emoji": ""
}
encoded_msg = json.dumps(msg).encode('utf-8')
resp = http.request('POST',url, body=encoded_msg)
print({
"message": "Upcoming Events, check here https://phd.aws.amazon.com/phd/home?region=eu-west-1#/event-log" + "```\n" + str(last_event) + "\n```",
"status_code": resp.status,
"response": resp.data
})现在,它不知道如何使它与亚马逊EventBridge一起正常工作。
发布于 2022-02-07 12:04:18
如果你正在做类似的事情,请告诉我:
https://www.cloudkaramchari.com/blog/receive-email-in-aws-ses-and-save-in-dynamodb/
如果是,那么我们可以定制您的羔羊达到目标。
发布于 2022-03-08 05:24:28
验证有效载荷,并捕获错误响应。您可以使用松弛消息结构格式进行更新。
有关详细信息,请参阅Slack文档
有一种更简单的方法可以使用AWS聊天机器人进行集成,您可以探索这种方法。它消除了lambda,并直接从SNS中处理通知解析。
AWS博客与AWS聊天机器人的Slocak集成
https://stackoverflow.com/questions/71018160
复制相似问题