繁体   English   中英

如何通过 Ruby SDK 在 ECS Fargate 任务上配置临时存储?

[英]How to configure ephemeral storage on ECS Fargate Task via Ruby SDK?

我正在使用 AWS ECS 的 Ruby SDK 通过run_task方法启动托管在 Fargate 中的任务。 这一切都适用于默认值 - 我可以启动任务 OK 并且可以将自定义命令参数发送到我的 Docker 容器:

client = Aws::ECS::Client.new(region: region)
client.run_task({
  cluster: fargate_cluster_name,
  task_definition: task_definition,
  launch_type: 'FARGATE',
  network_configuration: {
    awsvpc_configuration: {
      subnets: my_subnets,
        security_groups: my_security_groups,
        assign_public_ip: 'ENABLED',
      },
  },
  overrides: {
    container_overrides: [
      {
        name: my_container_name,
        command: command_params
      }
    ]
  }
})

对于某些运行,我需要比默认值更大的磁盘大小,并希望通过 SDK 中的ephemeral_storage参数进行设置。 我试过这个:

client = Aws::ECS::Client.new(region: region)
client.run_task({
  cluster: fargate_cluster_name,
  task_definition: task_definition,
  launch_type: 'FARGATE',
  network_configuration: {
    awsvpc_configuration: {
      subnets: my_subnets,
        security_groups: my_security_groups,
        assign_public_ip: 'ENABLED',
      },
  },
  overrides: {
    container_overrides: [
      {
        name: my_container_name,
        command: command_params
      }
    ],
    ephemeral_storage: {
      size_in_gi_b: 200
    }
  }
})

但它不起作用(我在我的入口点运行df -H并且可以看到存储没有增加)。

  • 我知道ephermal_storage属性在我的调用中位于正确的位置,就好像我移动它 SDK 给出了错误一样。
  • 我知道size_in_gi_b值是正确的,就好像我改变它(例如size_in_gib )我也得到一个错误。
  • 我正在使用平台版本1.4.0
  • Cloudwatch 中没有错误或警告无法设置属性,例如(任务运行良好,然后磁盘空间不足)。
  • 我在文档中找不到有关如何解决此问题的任何内容。

如何通过 Ruby SDK 为临时任务执行设置临时存储? (我正在寻找与AWS的这篇博文等效的 SDK,而不是替代解决方案,例如安装 EFS 或通过 EC2 运行)

是 SDK 的错误,现已修复(服务器端,因此不需要库更新)。

问题中的代码块是通过 Ruby SDK 增加临时存储的正确方法:

client.run_task({
  # ...
  overrides: {
    # ...
    ephemeral_storage: {
      size_in_gi_b: 200
    }
  }
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM