gpt4 book ai didi

用于 ECS 任务/容器的 Terraform AWS CloudWatch 日志组

转载 作者:行者123 更新时间:2023-12-03 18:40:22 24 4
gpt4 key购买 nike

我正在尝试使用 Terraform 创建一个 AWS ECS 任务,该任务会将日志放在 CloudWatch 上的特定日志组中。问题是容器定义在 JSON 文件中,我无法将 CloudWatch 组名称从 .tf 文件映射到该 .json 文件。

container_definition.json:

[
{
"name": "supreme-task",
"image": "xxxx50690yyyy.dkr.ecr.eu-central-1.amazonaws.com/supreme-task",
"essential": true,
"portMappings": [
{
"containerPort": 5000,
"hostPort": 5000
}
],
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "supreme-task-group", <- This needs to be taken from variable.tf file.
"awslogs-region": "eu-central-1",
"awslogs-stream-prefix": "streaming"
}
}
}
]

变量.tf:

variable "ecs_task_definition_name" {
description = "Task definition name."
type = string
default = "supreme-task-def"
}

variable "task_role" {
description = "Name of the task role."
type = string
default = "supreme-task-role"
}

variable "task_execution_role" {
description = "Name of the task execution role."
type = string
default = "supreme-task-exec-role"
}

variable "cloudwatch_group" {
description = "CloudWatch group name."
type = string
default = "supreme-task-group"
}


任务定义:
resource "aws_ecs_task_definition" "task_definition" {
family = var.ecs_task_definition_name
requires_compatibilities = ["FARGATE"]
network_mode = "awsvpc"
cpu = 1024
memory = 4096
container_definitions = file("modules/ecs-supreme-task/task-definition.json")
execution_role_arn = aws_iam_role.task_execution_role.name
task_role_arn = aws_iam_role.task_role.name
}

有没有办法做到这一点?或者也许这应该以不同的方式完成?

最佳答案

通过遵循@ydaetskcorR 的评论解决。

将容器定义作为内联参数。

container_definitions = <<DEFINITION
[
{
"name": "${var.repository_name}",
"image": "${var.repository_uri}",
"essential": true,
"portMappings": [
{
"containerPort": 5000,
"hostPort": 5000
}
],
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "${var.cloudwatch_group}",
"awslogs-region": "eu-central-1",
"awslogs-stream-prefix": "ecs"
}
}
}
]
DEFINITION

关于用于 ECS 任务/容器的 Terraform AWS CloudWatch 日志组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59684900/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com