【发布时间】:2018-05-28 10:12:33
【问题描述】:
我正在尝试运行以下设置。
我有一个在我的 linux 主机上本地运行的 python 应用程序。 我正在使用 boto3 使用我的用户密钥和密钥 ID 连接到 AWS。 我的用户拥有对 EC2、Cloudwatch、S3 和配置的完全访问权限
我的应用程序调用了一个名为 mylambda 的 lamdbda 函数。 mylambda 的执行角色也具有所有必需的权限。
现在,如果我从 aws 控制台调用我的 lambda 函数,它可以正常工作。我可以在 cloudwatch 中看到执行日志。但是,如果我从我的自定义应用程序的 linux 框中执行此操作,我看不到任何执行日志,我也没有收到错误。
我有什么遗漏吗?
非常感谢任何帮助。
我没有看到它被调用。但令人惊讶的是,我得到了如下回复。
gaurav@random:~/lambda_s3$ python main.py
{u'Payload': <botocore.response.StreamingBody object at 0x7f74cb7f5550>, 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-7559e68acd668476bxxxx754;sampled=0', 'x-amzn-remapped-content-length': '0', 'connection': 'keep-alive', 'date': 'Mon, 28 May 2018 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_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
【问题讨论】:
-
它真的被调用了吗?检查监控选项卡图表。作为最低要求,如果调用了 start 和 end 语句,您应该始终在日志中看到它。
-
我没有看到它得到更新。我已经添加了我的示例代码和我从调用调用中获得的响应的输出。
标签: amazon-web-services logging aws-lambda amazon-cloudwatch