无法在 AWS Step Functions 中捕获 Lambda 函数响应

问题描述 投票:0回答:1

我在尝试捕获 AWS Step Functions 状态机中 Lambda 函数的响应时遇到问题。尽管进行了各种尝试,我仍无法正确检索响应正文。这是问题的概述:

描述:我有一个调用 Lambda 函数的 Step Functions 状态机。 Lambda 函数返回 JSON 响应正文。但是,当我执行状态机时,Step Functions 输出中捕获的响应并不符合预期。

预期行为:我希望 Step Functions 输出捕获 Lambda 函数返回的整个响应正文。

Java代码:

public ResponseEntity<Object> fetchCertificateStatus() {
        String jsonData = "{\"name\": \"John\", \"age\": 30, \"city\": \"New York\"}";

        // Parse the JSON data to a Java object
        Gson gson = new Gson();
        Person person = gson.fromJson(jsonData, Person.class);

        return ResponseEntity.ok(person);

    
    }

步骤功能代码:

{

  "Comment": "A description of my state machine",
  "StartAt": "Lambda Invoke",
  "States": {
    "Lambda Invoke": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:ap-southeast-2:72806977b",
      "ResultPath": "$.LambdaResponse",  // Store the entire Lambda response here
      "End": true
    }
  }
}

电流输出:

{
  "LambdaResult": 200
}

电流输出**

Step 功能状态的预期结果:**

{
    "name": "John",
    "age": 30,
    "city": "New York"
}

**

问题详情:**

  • Step Functions 输出仅捕获状态代码(例如 200),而不是整个响应正文。

  • 尝试使用特定的

    ResultPath
    值,例如
    LambdaResult
    LambdaResponseBody
    未产生预期结果。

  • 通过 Postman 等工具进行独立测试时,Lambda 函数本身可以正确返回 JSON 响应正文。

仅供参考: Lambda 在运行时使用 java 进行部署和运行。

采取的故障排除步骤:

  1. 验证状态机配置中的Lambda函数ARN是否正确。

  2. 确保 Lambda 函数以预期的 JSON 格式返回响应正文。

  3. 检查 Lambda 函数和 Step Functions 执行的 CloudWatch 日志中是否有任何错误消息。

Expecting:状态机输出选项卡中的完整 json 响应正文。

java json amazon-web-services spring-boot aws-step-functions
1个回答
0
投票

有一个基于 Java 的开发人员教程,向您展示读取数据的正确方法。此示例应用程序分析并存储客户反馈卡。具体来说,它满足了纽约市一家虚构酒店的需求。酒店以各种语言以实体评论卡的形式收到客人的反馈。该反馈通过网络客户端上传到应用程序中。评论卡图片上传后。

此示例应用程序使用 Lambda/Step 函数。我建议查看此示例中的代码。

创建一个分析客户反馈并合成音频的应用程序

© www.soinside.com 2019 - 2024. All rights reserved.