Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何对AWS Lambda功能进行故障排除?_Python_Amazon Web Services_Testing_Aws Lambda - Fatal编程技术网

Python 如何对AWS Lambda功能进行故障排除?

Python 如何对AWS Lambda功能进行故障排除?,python,amazon-web-services,testing,aws-lambda,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, c

我在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通知触发。它应该为slack频道获取一个webhook url,然后将通知发送给slack

有人知道问题出在哪里吗

如果不明显,有人能告诉我如何测试AWS Lambda函数的教程吗


谢谢。

AWS Lambda具有内置测试功能。如果函数使用
事件中的值,您可以单击测试按钮并配置输入

日志将显示在Lambda控制台中

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


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

您可以从Cloudwatch共享完整的日志详细信息吗?它是与S3、EC2、Lambda等一起提供的AWS服务之一。您可能需要激活Cloudwatch,并为其配置一些设置以输出日志,但这在故障排除方面是值得做的,假设您还没有这样做。谢谢John,我将尝试这些功能。