【发布时间】:2017-04-24 13:10:04
【问题描述】:
我正在尝试使用 Python2.7 运行时来处理两个基本 lambda,以进行 SQS 消息处理。一个 lambda 从 SQS 调用读取数据并通过上下文将数据传递给另一个 lambda。我可以调用另一个 lambda,但其中的用户上下文为空。这是我的 SQS 阅读器 lambda 代码:
import boto3
import base64
import json
import logging
messageDict = {'queue_url': 'queue_url',
'receipt_handle': 'receipt_handle',
'body': 'messageBody'}
ctx = {
'custom': messageDict,
'client': 'SQS_READER_LAMBDA',
'env': {'test': 'test'},
}
payload = json.dumps(ctx)
payloadBase64 = base64.b64encode(payload)
client = boto3.client('lambda')
client.invoke(
FunctionName='LambdaWorker',
InvocationType='Event',
LogType='None',
ClientContext=payloadBase64,
Payload=payload
)
这就是我尝试检查和打印调用的 lambda 中上下文变量的内容的方式,因此我可以在 CloudWatch 中检查日志:
memberList = inspect.getmembers(context)
for a in memberList:
logging.error(a)
问题是没有任何效果,CloudWatch 显示用户上下文为空:
('client_context', None)
我试过example1、example2、example3、example4
有什么想法吗?
【问题讨论】:
标签: python python-2.7 amazon-web-services lambda boto3