我正在为我正在开发的平台创建CloudFormation模板。我需要集成Api网关和步骤功能,以通过调用Api网关方法来执行我的一个步骤功能。
我没有找到任何关于此的文件。我很难找到Integration / Uri,应该是
arn:aws:apigateway:${region}:states:action/StartExecution
但现在我不确定在RequestTemplates中写什么。我想我实际上可以把它留空,让它像代理一样,但如果你能给我任何进一步的信息我真的很感激。
谢谢
答案 0 :(得分:1)
显然我无法将RequestTemplates留空,因为它包含有关调用StateMachine的信息。 URI本身并不包含该信息,但它只指向State Machine API的入口点。
正确的方法来自this documentation's page。
State Machine API公开了各种方法。执行步骤功能的是" StartExecution"。对于那个入口点,必须传递这样形成的物体
{
"input": "string",
"name": "string",
"stateMachineArn": "string"
}
所以,在Cloud Formation中:
"Integration": {
"Type": "AWS",
"IntegrationHttpMethod": "POST",
"Uri": {
"Fn::Join": ["",
["arn:aws:apigateway:",
{
"Ref": "AWS::Region"
},
":states:action/StartExecution"]]
},
"RequestTemplates": {
"application/json": {
"Fn::Sub": ["{\"input\": \"$util.escapeJavaScript($input.json('$'))\",\"stateMachineArn\": \"${arn}\"}",
{
"arn": {
"Ref": "[StepMachineResourceName]"
}
}]
}
}
}