CDK中LambdaInvokeProps的parameters属性设置方法
问题解决方案
在aws-cdk-lib 2.28.1版本中,LambdaInvoke构造未将parameters作为顶层属性暴露在LambdaInvokeProps中,可根据你的使用场景选择对应方式配置:
- 配置Lambda输入Payload(对应Parameters中的Payload字段):直接使用props中的
payload属性即可,该属性支持JSON路径动态取值,最终会被编译到Step Functions任务定义的Parameters块中,示例代码:
import * as sfn from 'aws-cdk-lib/aws-stepfunctions'; import * as tasks from 'aws-cdk-lib/aws-stepfunctions-tasks'; const invokeTask = new tasks.LambdaInvoke(this, 'CallLambda', { lambdaFunction: targetLambda, inputPath: '$.sourceData', resultPath: '$.lambdaRes', // 对应Parameters.Payload配置 payload: sfn.TaskInput.fromObject({ bizId: sfn.JsonPath.stringAt('$.bizId'), timestamp: sfn.JsonPath.numberAt('$.ts'), fixedFlag: true }) });
- 配置非Payload的其他Parameters参数(比如指定Lambda版本/别名的
Qualifier、调用类型InvocationType、客户端上下文ClientContext等):在任务实例初始化完成后,调用继承自公共任务类的addParameters方法追加配置即可,该方法会将传入的键值对自动合并到最终的Parameters定义中,示例代码:
// 追加非Payload类的Parameters配置 invokeTask.addParameters({ Qualifier: 'prod-alias', InvocationType: 'RequestResponse' });
注意事项:不要在
addParameters中重复传入Payload字段,该配置会覆盖payload属性的设置,导致输入内容异常。另外你提到的imputPath为拼写错误,正确属性名为inputPath。
内容的提问来源于stack exchange,提问作者Jesús López
相关产品推荐
相关产品推荐

