#amazon-web-services #terraform #terraform-provider-aws #amazon-aurora
Вопрос:
Я создаю экземпляры кластера aws_rds_cluster_instance (main.tf). Могу ли я создать схему из файла с помощью terraform.
resource "aws_rds_cluster_instance" "default" {
count = var.replica_count
identifier = "${var.region}-${var.project}-${var.env}-
aurora-${count.index}"
cluster_identifier = aws_rds_cluster.default.id
instance_class = var.instance_class
engine = aws_rds_cluster.default.engine
engine_version = aws_rds_cluster.default.engine_version
db_parameter_group_name = aws_db_parameter_group.this.name
preferred_maintenance_window = "sun:02:00-sun:04:00"
auto_minor_version_upgrade = var.auto_minor_version_upgrade
performance_insights_enabled = var.performance_insights_enabled
Комментарии:
1. Вы можете попробовать поставщика терраформирования PostgreSQL: registry.terraform.io/providers/cyrilgdn/postgresql/latest/docs
Ответ №1:
Вы не можете сделать это с поставщиком aws. Однако вы можете запустить local-exec, который вызовет или выполнит сценарий, который создаст все базы данных и таблицы, которые вам нужны в вашем новом кластере aurora.
Комментарии:
1. Спасибо за ваш ответ @marcin, я тоже пытаюсь это сделать, но не был уверен в этом. Ниже приведено то, что я попробовал с моей стороны. Я создаю схему с помощью schema.sql
2. « файл поставщика «{подключение { пользователь = var.имя пользователя хост = var.имя хоста приватный ключ = файл («~/. ssh/ec2_cert.pem»)} источник=». /схема.sql «назначение=»~»} поставщик » удаленный исполнитель «{подключение { пользователь = var.имя пользователя хост = var.имя хоста приватный ключ = файл («~/. ssh/ec2_cert.pem»)} команда = » mysql —хост=${var.имя хоста} —порт=${var.порт} —пользователь=${var.имя пользователя} —пароль=${случайный пароль.пароль.результат}
3. @Devops-Ученик Я бы предложил задать новый вопрос относительно локального объекта и вашего сценария с соответствующими сообщениями об ошибках. Если бы мой ответ на ваш текущий вопрос о том, что вы можете сделать, был полезен, я был бы признателен за его принятие.