Я пытаюсь создать определение задачи для переноса БД, используя flyway, но безуспешно. Я не могу найти ни одного примера в Google. Чтобы указать c, как будет выглядеть файл json
в части CMD
?
редактировать после запроса @ydaetskcoR - чтобы прояснить ситуацию Код должен быть предоставлен terraform. Изучив некоторый код, я придумал следующее:
data "template_file" "db_mg_template" {
template =
"${file("${path.module}/templates/task_definition_dbmgr.json")}"
vars {
container_memory = "${local.db_migrations_container_memory}"
service_name = "${local.db_migrations_svc_name}"
cpu_limit = "${local.db_migrations_cpu_limit}"
vault_token = "${var.vault_token}"
consul_address = "${var.consul_address}"
command = "${jsonencode(local.command)}"
}
}
resource "aws_ecs_task_definition" "flyway" {
container_definitions = "${data.template_file.db_mg_template.rendered}"
family = "${local.db_migrations_svc_name}"
network_mode = "awsvpc"
requires_compatibilities = ["FARGATE"]
cpu = "${local.db_migrations_cpu_limit}"
memory = "${local.db_migrations_container_memory}"
execution_role_arn = "${data.aws_iam_role.service_role.arn}"
task_role_arn = "${data.aws_iam_role.service_role.arn}"
}
И у моих местных жителей (вставив соответствующий код):
locals{
command = ["-url=jdbc:${local.db_type}://${data.consul_keys.this_db.var.db_address}",
"-user=${data.consul_keys.this_db.var.db_username}",
"-password=${data.vault_generic_secret.db_pass.data["value"]}",
"-table=schema_version",
"-location=filesystem:/tmp/DBChanges",
"-sqlMigrationPrefix=v migrate"]
}
Цель состоит в том, чтобы запустить контейнер для пролетного пути, не ограничивая это к любому сервису (например, запуск docker контейнера) Надеюсь, это ясно, спасибо