Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.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
Amazon web services AWS lambda函数日志未显示在cloudwatch中_Amazon Web Services_Logging_Aws Lambda_Amazon Cloudwatch - Fatal编程技术网

Amazon web services AWS lambda函数日志未显示在cloudwatch中

Amazon web services AWS lambda函数日志未显示在cloudwatch中,amazon-web-services,logging,aws-lambda,amazon-cloudwatch,Amazon Web Services,Logging,Aws Lambda,Amazon Cloudwatch,我正在尝试运行以下设置 我有一个python应用程序,它在我的linux主机上本地运行。 我正在使用boto3使用我的用户密钥和密钥Id连接到AWS。 我的用户可以完全访问EC2、Cloudwatch、S3和config 我的应用程序调用一个名为mylambda的lamdbda函数。 mylambda的执行角色还具有所有必需的权限 现在,如果我从aws控制台调用lambda函数,它可以正常工作。我可以在cloudwatch中看到执行日志。但是,如果我从我的自定义应用程序的linux盒中执行,我看

我正在尝试运行以下设置

我有一个python应用程序,它在我的linux主机上本地运行。 我正在使用boto3使用我的用户密钥和密钥Id连接到AWS。 我的用户可以完全访问EC2、Cloudwatch、S3和config

我的应用程序调用一个名为mylambda的lamdbda函数。 mylambda的执行角色还具有所有必需的权限

现在,如果我从aws控制台调用lambda函数,它可以正常工作。我可以在cloudwatch中看到执行日志。但是,如果我从我的自定义应用程序的linux盒中执行,我看不到任何执行日志,我也不会得到错误

我有什么遗漏吗

非常感谢您的帮助

我看它不会被调用。但令人惊讶的是,我得到的回应如下

gaurav@random:~/lambda_s3$python main.py
{u'Payload':,u'ExecutedVersion':'LATEST','ResponseMetadata':{'RetryAttempts':0,'HTTPStatusCode':200,'RequestId':'7417534c-6263-11e8-xxx-afab1667510a','HTTPHeaders':{'x-amzn-requestid':'7417534c-xxx-11e8-8a24-afab1667510a','content length':'4','x-amz-executed-version':'LATEST','x-amzn-trace-id':'root=1-5b0bdc78-7559E68ACD647476Bxxx754;sampled=0','x-amzn-remapped-content-length':'0','connection','keep-alive','date':'Mon 2018年5月28日10:39:52 GMT','content type':'application/json'},u'StatusCode':200}
{u'CreationDate':datetime.datetime(2018,5,27,9,50,9,tzinfo=tzutc()),u'Name':'bucketname'}
gaurav@random:~/lambda\u s3$

我的示例应用程序如下所示

#!/usr/bin/python
import boto3
import json
import base64
d= {'key': 10, 'key2' : 20}
client = boto3.client('lambda')

response = client.invoke(
    FunctionName='mylambda',
    InvocationType='RequestResponse',
    #LogType='None',
    ClientContext=base64.b64encode(b'{"custom":{"foo":"bar", \
                            "fuzzy":"wuzzy"}}').decode('utf-8'),
    Payload=json.dumps(d)
)
print response

确保您确实正确调用了Lambda。Lambda错误处理可能有点棘手。使用boto3,即使调用失败,调用方法也不一定抛出。您必须检查响应中的statusCode属性


您提到您的用户拥有对EC2、Cloudwatch、S3和config的完全访问权限。对于您的用例,您需要将
lambda:InvokeFunction
添加到您的用户权限中。

它确实被调用了吗?检查监控选项卡图。如果被调用,您至少应该在日志中看到开始和结束语句。I没有看到更新。我已经添加了示例代码和调用响应的输出。忘记提到LambdaFullAccess了。StatusCode是200,这在http中是成功的