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

如何在AWS Step Functions中传递自定义Header至Lambda函数

解决Step Functions传递自定义headers到Lambda的问题

首先明确:AWS Step Functions的start_execution接口不支持headers参数,你当前代码里传入的headers={'mode': 'normal'}不会被Step Functions接收,自然无法传递到Lambda。要实现需求,得把自定义参数放到执行的input里,再通过状态机配置传递给Lambda。

步骤1:修改boto3调用代码,将headers内容并入input

把mode参数放到input字典中,Step Functions会将整个input作为执行上下文保存并传递:

import boto3
import json

client = boto3.client('stepfunctions')
response = client.start_execution(
    stateMachineArn=stateMachineArn,
    name=name,
    input=json.dumps({
        'id': 'my-id',
        'headers': {'mode': 'normal'}
    })
)

注:input参数需要传入JSON格式字符串,使用json.dumps()显式序列化可以避免潜在的格式问题。

步骤2:修改Step Functions任务配置,传递mode到Lambda

在触发Lambda的Task步骤中,新增mode参数的映射,从执行上下文中提取headers.mode:

"trigger-lambda": {
    "Type": "Task",
    "Resource": "arn:aws:lambda:us-east-1:...:function:my-lambda",
    "Parameters": {
        "id.$": "$.id",
        "mode.$": "$.headers.mode"
    }
}

步骤3:在Lambda中获取mode参数

此时Lambda的事件参数中会包含mode字段,直接读取即可:

def lambda_handler(event, context):
    current_id = event['id']
    current_mode = event['mode']
    # 业务逻辑处理
    return {
        'statusCode': 200,
        'body': f"ID: {current_id}, Mode: {current_mode}"
    }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 14:35:16