【问题标题】:Lambda calling Lambda - how to access the payload in the second?Lambda 调用 Lambda - 如何在第二个中访问有效负载?
【发布时间】:2019-08-20 16:39:13
【问题描述】:

我正在从另一个 Lambda 异步调用 Lambda,使用:

payload = {"id":item['id']}
invoke_lambda = lambda_client.invoke(FunctionName="process",
                                     InvocationType="Event",
                                     Payload=json.dumps(payload)) # Use InvocationType="RequestResponse" for synchronous run

这可能相当明显,但我找不到它的文档 - 我如何访问定义为的第二个 lambda 中的有效负载:

def process(event, context):
    (...)

【问题讨论】:

    标签: python amazon-web-services aws-lambda


    【解决方案1】:

    您的有效负载应该在event 字典的body 中。试试json.loads(event['body']).get('id')

    【讨论】:

      【解决方案2】:

      可能重复的问题 -- Nodejs - Invoke an AWS.Lambda function from within another lambda function

      请注意,您可能需要查看 Step Functions 以防止 Lambda A 在等待 Lambda B 完成时产生费用。

      【讨论】:

      • 感谢您的建议,但我是用 Python 做的——不是 nodejs
      【解决方案3】:

      在第二个 lambda 上,您只需要执行 id = context['id']。当它是异步调用时,event 不附带 body 键。

      【讨论】:

      • 如果您澄清了从事件读取和从上下文读取之间的区别,以及应该在什么情况下访问它们,这将使所有读者受益。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-09
      • 1970-01-01
      • 2022-10-06
      • 2020-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多