如何使用Terraform在ECS集群中挂载EFS子文件夹?

时间:2019-07-04 08:09:39

标签: amazon-web-services docker terraform amazon-ecs efs

我有一个EFS,我想将其安装到ECS集群(在EC2实例上运行)。

我的集群正在运行多个应用程序,我希望每个应用程序都使用EFS的子文件夹。

在EC2的启动配置中,我为/ mnt / efs下的应用创建了不同的文件夹

然后我尝试在“任务定义”中以这种方式将子文件夹放入EFS网址中:

resource "aws_ecs_task_definition" "task_definition" {
  ...
  volume {
    name = "efs_app1"
    docker_volume_configuration {
      scope         = "shared"
      autoprovision = true
      driver        = "local"
      driver_opts = {
        "type"   = "nfs"
        "device" = "${aws_efs_file_system.efs.dns_name}:/"
        "o"      = "addr=${aws_efs_file_system.efs.dns_name}:/app1,nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2"
      }
    }
  }

但是容器无法启动并生成此错误:

  

状态原因CannotCreateContainerError:来自守护程序的错误响应:   在nfs地址中传递的错误解决:查找   fs-xxxxxxx.efs.eu-west-1.amazonaws.com:/app1:没有这样的主机

我不确定安装卷时用于指定子文件夹的语法。这是对的吗 ?还是有什么办法可以解决这个问题?

谢谢。

0 个答案:

没有答案