抑制有关 JSONPath 表达式的 Step Function 警告

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

我正在使用 AWS Step Functions 来编排涉及调用多个 AWS lambda 的工作流程。

其中一些 lambda 需要包含 JSONPath 表达式的有效负载,因为它们的实现使用这些表达式从 DynamoDb 记录中检索特定字段。

最近,步骤函数编辑器开始向我显示警告,提醒我这些 JSONPath 表达式的存在,以防我希望步骤函数平台在运行时计算 JSONPath 表达式。我不知道。这些警告是误报。

如何根据具体情况抑制这些警告?

There are Amazon States Language warnings about your state machine definition. Please review to confirm that the state machine will execute as intended.
The value of 'isAuthorisedFirmFlow' looks like a JSONPath. Instead of 'isAuthorisedFirmFlow', use 'isAuthorisedFirmFlow.$' to evaluate it as a JSONPath at runtime. /States/Try/Branches[0]/States/Application Data Worker/Parameters/Payload/attributes
For more information, see Amazon States Language 

enter image description here

这是导致这些警告的 lambda 调用任务的 ASL:

    "Application Data Worker": {
      "Type": "Task",
      "Resource": "arn:aws:states:::lambda:invoke",
      "Parameters": {
        "FunctionName.$": "States.Format('gateway-{}-dataprocessor-applicationdata-lambda:$LATEST', $.environment)",
        "Payload": {
          "attributes": {
            "intactApplicationId": "$.intactApplicationId",
            "firmId": "$.entities.applicationFirm.firmId",
            "ARN": "$.intactApplicationReferenceNumber",
            "contactId": "$.entities.applicationContactDetails.contactId",
            "firmName": "$.entities.applicationFirm.name",
            "effectiveDateOfChange": "$.entities.fdaFirmDetails.effectiveDateOfChange",
            "contactFirstName": "$.entities.applicationContactDetails.firstName",
            "contactLastName": "$.entities.applicationContactDetails.lastName",
            "contactEmail": "$.entities.applicationContactDetails.emailAddress",
            "submittedDate": "$.submittedDate",
            "submittedUserId": "$.submittedUserId",
            "registeredName": "$.entities.fdaFirmDetails.name",
            "registeredNameSnapshot": "$.entities.fdaFirmDetailsSnapshot.name",
            "hasARDetailsChecked": "$.entities.fdaFirmDetails.hasARDetailsChecked"
          },
          "applicationId.$": "$.applicationId",
          "userId.$": "$.userId",
          "correlationId.$": "$.correlationId"
        }
      },
      "Retry": [
        {
          "ErrorEquals": [
            "States.ALL"
          ],
          "IntervalSeconds": 60,
          "MaxAttempts": 4,
          "BackoffRate": 3
        }
      ],
      "Next": "Intact Application Worker",
      "ResultPath": "$.applicationDataResult",
      "ResultSelector": {
        "applicationData.$": "$.Payload.data"
      }
    },
amazon-web-services aws-step-functions
1个回答
0
投票

AWS 最近推出了 Validation API,因此没有明显的解决方法。你能做的最好的事情就是使用some类型的 ASL 来抑制这些,例如:


    {
       "intactApplicationId.$": "States.Format('$.intactApplicationId')",
       ...
    }

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