如何解决如何从阶跃函数中获取输出结果
我已经创建了步骤函数并按照 AWS 文档中的说明调用了它们。对于输出,我得到
{
"executionArn": "arn:aws:states:us-east-1:123456789012:execution:HelloWorld:MyExecution","startDate": 1385732956.878
}
但是,我想要我的 API 响应,而不是上面的响应
{ response: DATA}
我怎样才能做到这一点?
编辑: 这是触发状态机的 lambda:
import * as AWS from 'aws-sdk';
import {APIGatewayEvent} from 'aws-lambda';
const stepFunctions = new AWS.StepFunctions();
export const handler = (event: APIGatewayEvent) => {
console.log('event: ' + JSON.stringify(event));
const stateMachineARN = process.env.MACHINE_ARN;
const params = {
stateMachineArn: stateMachineARN,input: JSON.stringify(event),};
const request = stepFunctions.startExecution(params);
request.on('error',err => {
console.log('aca' + err.message);
});
request.send();
};
和状态机的输出:
{
"ExecutedVersion": "$LATEST","Payload": {
"isBase64Encoded": false,"statusCode": 200,"headers": {},"body": {
"endpoint": {
"url": "xxx","method": "POST","request": "xxx"
}
}
},
我需要抓住那个有效载荷。
解决方法
DescribeExecution
函数返回 Step Function 的输出。
见:https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeExecution.html
如何调用这取决于您选择的 SDK(AWS CLI、Boto3、Java SDK 等)
,如果您使用的是快速工作流,则可以调用它 synchronously 以获取执行结果。
对于标准工作流,您需要使用 sdk 或 cli 中的 DescribeExecution
api,其输入为 executionArn
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。