You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CDK中为LambdaInvoke保留完整InputPath并注入executionId?

在AWS CDK中实现LambdaInvoke同时保留完整输入与新增executionId

直接使用JsonPath.merge方法,将原有完整输入与新增的executionId字段合并,无需手动指定原有字段:

TypeScript示例

import { LambdaInvoke } from 'aws-cdk-lib/aws-stepfunctions-tasks';
import { JsonPath } from 'aws-cdk-lib/aws-stepfunctions';

// 假设myLambda是你已定义的Lambda函数
new LambdaInvoke(this, 'MyLambdaInvokeTask', {
  lambdaFunction: myLambda,
  payload: JsonPath.merge(
    JsonPath.entirePayload, // 引用完整的原有输入
    JsonPath.object({
      executionId: JsonPath.stringAt('$$.Execution.Id') // 注入Step Functions执行ID
    })
  )
});

Python示例

from aws_cdk import aws_stepfunctions as sfn
from aws_cdk import aws_stepfunctions_tasks as tasks

# 假设my_lambda是你已定义的Lambda函数
tasks.LambdaInvoke(self, "MyLambdaInvokeTask",
    lambda_function=my_lambda,
    payload=sfn.JsonPath.merge(
        sfn.JsonPath.entire_payload,
        sfn.JsonPath.object_(execution_id=sfn.JsonPath.string_at("$$.Execution.Id"))
    )
)

关键说明

  • JsonPath.merge会自动合并两个JSON结构,原有输入的所有字段都会被保留,同时新增executionId字段
  • $$.Execution.Id是Step Functions的内置上下文变量,用于获取当前执行的ID
  • 确保任务的inputPath保持默认值$(传递完整输入),这样merge的基础才是完整的原有数据

内容的提问来源于stack exchange,提问作者Jake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 20:22:06