AWS StepFunctions-SendTaskSuccess / SendTaskFailure操作-任务超时

时间:2018-06-21 13:05:06

标签: amazon-web-services boto3 aws-step-functions

我正在尝试执行一个具有使用活动资源的任务的步进功能。

在运行我的代码后,我想返回SendTaskSuccessSendTaskFailure

返回到步进功能。

我偶尔会收到以下错误(少于10秒后):

An error occurred (TaskTimedOut) when calling the SendTaskFailure operation: Task Timed Out: 'arn:aws:states:us-east-1:<....>'

我在哪里禁用TaskTimeOut?或如何增加它?

更多信息

这是步进功能代码

{
  "Comment": "orchestrator-state-machine",
  "StartAt": "get_data_from_lambda",
  "States": {

    "get_data_from_lambda": {
      "Type": "Pass",
      "Next": "start_task"
    },

    "start_task": {
      "Type": "Task",
      "Resource": "arn:aws:states:us-east-1:<...>",
      "End": true
    }

  }
}

发送成功的代码

self._client = boto3.client('stepfunctions', self._region, config=Config(connect_timeout=65,read_timeout=70,region_name=self._region))

...
def task_success(self, token, result):
    self.logger.info(str(token))
    try:
        self._client.send_task_success(taskToken=token, output=result)
        self.logger.info("sending success back to step function")
    except Exception as e:
        self.logger.error("did not send success to step function: {0}".format(str(e)))

    return True

请求详细信息

{
  'Error': {
    'Message': "Task Timed Out: 'arn:aws:states:us-east-1:<....>t'",
    'Code': 'TaskTimedOut'
  },
  'ResponseMetadata': {
    'RequestId': 'b******d-755a-****-9cef-ad*******a4c',
    'HTTPStatusCode': 400,
    'HTTPHeaders': {
      'x-amzn-requestid': 'b******d-755a-****-9cef-ad*******a4c',
      'content-type': 'application/x-amz-json-1.0',
      'content-length': '154'
    },
    'RetryAttempts': 0
  }
}

2 个答案:

答案 0 :(得分:0)

我检查了一下,并设法使用AWS command line interface

轻松地重现了该问题。

似乎是AWS的问题,现已解决。

答案 1 :(得分:0)

您可以通过添加Timeout=300将超时添加到活动步骤,其中300表示秒。 "start_task": { "Type": "Task", "Resource": "arn:aws:states:us-east-1:<...>", "Timeout":300, "End": true } 另外,您还需要使资源变为活动性arn而不是lambda函数arn