如何使用一个TaskToken 两次回调同一个step 函数?
How do you use a TaskToken to callback to the same step function twice?
我正在使用带有 lambda 的步进函数来使用 $$.Task.Token 和 SendTaskSuccess.
进行回调
第一次回调一切正常。但是如果我需要进行第二次回调,我会得到 TaskTimedOut: Task Timed Out: 'Provided task does not exist anymore'
.
我不确定我是否应该保留来自 $$.Task.Token 的第一个任务令牌或为每个回调生成一个新任务令牌。但这似乎并不重要,因为我已经尝试过两者都尝试并以任何一种方式获得相同的结果。
这不应该吗?我有什么特别需要做的吗?
文档中没有明确说明的重要信息(我能够找到)是 TaskToken 只能使用一次。之后,如果您尝试再次使用它,您将收到 TaskTimedOut 错误。
为了进行第二次回调,我不得不在我的步进函数和 lambda 中实现“重新武装”功能。第一个回调完成后,我的步骤函数中有一个重新准备步骤,它会进行另一个 arn:aws:states:::lambda:invoke.waitForTaskToken
调用,将新的 $$.Task.Token
参数传递给 lambda。 lambda 可以在稍后使用该 TaskToken 来使用 SendTaskSuccess 进行回调。
只要遵循这个重新准备过程,就可以进行任意数量的回调。
我正在使用带有 lambda 的步进函数来使用 $$.Task.Token 和 SendTaskSuccess.
进行回调第一次回调一切正常。但是如果我需要进行第二次回调,我会得到 TaskTimedOut: Task Timed Out: 'Provided task does not exist anymore'
.
我不确定我是否应该保留来自 $$.Task.Token 的第一个任务令牌或为每个回调生成一个新任务令牌。但这似乎并不重要,因为我已经尝试过两者都尝试并以任何一种方式获得相同的结果。
这不应该吗?我有什么特别需要做的吗?
文档中没有明确说明的重要信息(我能够找到)是 TaskToken 只能使用一次。之后,如果您尝试再次使用它,您将收到 TaskTimedOut 错误。
为了进行第二次回调,我不得不在我的步进函数和 lambda 中实现“重新武装”功能。第一个回调完成后,我的步骤函数中有一个重新准备步骤,它会进行另一个 arn:aws:states:::lambda:invoke.waitForTaskToken
调用,将新的 $$.Task.Token
参数传递给 lambda。 lambda 可以在稍后使用该 TaskToken 来使用 SendTaskSuccess 进行回调。
只要遵循这个重新准备过程,就可以进行任意数量的回调。