[英]Nested workflow - The security token included in the request is invalid
我使用本地 docker StepFunctions 设置并尝试使用sync
或waitForTaskToken
在 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_id
和secret_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.