微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 AWS CDK 中的 InvokeLambda 将 JSON 传递给 AWS StepFunction 中的 lambda

如何解决如何使用 AWS CDK 中的 InvokeLambda 将 JSON 传递给 AWS StepFunction 中的 lambda

我认为有效负载需要对象,但我找不到任何帮助以及如何在 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"}}

解决方法

尝试使用 JSON.stringify 将其解析为 json 字符串。 我正在将 json.dumps 用于我的 python 实现,它执行相同的操作并且可以正常工作。

,

您可以像这样将 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"))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。