Reputation: 109
My code can not correct read JSON input.
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
Upvotes: 0
Views: 691
Reputation: 319
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
Upvotes: 1