在 AWS CDK 中设置状态机时,如何删除 Lambda 调用的默认重试策略?
When setting up a state machine in the AWS CDK, how do you remove the default Retry policy for a Lambda Invocation?
我正在使用 AWS CDK 创建状态机。而不是默认的重试策略,它看起来像这样:
"Retry": [
{
"ErrorEquals": [
"Lambda.ServiceException",
"Lambda.AWSLambdaException",
"Lambda.SdkClientException"
],
"IntervalSeconds": 2,
"MaxAttempts": 6,
"BackoffRate": 2
}
]
我只想拥有一个包罗万象的政策,如下所示:
"Retry": [
{
"ErrorEquals": [
"States.ALL"
],
"IntervalSeconds": 10,
"MaxAttempts": 3,
"BackoffRate": 1.5
}
]
不幸的是,我找不到在部署堆栈时删除默认策略的方法。我的包罗万象只是添加到重试策略数组的末尾。
"Retry": [
{
"ErrorEquals": [
"Lambda.ServiceException",
"Lambda.AWSLambdaException",
"Lambda.SdkClientException"
],
"IntervalSeconds": 2,
"MaxAttempts": 6,
"BackoffRate": 2
},
{
"ErrorEquals": [
"States.ALL"
],
"IntervalSeconds": 10,
"MaxAttempts": 3,
"BackoffRate": 1.5
}
]
有人知道如何取消默认策略吗?
我在 documentation 中找到了答案
创建名为 retryOnServiceExceptions
的 LambdaInvoke 任务时,您可以设置一个标志。将其设置为 false 会删除默认的重试策略。
var submitOrder = new sfnt.LambdaInvoke(this, "SubmitOrder", {
lambdaFunction: submitOrderLambda,
comment: "Call the orders api to submit the order update",
retryOnServiceExceptions: false
});
我正在使用 AWS CDK 创建状态机。而不是默认的重试策略,它看起来像这样:
"Retry": [
{
"ErrorEquals": [
"Lambda.ServiceException",
"Lambda.AWSLambdaException",
"Lambda.SdkClientException"
],
"IntervalSeconds": 2,
"MaxAttempts": 6,
"BackoffRate": 2
}
]
我只想拥有一个包罗万象的政策,如下所示:
"Retry": [
{
"ErrorEquals": [
"States.ALL"
],
"IntervalSeconds": 10,
"MaxAttempts": 3,
"BackoffRate": 1.5
}
]
不幸的是,我找不到在部署堆栈时删除默认策略的方法。我的包罗万象只是添加到重试策略数组的末尾。
"Retry": [
{
"ErrorEquals": [
"Lambda.ServiceException",
"Lambda.AWSLambdaException",
"Lambda.SdkClientException"
],
"IntervalSeconds": 2,
"MaxAttempts": 6,
"BackoffRate": 2
},
{
"ErrorEquals": [
"States.ALL"
],
"IntervalSeconds": 10,
"MaxAttempts": 3,
"BackoffRate": 1.5
}
]
有人知道如何取消默认策略吗?
我在 documentation 中找到了答案
创建名为 retryOnServiceExceptions
的 LambdaInvoke 任务时,您可以设置一个标志。将其设置为 false 会删除默认的重试策略。
var submitOrder = new sfnt.LambdaInvoke(this, "SubmitOrder", {
lambdaFunction: submitOrderLambda,
comment: "Call the orders api to submit the order update",
retryOnServiceExceptions: false
});