通过在调用Durable functions时提供执行名称来实现幂等性(idempotency)。这可以防止在多次调用相同请求时产生重复执行。
当我们调用Durable functions时,我们可以提供一个执行名称(Durable execution name )作为幂等性键。如果我们不提供,Lambda 会自动生成一个随机执行 ID。
在 Lambda 控制台中,并使用 Test 选项卡创建带有执行名称的测试事件。将 Execution name 设置为test-execution-1:

测试名称命名为test-idempotency-1, 使用以下 JSON payload:
{
"itemName": "Charger",
"customerId": "customer-456"
}

保存,并点击 Test 并记录执行结果, 使用相同的执行名称再次选择 Test
观察到我们获得了相同的结果 - 没有创建新的执行
接下来,使用不同的执行名称进行测试:
将 Execution name 更改为test-execution-2, 使用相同的载荷选择 Test, 观察到我们获得了一个新的执行,结果可能有所不同
最后,使用相同的执行名称但不同的载荷进行测试, 将 Execution name 改回test-execution-1
使用不同的 JSON 载荷:
{
"itemName": "Laptop",
"customerId": "customer-999"
}
选择 Test, 观察到我们收到了一个错误 - Lambda 阻止使用相同名称但不同的payload启动新的执行。

导航到 Durable executions 选项卡以查看所有执行记录。注意:

执行名称仅在保留期内是唯一的。执行完成后,Lambda 会在配置的保留期内保留其历史记录和检查点数据(默认:24 小时,最长:14 天)。
一旦保留期到期:
根据我们的幂等性需求配置保留期。如果我们需要在更长时间内防止重复处理,请增加保留期
此幂等性功能对于构建可靠系统至关重要,在这些系统中,我们需要安全地多次调用操作而不产生重复。