代码之家  ›  专栏  ›  技术社区  ›  realnsleo

无法使用Terraform在ECS任务定义容器上装载EFS卷

  •  1
  • realnsleo  · 技术社区  · 2 年前

    使用terraform,我正在尝试将EFS卷附加到容器。我会指定一个要装载的文件夹,而不是根路径。我什么都试过了,但无论我做什么 root_directory 选项似乎被忽略了。

    这是我的任务定义片段:

    resource "aws_ecs_task_definition" "ecs_task_def" {
      family                = "application"
      container_definitions = jsonencode([
        {
          ...
        },
        {
          name : "redis",
          mountPoints = [
            {
              "readOnly" : null,
              "containerPath" : "/bitnami/redis/data",
              "sourceVolume" : "efs"
            }
          ],
          ...
        }
      ])
      ...
    
      volume {
        name = "efs"
    
        efs_volume_configuration {
          file_system_id     = var.ecs_efs_filesystem_id
          transit_encryption = "DISABLED"
          root_directory     = "/some/path/here"
          authorization_config {
            iam = "DISABLED"
          }
        }
      }
    }
    

    无论我尝试做什么,容器总是安装在根上。我试过自己创建文件夹,但没有任何变化。无论我做什么,我最终总是这样:

    every single time!

    如果有人能告诉我哪里出了问题,我将不胜感激。非常感谢。

    1 回复  |  直到 2 年前
        1
  •  3
  •   Mark B    2 年前

    根据 the documentation :

    Amazon EFS文件系统中的目录,作为主机内的根目录装载。如果省略此参数,则将使用Amazon EFS卷的根目录。指定/将具有与省略此参数相同的效果。使用时忽略此参数 authorization_config

    您正在指定 授权配置 这意味着它忽略了 root_directory 背景由于您除了禁用在 授权配置 你应该试着删除 授权配置 完全

    这个 授权配置 用于EFS访问点。如果您使用EFS访问点,您将在访问点设置中指定装载位置,这就是Terraform忽略当前 根目录 背景