如何解决AWS Lambda函数的问题?

时间:2020-11-02 21:13:10

标签: python amazon-web-services testing aws-lambda

我在AWS中创建了一个lambda函数,显然它引发了错误。在这里:

import json
from urllib.error import HTTPError, URLError
from urllib.request import Request, urlopen
import boto3
#Create a SSM Client to access parameter store
ssm = boto3.client('ssm')

def lambda_handler(event, context):
    # TODO implement
    #return {
    #    'statusCode': 200,
    #    'body': json.dumps('Hello from Lambda!')
    #}
    
    slack_message = {
        'text' = f'Hello World'
    }
    
    #retrieve webhook url from parameter store
    webhook_url = ssm.get_parameter(Name='slackwebhookurl', WithDecryption=True)
    
    #make  request to the API
    
    req = Request(webhook_url['Parameter']['Value'],
                    json.dumps(slack_message).encode('utf-8'))
                    
    try:
        response = urlopen(req)
        response.read()
        print("Messge posted to Slack")
    except HTTPError as e:
        print(f'Request failed: {e.code} {e.reason})
    except URLError as e:
        print(f'Server Connection failed:  {e.reason})

它是由AWS SNS通知触发的。它应该获取一个松弛频道的webhook网址,然后将通知发送给Slack。

谁能看到问题所在?

如果不是很明显,有人可以引导我进入有关如何测试AWS Lambda函数的教程吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

AWS Lambda具有内置的测试功能。您可以单击测试按钮并配置输入,以防函数使用来自event的值。

日志将显示在Lambda控制台中。

还要确保与AWS Lambda函数关联的IAM角色具有AWSLambdaBasicExecutionRole权限策略,以便它可以写入CloudWatch Logs。然后,您可以转到该功能的“监视”选项卡,然后单击在CloudWatch中查看日志以查看过去的日志。

您可以在代码中添加print()语句,这些语句将显示在日志中。

相关问题