本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
致电 API Gateway
此示例项目演示了如何使用 Step Functions 调用 API Gateway 并检查调用是否成功。此示例项目创建以下内容:
-
状态机调用的 Amazon API Gateway REST API。
-
相关Amazon Identity and Access Management(IAM) 角色。
有关 API Gateway 和 Step Functions 服务集成的更多信息,请参阅以下内容:
创建状态机并预置资源
-
打开Step Functions 操作
然后选择创建状态机. -
选择运行示例项目,然后选择致电 API Gateway.
此时将显示状态机 Code (代码) 和 Visual Workflow (可视工作流程)。
-
请选择 Next (下一步)。
此时将显示 Deploy resources (部署资源) 页面,其中列出了将创建的资源。对于本示例项目,资源包括:
-
状态机
-
调用 API Gateway REST API
-
相关 IAM 角色
-
-
选择 Deploy Resources (部署资源)。
注意 创建这些资源和相关 IAM 权限可能需要长达 10 分钟的时间。当显示 Deploy resources (部署资源) 页面时,您可打开 Stack ID (堆栈 ID) 链接以查看正在预置的资源。
启动新的执行
-
在存储库的状态机页面上,选择ApiGatewayWorkflowState机器示例项目创建的状态机,然后选择开始执行.
-
在 New execution 页面上,输入执行名称 (可选),然后选择 Start Execution (开始执行)。
(可选)要识别您的执行,您可以在名称。默认情况下,Step Functions 会自动生成唯一的执行名称。
注意 Step Functions 允许您创建包含非 ASCII 字符的状态机、执行和活动名称。这些非 ASCII 名称不适用于亚马逊CloudWatch. 为了确保你可以跟踪CloudWatch指标,请选择仅使用 ASCII 字符的名称。
-
(可选)转到 Step Functions 上新创建的状态机控制面板,然后选择新执行.
-
执行完成后,您可以在 Visual workflow (可视工作流) 上选择状态,并浏览 Step details (步骤详细信息) 下的 Input (输入) 和 Output (输出)。
示例状态机代码
此示例项目中的状态机通过调用 API Gateway REST API 并传递任何必需的参数来与 API Gateway 集成。
浏览此示例状态机,了解 Step Functions 如何与 API Gateway 交互。
有关 Amazon Step Functions 如何控制其他 Amazon 服务的更多信息,请参阅将 Amazon Step Functions 与其他服务一起使用。
{
"Comment": "Calling APIGW REST Endpoint",
"StartAt": "Add Pet to Store",
"States": {
"Add Pet to Store": {
"Type": "Task",
"Resource": "arn:aws:states:::apigateway:invoke",
"Parameters": {
"ApiEndpoint": "<POST_PETS_API_ENDPOINT>",
"Method": "POST",
"Stage": "default",
"Path": "pets",
"RequestBody.$": "$.NewPet",
"AuthType": "IAM_ROLE"
},
"ResultSelector": {
"ResponseBody.$": "$.ResponseBody"
},
"Next": "Pet was Added Successfully?"
},
"Pet was Added Successfully?": {
"Type": "Choice",
"Choices": [
{
"Variable": "$.ResponseBody.errors",
"IsPresent": true,
"Next": "Failure"
}
],
"Default": "Retrieve Pet Store Data"
},
"Failure": {
"Type": "Fail"
},
"Retrieve Pet Store Data": {
"Type": "Task",
"Resource": "arn:aws:states:::apigateway:invoke",
"Parameters": {
"ApiEndpoint": "<GET_PETS_API_ENDPOINT>",
"Method": "GET",
"Stage": "default",
"Path": "pets",
"AuthType": "IAM_ROLE"
},
"ResultSelector": {
"Pets.$": "$.ResponseBody"
},
"ResultPath": "$.ExistingPets",
"End": true
}
}
}
有关将 Step Functions 与其他一起使用 Step Functions 时如何配置 IAMAmazon服务,请参阅集成服务的 IAM 政策.
示例 IAM
这些示例Amazon Identity and Access Management示例项目生成的 (IAM) 策略包括执行状态机和相关资源所需的最小权限。我们建议您在 IAM 策略仅包含这些必需的权限。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"execute-api:Invoke"
],
"Resource": [
"arn:aws:execute-api:us-west-1:111122223333:c8hqe4kdg5/default/GET/pets",
"arn:aws:execute-api:us-west-1:111122223333:c8hqe4kdg5/default/POST/pets"
],
"Effect": "Allow"
}
]
}
有关将 Step Functions 与其他一起使用 Step Functions 时如何配置 IAMAmazon服务,请参阅集成服务的 IAM 政策.