Terraform cloudwatch保留逻辑

问题描述 投票:0回答:1

我正在尝试向我的terraform脚本添加逻辑,以便在创建lambda时添加CW保留逻辑,因此我们的日志会在30天后清除。我所看到的是,当运行terraform来更新现有的lambda(在我的新保留逻辑被添加之前部署)时,我的作业失败并出现以下错误。

  • aws_cloudwatch_log_group.lambda-deploy:发生1个错误:
  • aws_cloudwatch_log_group.lambda-deploy:创建CloudWatch日志组失败:ResourceAlreadyExistsException:指定的日志组已存在状态码:400,请求ID:e500eb50-4a81-11e9-9c08-7152b4a0ad31:CloudWatch日志组'/ aws / lambda / {lambda -name}'已经存在。

以下是我设置terraform代码的方法:

resource "aws_lambda_function" "lambda-deploy" {
  filename      = "${var.filename}"
  function_name = "${var.functionname}"
  role          = "${var.role}"
  handler       = "${var.handler}"
  runtime       = "${var.runtime}"
  publish       = "${var.publish}"
  memory_size   = "${var.memory_size}"
  timeout       = "${var.timeout}"
  description   = "${var.description}"

  layers = "${var.layers}"

  environment {
    variables = "${var.envVars}"
  }

  tags {
    PLATFORM        = "${var.tag_PLATFORM}"
    BUSINESS_UNIT   = "${var.tag_BUSINESS_UNIT}"
    CLIENT          = "${var.tag_CLIENT}"
    BUSINESS_REGION = "${var.tag_BUSINESS_REGION}"
  }

  vpc_config {
    subnet_ids         = "${var.subnet_ids}"
    security_group_ids = "${var.security_group_ids}"
  }
}

#Below logic will add cloud watch retention logic so logs rotate after 30 days.
resource "aws_cloudwatch_log_group" "lambda-deploy" {
  name              = "/aws/lambda/${aws_lambda_function.lambda-deploy.function_name}"
  retention_in_days = "30"
}

我的问题是,aws_cloudwatch_log_group资源是否可以检查是否已创建云监视组,只更新保留策略而不是尝试创建日志组?

lambda terraform serverless
1个回答
0
投票

既然你没有向我们展示lambda函数的iam角色策略,我必须猜测。

我的感觉是我的角色和lambda的政策有权限logs:CreateLogGroup。所以lambda函数将照顾creating log group if not exist

更新时,此日志组不受terraform管理,它将报告问题。

你能删除权限logs:CreateLogGroup并删除日志组,然后再试一次吗?

© www.soinside.com 2019 - 2024. All rights reserved.