首页 > 解决方案 > Slack Webhook 的 AWS Lambda 函数问题

问题描述

我正在使用 AWS lambda 函数向我们的松弛通道发送警报。但是,由于一些未知问题,我没有收到松弛警报,甚至没有从 AWS lambda 函数收到任何类型的错误消息。日志表示该函数成功运行,没有任何错误,但我没有收到任何警报

代码:

import json, sys, csv, os
import requests

def lambda_handler(event, context):
     def Send2Slack(message):
            if __name__ == '__main__':
                print('inside slack function')
                url = "webhook_URL"
                title = (f"New Incoming Message")
                slack_data = {
                    "username": "abc",
                    "channel" : "xyz",
                    "attachments": [
                        {
                            "color": "#ECB22E",
                            "fields": [
                                {
                                    "title": title,
                                    "value": message,
                                    "short": "false",
                                }
                            ]
                        }
                    ]
                }
                byte_length = str(sys.getsizeof(slack_data))
                headers = {'Content-Type': "application/json", 'Content-Length': byte_length}
                response = requests.post(url, data=json.dumps(slack_data), headers=headers)
                if response.status_code != 200:
                    raise Exception(response.status_code, response.text)
    
   output = "Hello Slack "
   Send2Slack(output)

请让我知道我做错了什么并帮助我解决这个问题。

标签: python-3.xamazon-web-servicesaws-lambdadevops

解决方案


我可以回答这个问题。

def Send2Slack(message):
    if __name__ == '__main__':

一旦我if __name__ == '__main__':send2slack功能中删除它就起作用了。

否则,我无法进入该功能。感谢你的帮助。


推荐阅读