其想法是将来自cloud watch alarm的消息通知给微软团队。这些消息位于云监视报警描述中
下面是传递给lambda的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 lambda代码:
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时遇到了这个问题,但不知道如何让它工作。有人能帮我吗
目前没有回答
相关问题 更多 >
编程相关推荐