微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从阶跃函数中获取输出结果

如何解决如何从阶跃函数中获取输出结果

我已经创建了步骤函数并按照 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 以获取执行结果。

对于标准工作流,您需要使用 sdkcli 中的 DescribeExecution api,其输入为 executionArn

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。