我想使用状态机调用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
设置为lambda.InvokeInput
的Payload
属性中的json,并获得正确调用的一切。
如何复制相同的我的例子?
path
和httpMethod
用于调用API网关Lambda函数.
Lambda函数调用(大多数)接受函数名,调用类型&一个负载。
如果你必须通过API网关,看看官方的"调用API网关与步骤函数"指南如何做到这一点,否则只需手动调用你的Lambda。