繁体   English   中英

嵌套工作流 - 请求中包含的安全令牌无效

[英]Nested workflow - The security token included in the request is invalid

我使用本地 docker StepFunctions 设置并尝试使用syncwaitForTaskToken在 StateMachine(嵌套工作流)中调用 StateMachine。 但是有这个错误(见下文)。

有谁知道这意味着什么? 是不是因为本地 StepFunctions 服务不允许 StateMachine 调用另一个 StateMachine?


2021-01-15 02:11:03.336: arn:aws:states:us-east-1:123456789012:execution:Foobar-Dev:6bae52c1-3562-44a5-88fd-68a533f054bf : 
{
    "Type":"TaskFailed",
    "PreviousEventId":29,
    "TaskFailedEventDetails":{
        "ResourceType":"states",
        "Resource":"startExecution.sync",
        "Error":"StepFunctions-AWSStepFunctionsException",
        "Cause":"The security token included in the request is invalid. (Service: AWSStepFunctions; Status Code: 400; Error Code: UnrecognizedClientException; Request ID: ca3a983d-3496-4d48-854a-1bb803a44f2a; Proxy: null)"
    }
}

主要工作流程定义:


    "FoobarWorkflow": {
      "Type": "Task",
      "Resource": "arn:aws:states:::states:startExecution.sync",
      "Parameters": {
        "StateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:Foobar-Dev",
        "Input": {
          "NeedCallback": false,
          "AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id"
        }
      },

子工作流定义:


{
    "Comment": "Foobar-Dev",
    "StartAt": "Screening",
    "Version": "1.0",
    "TimeoutSeconds": 480,
    "States": {
        "Screening": {
            "Type": "Task",
            "Resource": "arn:aws:states:us-east-1:123456789012:activity:ScreeningActivity-Dev",
            "Next": "ScreeningChoiceState",
            "Retry": [
              {
                "ErrorEquals": [
                  "States.TaskFailed",
                  "States.Runtime"
                ],
                "IntervalSeconds": 3,
                "MaxAttempts": 3,
                "BackoffRate": 2
              }
            ],
            "Catch": [
              {
                "ErrorEquals": [
                  "States.TaskFailed",
                  "States.Runtime"
                ],
                "Next": "DefaultSystemFailure",
                "ResultPath": "$.error"
              },
              {
                "ErrorEquals": [
                  "States.ALL"
                ],
                "Next": "DefaultSystemFailure",
                "ResultPath": "$.error"
              }
            ]
        },
        ...
 "ScreeningFinalDecision": {
            "Type": "Task",
            "Resource": "arn:aws:states:us-east-1:123456789012:activity:ScreeningFinalDecision-Dev",
            "End": true
        }

经过一番挖掘,似乎对于本地 StepFunction docker 设置,我们需要为access_key_idsecret_access_key传递额外的环境变量以启用嵌套工作流。

医生在这里谈论这个。

要为 Docker 配置 Step Functions Local,请创建以下文件: aws-stepfunctions-local-credentials.txt

此文件包含您的凭据和其他配置选项,如下所示。

 AWS_DEFAULT_REGION=AWS_REGION_OF_YOUR_AWS_RESOURCES AWS_ACCESS_KEY_ID=YOUR_AWS_ACCESS_KEY AWS_SECRET_ACCESS_KEY=YOUR_AWS_SECRET_KEY

在 aws-stepfunctions-local-credentials.txt 中配置凭证和配置选项后,使用以下命令启动 Step Functions。

 docker run -p 8083:8083 --env-file aws-stepfunctions-local-credentials.txt amazon/aws-stepfunctions-local

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM