根据亚马逊的文档,可以使用HTTP API调用步骤函数。
步骤功能可以通过步进功能访问和使用 控制台,AWS软件开发工具包或HTTP API。
我试图搜索详细信息,但似乎找不到任何好的信息。有没有人知道如何使用API网关调用AWS步骤功能,类似于调用Lambda函数的方式?
答案 0 :(得分:4)
这不是"官方" AWS方式 - 请参阅Erndob的答案。
AWS方式的问题(使用AWS凭证签署每个请求)是大多数企业已经有成熟的方法来管理通过其API网关的身份验证和授权,并且(作为企业架构师发言)不想处理在AWS-credential级别重复此问题的头痛。
我确信AWS最终会将Step Functions与API Gateway集成在一起,但在撰写本文时(1/17),这可能是完成工作的最简单方法。下面是我写的一个简单的Lambda代理函数,用于利用SDK签署请求的能力:
'use strict';
const AWS = require('aws-sdk');
const stepfunctions = new AWS.StepFunctions();
exports.handler = (event, context, callback) => {
if(!event && event.action)
callback("Error: 'action' is required.");
if(!event && event.params)
callback("Error: 'params' is required.");
stepfunctions[event.action](event.params, function (err, data) {
if (err)
console.log(err, err.stack);
callback(err, data);
});
};

您需要授予Lambda权限以与步骤功能进行交互。要授予其对所有操作的完全访问权限,请创建新角色并附加以下策略:
现在正常配置要通过API网关调用的Lambda,传入一个包含两个属性的事件:
请务必锁定您的API! : - )
答案 1 :(得分:4)
如果您需要从API网关调用StepFunction,现在可以在文档中进行描述:https://docs.aws.amazon.com/step-functions/latest/dg/tutorial-api-gateway.html
AWS Service
Step Functions
POST
Use action name
StartExecution
API Gateway
受信任身份提供商和附加政策AWSStepFunctionsFullAccess
答案 2 :(得分:3)
它使用的是HTTP API,而不是API网关。
步骤功能端点遵循以下格式:
https://states.${region}.amazonaws.com
例如:
https://states.us-east-1.amazonaws.com
您使用HTTP API(同样,不是API网关)对您的州采取行动。
有关HTTP API的更多信息,请访问:
http://docs.aws.amazon.com/step-functions/latest/apireference/Welcome.html
从技术上讲,您可以使用API网关重定向到步骤函数API,但其中并没有多大意义。
答案 3 :(得分:1)
我最近在https://stackoverflow.com/a/59326771/6697093上发布了一个示例代码,使其可以使用CloudFormation和OpenApi进行工作。