【问题标题】:How do I pass JSON to lambda in AWS StepFunction using InvokeLambda in AWS CDK如何使用 AWS CDK 中的 InvokeLambda 将 JSON 传递给 AWS StepFunction 中的 lambda
【发布时间】:2021-08-04 09:52:39
【问题描述】:

我认为有效负载需要对象,但我找不到任何帮助以及如何在 AWS StepFunction 中将 JSON 传递给 Lambda

create_group = tasks.LambdaInvoke(
            self,
            "CreateGroup",
            lambda_function=notification_lambda,
            payload={
                "Input.$": "$",
                "Stage": "CreateGroup",
                "token.$": "$$.Task.Token",
                "callback": "true"
            },
            result_path='$',
            timeout=Duration.seconds(300)
        )

这是我合成时遇到的错误

jsii.errors.JavaScriptError: 
  Error: Expected object reference, got {"$jsii.map":{"Input.$":"$","Stage":"CreateGroup","token.$":"$$.Task.Token","callback":"true"}}

【问题讨论】:

    标签: python-3.x amazon-web-services aws-lambda aws-cdk aws-step-functions


    【解决方案1】:

    尝试使用 JSON.stringify 将其解析为 json 字符串。 我将 json.dumps 用于我的 python 实现,它做同样的事情并且有效。

    【讨论】:

      【解决方案2】:

      您可以像这样将 json 传递给 LambdaInvoke

      from aws_cdk import (
          core,
          aws_stepfunctions_tasks as tasks,
          aws_stepfunctions as sf
      )
      
      hello_task: tasks.LambdaInvoke = tasks.LambdaInvoke(
          self,
          "[Lambda] hello",
          lambda_function=hello_lambda,
          result_path="$.helloLambda")
      
      sample_task: tasks.LambdaInvoke = tasks.LambdaInvoke(
          self,"[Lambda] world",
          lambda_function=world_lambda,
          payload=sf.TaskInput.from_json_path_at("$.helloLambda.Payload"))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-09
        • 2021-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-03
        • 2020-06-28
        • 1970-01-01
        相关资源
        最近更新 更多