如何使用API Gateway POST请求以及该步骤的请求的JSON有效负载来调用AWS Step Function?
最佳答案
1.创建您的步进功能
很明显。我想如果您正在阅读本文,您就会知道该怎么做。
否则,您可以在这里查看文档:What is AWS Step Functions?。
2.为您的API创建IAM角色
它既可以用于所有步骤功能,也可以仅用于此功能。我们将仅讨论第一种情况,如Amazon教程Creating an API Using API Gateway中所述。
3.设定
3.a如果没有JSON负载
如Ka Hou Ieong在How can i call AWS Step Functions by API Gateway?中所述,您可以通过API Gateway Console创建AWS Service集成,如下所示:
X-Amz-Target->'AWSStepFunctions.StartExecution'
内容类型->'application/x-amz-json-1.0'
{
"input": "string" (optional),
"name": "string" (optional),
"stateMachineArn": "string"
}
3.b如果您确实有要传递的JSON有效负载作为输入
除了主体映射模板之外,其他所有内容均与2.a中的相同。您要做的就是将其制成字符串。例如,使用$ util.escapeJavascript()。它将整个请求的内容作为步函数的输入传递
#set($data = $util.escapeJavaScript($input.json('$')))
{
"input": "$data",
"name": "string" (optional),
"stateMachineArn": "string" (required)
}
笔记
stateMachineArn
:如果您不想将stateMachineArn作为对API网关的请求的一部分进行传递,则只需将其硬编码在人体映射模板中即可(请参见AWS API Gateway with Step Function)name
:省略name属性将使API Gateway在每次执行时为您生成不同的名称。 现在,这是我的第一个“回答您自己的问题”,所以也许这不是怎么做的,但是我确实花了很多时间试图了解我的映射模板出了什么问题。希望这将有助于节省其他人的头发和时间。
关于amazon-web-services - 如何使用API网关调用AWS Step Function,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42914487/