Sam*_*are 0 amazon-web-services amazon-ecs terraform
我正在运行测试,我的容器不希望有硬内存限制,因为我以编程方式将虚拟机交换为更大尺寸的虚拟机,并且需要容器能够自动利用 CPU 和内存的增量。我想探索内存预留,因为它是软限制,并且如果虚拟机的内存不低,则允许容器扩展。不幸的是,这个参数似乎在任务定义中不起作用。有任何想法吗?
resource "aws_ecs_task_definition" "quorum" {
family = "quorum-${var.consensus_mechanism}-${var.tx_privacy_engine}-${var.network_name}"
container_definitions = "${replace(element(compact(local.container_definitions), 0), "/\"(true|false|[0-9]+)\"/", "$1")}"
requires_compatibilities = ["${var.ecs_mode}"]
# cpu = "4096"
# memory = "81920"
memoryReservation = "8192"
network_mode = "${var.ecs_network_mode}"
task_role_arn = "${aws_iam_role.ecs_task.arn}"
execution_role_arn = "${aws_iam_role.ecs_task.arn}"
volume {
name = "${local.shared_volume_name}"
}
volume {
name = "docker_socket"
host_path = "/var/run/docker.sock"
}
}
Run Code Online (Sandbox Code Playgroud)
[FINAL] Summary execution:
Wrote summarry output to: .mjolnir//output.log
2 errors occurred:
* aws_ecs_service.quorum: 5 errors occurred:
* aws_ecs_service.quorum[3]: Resource 'aws_ecs_task_definition.quorum' not found for variable 'aws_ecs_task_definition.quorum.revision'
* aws_ecs_service.quorum[0]: Resource 'aws_ecs_task_definition.quorum' not found for variable 'aws_ecs_task_definition.quorum.revision'
* aws_ecs_service.quorum[4]: Resource 'aws_ecs_task_definition.quorum' not found for variable 'aws_ecs_task_definition.quorum.revision'
* aws_ecs_service.quorum[2]: Resource 'aws_ecs_task_definition.quorum' not found for variable 'aws_ecs_task_definition.quorum.revision'
* aws_ecs_service.quorum[1]: Resource 'aws_ecs_task_definition.quorum' not found for variable 'aws_ecs_task_definition.quorum.revision'
* output._status: Resource 'aws_ecs_task_definition.quorum' not found for variable 'aws_ecs_task_definition.quorum.revision'
Restoring env variables.
Error occured: 4
Run Code Online (Sandbox Code Playgroud)
我将非常感谢指点
ECS 任务定义由多个容器定义组成,其中包含一些额外参数,这些参数可以为整个任务设置硬性限制,还可以设置放置约束和网络配置等内容。
要设置允许任务在 ECS 中使用的内存软限制而不是硬限制,您需要memoryReservation从容器定义而不是任务定义中使用。
您问题中的代码没有显示您如何在本地定义容器定义,但在 ECS 任务中设置软内存限制的基本示例如下所示:
resource "aws_ecs_task_definition" "service" {
family = "service"
container_definitions = <<EOF
[
{
"name": "first",
"image": "service-first",
"cpu": 10,
"memoryReservation": 512,
"essential": true,
"portMappings": [
{
"containerPort": 80,
"hostPort": 80
}
]
},
{
"name": "second",
"image": "service-second",
"cpu": 10,
"memoryReservation": 256,
"essential": true,
"portMappings": [
{
"containerPort": 443,
"hostPort": 443
}
]
}
]
EOF
}
Run Code Online (Sandbox Code Playgroud)