我想知道如何让API网关调用步骤函数并执行它。
答案 0 :(得分:8)
API Gateway目前增加了对步骤功能的支持。现在,您可以通过API网关控制台创建AWS服务集成。
接头:
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资源事件主机触发。