如何通过API网关调用AWS步骤功能?

时间:2016-12-16 16:26:03

标签: amazon-web-services aws-api-gateway aws-step-functions

我想知道如何让API网关调用步骤函数并执行它。

4 个答案:

答案 0 :(得分:8)

API Gateway目前增加了对步骤功能的支持。现在,您可以通过API网关控制台创建AWS服务集成。

  • 集成类型: AWS服务
  • AWS服务:步骤功能
  • HTTP方法: POST
  • 操作类型:使用操作名称
  • 操作: StartExecution
  • 执行角色:开始执行的角色
  • 接头:

    X-Amz-Target - > ' AWSStepFunctions.StartExecution'
    内容类型 - > '应用程序/ x-AMZ-JSON-1.0'

  • Body Mapping Templates / Request payload:

    {   "输入":"字符串",   " name":" string",   " stateMachineArn":" string" }

答案 1 :(得分:4)

您可以使用Integration type: AWS Service创建API网关端点,并将其设置为调用所需的步骤函数。

如果您想使用API​​网关以便控制步骤功能端点的曝光,您可以创建一个新的IAM用户(仅限编程访问),其中策略仅授予访问权限到这个终点,例如:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "execute-api:Invoke"           
      ],
      "Resource": [
        "arn:aws:execute-api:us-east-1:my-aws-account-id:my-api-id/my-stage/GET/my-resource-path"
      ]
    }
  ]
}  

答案 2 :(得分:1)

我认为您可以将API网关代理集成用于AWS服务。看:https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-method-settings-console.html

答案 3 :(得分:1)

考虑创建一个AWS Lambda函数,该函数支持APIGw端点并让它通过代码调用AWS StepFunctions。我们使用这种方法是因为我们的用例允许API端点参数指示我们需要执行的几个StepFunction中的哪一个。

不可否认,它是“更多代码”;我们希望AWS能够详细说明StepFunctions,以便它们可以由整个AWS资源事件主机触发。