首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python函数不产生AWS事件桥的输出

Python函数不产生AWS事件桥的输出
EN

Stack Overflow用户
提问于 2022-02-07 11:55:08
回答 2查看 213关注 0票数 1

基本上,我从aws提供的一个Example Python code snippet for Slack中使用这个示例python函数

代码语言:javascript
复制
#!/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控制面板,以检查触发器的目的是什么。

代码语言:javascript
复制
#!/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
    })

现在,我们做了进一步的改变,但现在完全停止了。

代码语言:javascript
复制
#!/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一起正常工作。

EN

回答 2

Stack Overflow用户

发布于 2022-02-07 12:04:18

如果你正在做类似的事情,请告诉我:

https://www.cloudkaramchari.com/blog/receive-email-in-aws-ses-and-save-in-dynamodb/

如果是,那么我们可以定制您的羔羊达到目标。

票数 0
EN

Stack Overflow用户

发布于 2022-03-08 05:24:28

验证有效载荷,并捕获错误响应。您可以使用松弛消息结构格式进行更新。

有关详细信息,请参阅Slack文档

错误

有一种更简单的方法可以使用AWS聊天机器人进行集成,您可以探索这种方法。它消除了lambda,并直接从SNS中处理通知解析。

AWS博客与AWS聊天机器人的Slocak集成

https://aws.amazon.com/blogs/mt/monitor-amazon-eventbridge-events-in-your-slack-channels-with-aws-chatbot/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71018160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档