简体   繁体   English

AWS Lambda函数无法读取输入json

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM