如何指定从 step 函数调用 lambda 函数的方法和路径?
How can I specify method and path for calling lambda function from step function?
我想使用状态机调用 lambda 函数并传递 path
和 method
(如通常的 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,其中可以将 body
、path
和 httpMethod
设置为 json 中的 [=] 20=] 属性 of lambda.InvokeInput
并正确调用所有内容。
如何复制我的示例?
path
和 httpMethod
用于调用 API 网关 路由,而不是 Lambda 函数.
A Lambda function invocation(大部分)采用函数名称、调用类型和有效负载。
如果您必须通过 API 网关,请查看官方 'Call API Gateway with Step Functions' 指南了解如何执行此操作,否则只需手动调用您的 Lambda。
我想使用状态机调用 lambda 函数并传递 path
和 method
(如通常的 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,其中可以将 body
、path
和 httpMethod
设置为 json 中的 [=] 20=] 属性 of lambda.InvokeInput
并正确调用所有内容。
如何复制我的示例?
path
和 httpMethod
用于调用 API 网关 路由,而不是 Lambda 函数.
A Lambda function invocation(大部分)采用函数名称、调用类型和有效负载。
如果您必须通过 API 网关,请查看官方 'Call API Gateway with Step Functions' 指南了解如何执行此操作,否则只需手动调用您的 Lambda。