python код для отправки уведомления командам Microsoft ОТ AWS лямбда - PullRequest
0 голосов
/ 05 августа 2020

Идея состоит в том, чтобы уведомить команды Microsoft о сообщении, исходящем от облачного будильника. Сообщения находятся в описании будильника облачных часов.

Ниже JSON, который передается в лямбда:

{   'Records': [{       'EventSource': 'aws:sns',       'EventVersion': '1.0',      'EventSubscriptionArn': '71d-4f70-927e-0a420040a154',       'Sns': {            'Type': 'Notification',             'MessageId': '152c308c--bca8-67281c9c3c36',',           'Subject': 'ALARM: "StoreException-" in ()',            'Message': '{"AlarmName":"StoreException-WAS102","AlarmDescription":"StoreClosedException-in-1.1.1.1","AWSAccountId":"xxxxx","NewStateValue":"ALARM"}}

Ниже мой python лямбда-код:

    import urllib3 
    import json
    http = urllib3.PoolManager() 
    def lambda_handler(event, context): 
        print(event)
        message = event['Records'][0]['Sns']['Message']
        alarm_name = message['AlarmName']
        app_name = message['AlarmDescription']
        msg = {
       
            "text": app_name
        }
        encoded_msg = json.dumps(msg).encode('utf-8')
        resp = http.request('POST',url, body=encoded_msg)
    

Но я получаю следующее сообщение об ошибке:

> string indices must be integers: TypeError Traceback (most recent call
> last):   File "/var/task/lambda_function.py", line 15, in
> lambda_handler
>     "text": app_name TypeError: string indices must be integers

Я думаю, что проблема возникает при использовании dict. Но не знаю, как заставить его работать. Может ли кто-нибудь мне помочь.

...