Terraform:ConcurrentUpdate异常:您已经有对 Auto Scaling 资源的待处理更新



我正在尝试配置应用程序自动扩展以通过 Terraform 管理lambda 函数中的预置并发性。有时我在运行应用程序时会出现以下异常:

Error creating application autoscaling target: ConcurrentUpdateException: You already have a pending update to an Auto Scaling resource.
status code: 400, request id: dd93d5d3-314c-11ea-aeb2-d9246c0fa0b9
on autoscaling.tf line 1, in resource "aws_appautoscaling_target" "autoscaling-lambda-target":
1: resource "aws_appautoscaling_target" "autoscaling-lambda-target" {

我知道,如果您请求更新已具有挂起更新的应用程序 Auto Scaling 资源,则会发生此错误。正如我所说,它有时会发生。我怎样才能100%避免这种情况?

我的autoscaling.tf(因为有很多 lambda,所以它为每个 lambda 运行(

resource "aws_appautoscaling_target" "lambda-target" {
depends_on = [
aws_lambda_alias.alias-qa
]
for_each = aws_lambda_function.lambda-function
max_capacity = local.lambda_functions[each.key].max 
min_capacity = local.lambda_functions[each.key].min 
resource_id = "function:${each.value.function_name}:${var.stage}"
scalable_dimension = "lambda:function:ProvisionedConcurrency"
service_namespace = "lambda"
}

通常,您有一个具有一个或多个自动缩放策略的扩展目标。当您针对 ECS 服务或 lambda 多次运行aws_appautoscaling_target时,会出现此错误。检查您拥有的循环,问题肯定存在

您可以尝试设置-parallelism=1,这样它就不会尝试同时执行多个操作,但这会减慢整体部署速度。

最新更新