如何指定从 step 函数调用 lambda 函数的方法和路径?

How can I specify method and path for calling lambda function from step function?

我想使用状态机调用 lambda 函数并传递 pathmethod(如通常的 HTTP 意义)。当前实现的无服务器模板如下:

functions:
  myfunction:
    handler: bin/myfunction
    events:
      - http:
          path: setup
          method: POST

stepFunctions:
  validate: true
  stateMachines:
    myMachine:
      name: myMachine
      definition:
        StartAt: Setup
        States:
          Setup:
            Type: Task
            Resource:
              Fn::GetAtt: [myfunction, Arn]
            Parameters:
              InvocationType: Event
              Payload:
                path: "/setup"
                httpMethod: "POST"
                body: ""
            End: true

但是,到达 myfunction 的实际调用是具有路径 /GET 请求。我用作有效负载的字段来自 lambda:InvokeFunction API,其中可以将 bodypathhttpMethod 设置为 json 中的 [=] 20=] 属性 of lambda.InvokeInput 并正确调用所有内容。

如何复制我的示例?

pathhttpMethod 用于调用 API 网关 路由,而不是 Lambda 函数.

A Lambda function invocation(大部分)采用函数名称、调用类型和有效负载。

如果您必须通过 API 网关,请查看官方 'Call API Gateway with Step Functions' 指南了解如何执行此操作,否则只需手动调用您的 Lambda。