ECS 模块中的 Terraform cloudwatch_log_group_retention_in_days 不适用于 CloudWatch 保留设置

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

目标:将 CloudWatch Group 的保留期设置为 7 天

问题:我正在使用

terraform-aws-modules/ecs
和服务子模块。当我设置 cloudwatch 日志组的保留并将
cloudwatch_log_group_retention_in_days
设置为
7
时,它不适用于以下代码。保留期默认为 12 个月。

cloudwatch_log_group_retention_in_days
对于此用例来说是正确的设置吗?我有什么遗漏的吗?

module "ecs_service" {
  source = "terraform-aws-modules/ecs/aws//modules/service"

  ...
 
  container_definitions = {
    my_service = {
      essential = true
      cpu       = var.cpu
      memory    = var.memory
      image     = var.container_image
      port_mappings = [
        {
          name          = var.service_name
          containerPort = var.container_port
          protocol      = "tcp"
        }
      ]
      environment = var.environment
      readonly_root_filesystem = false

      # CloudWatch Log configuration
      enable_cloudwatch_logging              = true
      create_cloudwatch_log_group            = true
      cloudwatch_log_group_use_name_prefix   = true
      cloudwatch_log_group_name              = "/aws/ecs/my_cluster/my_service"
      cloudwatch_log_group_retention_in_days = 7
      log_configuration = {
        logDriver = "awslogs"
      }
    }
  }

  ...
}
terraform amazon-ecs amazon-cloudwatch terraform-modules terraform-aws-modules
1个回答
0
投票

这是该 service 模块的

文档
。根据该文档,整个
container_definitsions
块只是由 Terraform 模块直接传递到 AWS。该块内的所有内容都必须符合 此 API,任何不符合该 API 的内容都将被完全忽略。

您尝试设置的值仅受该项目中的父模块支持。这些是该模块的顶级输入变量,它们当然不属于

container_definitions
块内。

您需要使用父模块来管理所有 ECS 资源,或者您只需直接创建 CloudWatch Logs 组,以控制该资源上的设置。

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