Я не эксперт по yaml, но я выполнил некоторые настройки с помощью json CloudFormation, и, насколько я понял, это довольно просто перевести.
В прошлом я застрял как ты, и здесь - это мой пост и мое решение
Что вам нужно сделать, чтобы запустить выполнение пошаговых функций, - это отправить HTTP-сообщение на arn:aws:apigateway:${region}:states:action/StartExecution
, передав его как объект json [docs] :
{
input: __input__,
stateMachineArn: __arn__
}
Короче говоря, в вашем AWS::ApiGateway::Method
вы должны установить HTTP-интеграцию на arn:aws:apigateway:${region}:states:action/StartExecution
и requestTemplate, который создает упомянутый мной объект json.
Для справки, вот мой пример с облаком JSON:
"FooRequest": {
"DependsOn": ["FooStepMachine"],
"Type": "AWS::ApiGateway::Method",
"Properties": {
"HttpMethod": "POST",
"Integration": {
"Type": "AWS",
"Credentials": {
"Fn::GetAtt": ["FooRole",
"Arn"]
},
"IntegrationHttpMethod": "POST",
"Uri": {
"Fn::Join": ["",
["arn:aws:apigateway:",
{
"Ref": "AWS::Region"
},
":states:action/StartExecution"]]
},
"IntegrationResponses": [{
"StatusCode": 200
},
{
"StatusCode": 401
}],
"RequestTemplates": {
"application/json": {
"Fn::Sub": ["{\"input\": \"$util.escapeJavaScript($input.json('$'))\",\"stateMachineArn\": \"${arn}\"}",
{
"arn": {
"Ref": "FooStepMachine"
}
}]
}
}
}
}
}