gpt4 book ai didi

python - 如何调用另一个 lambda 异步并将上下文传递给它?

转载 作者:太空宇宙 更新时间:2023-11-04 07:32:54 26 4
gpt4 key购买 nike

我正在尝试使用 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

有什么想法吗?

最佳答案

我放弃了通过上下文传递数据的尝试。但是,我能够通过 Payload 参数传递数据:

client.invoke(
FunctionName='LambdaWorker',
InvocationType='Event',
LogType='None',
Payload=json.dumps(payload)
)

然后从调用的 lambda 中的事件参数中读取它:

ctx = json.dumps(event)

关于python - 如何调用另一个 lambda 异步并将上下文传递给它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43589009/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com