[英]AWS Lambda Function not read input json
My code can not correct read JSON input. 我的代码无法正确读取JSON输入。
def lambda_handler(event, context):
WEBHOOK_URL = "https://" + os.environ['WEBHOOK_URL']
sns = event['Records'][0]['Sns']
json_msg = json.loads(sns['Message'])
region = sns['TopicArn'].split(':')[3]
status = json_msg['NewStateValue']
message = 'region: ' + region + '\n' + 'status: ' + status
payload = {
"username": "bot",
"attachments": [
{
"text": str(message)
}
]
}
r = requests.post(WEBHOOK_URL, json=payload)
return r.status_code
I get a region, but I don't' get status. 我得到一个地区,但我没有获得状态。 Example JSON input: https://github.com/builtinnya/aws-sns-slack-terraform/blob/51b954ca8f736e08deccd4196670a187f7b58fe5/sns-to-slack/lambda_function.py#L278
JSON输入示例: https : //github.com/builtinnya/aws-sns-slack-terraform/blob/51b954ca8f736e08deccd4196670a187f7b58fe5/sns-to-slack/lambda_function.py#L278
use below lines:- 使用以下行:
import json
def lambda_handler(event, context):
WEBHOOK_URL = "https://" + os.environ['WEBHOOK_URL']
sns = event['Records'][0]['Sns']
json_msg = json.loads(sns['Message'])
region = sns['TopicArn'].split(':')[3]
status = json_msg['NewStateValue']
message = 'region: ' + region + '\n' + 'status: ' + status
payload = {
"username": "bot",
"attachments": [
{
"text": str(message)
}
]
}
r = requests.post(WEBHOOK_URL, json=payload)
response = {
"statusCode": r.status_code,
"body": json.dumps("Your message")
}
return response
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.