我正在尝试执行一个具有使用活动资源的任务的步进功能。
在运行我的代码后,我想返回SendTaskSuccess
或SendTaskFailure
返回到步进功能。
我偶尔会收到以下错误(少于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
}
}
答案 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