如何通过 Ruby SDK 在 ECS Fargate Task 上配置临时存储?
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 中没有无法设置 属性 的错误或警告,例如(任务运行良好,然后用完磁盘space)。
- 我在文档中找不到有关如何解决此问题的任何内容。
如何通过 Ruby SDK 为临时任务执行设置临时存储? (我正在寻找等效的 SDK to this blogpost by AWS,而不是替代解决方案,例如通过 EC2 安装 EFS 或 运行)
此 was a bug of the SDK,现已修复(服务器端,因此不需要库更新)。
问题中的代码块是通过 Ruby SDK 增加临时存储的正确方法:
client.run_task({
# ...
overrides: {
# ...
ephemeral_storage: {
size_in_gi_b: 200
}
}
})
我正在使用适用于 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 中没有无法设置 属性 的错误或警告,例如(任务运行良好,然后用完磁盘space)。
- 我在文档中找不到有关如何解决此问题的任何内容。
如何通过 Ruby SDK 为临时任务执行设置临时存储? (我正在寻找等效的 SDK to this blogpost by AWS,而不是替代解决方案,例如通过 EC2 安装 EFS 或 运行)
此 was a bug of the SDK,现已修复(服务器端,因此不需要库更新)。
问题中的代码块是通过 Ruby SDK 增加临时存储的正确方法:
client.run_task({
# ...
overrides: {
# ...
ephemeral_storage: {
size_in_gi_b: 200
}
}
})