Как настроить базу данных HA/DR в AWS? [9 — Генерация случайного значения]

В этой части (и последней части серии) мы рассмотрим, как генерировать случайное значение.

Это очень полезно, например, для создания уникальных имен для снапшотов. Вы увидите, что существует несколько определений, в зависимости от того, что вам нужно.


Random Id

resource "random_id" "rdm_id" {
  byte_length = 8
}
Вход в полноэкранный режим Выйти из полноэкранного режима

Объявленный как это, он сгенерирует для вас идентификатор длиной 8 байт, который может быть получен в формате :

  • base64 : random_id.rdm_id.id => MDc3NDA2OGE5YTNhMjc5MQ==
  • десятичные цифры : random_id.rdm_id.dec => 537061447926687633
  • шестнадцатеричные цифры : random_id.rdm_id.hex => 0774068a9a3a2791

Но если вы делаете это таким образом, random_id всегда будет одним и тем же!

Поэтому, чтобы быть уверенным, что значение изменится, когда что-то добавится, вы можете использовать параметр keepers.

С его помощью вы можете сказать: «Если параметры X и Y меняются, то и случайное значение должно измениться».

В данном примере случайная величина будет меняться каждый раз, когда будет меняться arn глобального кластера.

resource "random_id" "rdm_id" {
  byte_length = 8

  keepers = {
    first = aws_rds_global_cluster.example.arn
  }
}
Вход в полноэкранный режим Выход из полноэкранного режима

А если вы хотите, чтобы это значение менялось при каждом выполнении скрипта, используйте метку времени :

resource "random_id" "rdm_id" {
  byte_length = 8

  keepers = {
    first = timestamp()
  }
}
Войти в полноэкранный режим Выход из полноэкранного режима

Другие случайные возможности

Следуя той же схеме, Terraform позволяет вам генерировать случайные

  • целое число
resource "random_integer" "priority" {
  min = 1
  max = 50000
}
Войти в полноэкранный режим Выйти из полноэкранного режима
  • пароль
resource "random_password" "password" {
  length           = 16
  special          = true
  override_special = "_%@"
}
Войти в полноэкранный режим Выйти из полноэкранного режима
  • строка
resource "random_string" "random" {
  length           = 16
  special          = true
  override_special = "/@£$"
}
Войти в полноэкранный режим Выйти из полноэкранного режима
  • UUID
resource "random_uuid" "test" {
}
Войти в полноэкранный режим Выход из полноэкранного режима
  • Перемешанный подсписок
resource "random_shuffle" "az" {
  input        = ["us-west-1a", "us-west-1c", "us-west-1d", "us-west-1e"]
  result_count = 2
}
Войти в полноэкранный режим Выход из полноэкранного режима

Здесь вы получите подсписок входного списка, содержащий только 2 элемента.


Ссылки

  • Terraform doc random_id : https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/id
  • Terraform doc random_integer : https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/integer
  • Terraform doc random_password : https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/password
  • Terraform doc random_shuffle : https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/shuffle
  • Terraform doc random_string : https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/string
  • Terraform doc random_uuid : https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/uuid

Надеюсь, это поможет вам и вам понравилась эта серия! 🍺


Ссылка на серию

  • 1 — Начало : https://dev.to/adaendra/how-to-setup-a-hadr-database-in-aws-1-1ko7
  • 2 — Определения : https://dev.to/adaendra/how-to-setup-a-hadr-database-in-aws-2-definitions-93p
  • 3 — Простая база данных : https://dev.to/adaendra/how-to-setup-a-hadr-database-in-aws-3-simple-database-a9o
  • 4 — База данных HA : https://dev.to/adaendra/how-to-setup-a-hadr-database-in-aws-4-ha-database-4kek
  • 5 — База данных DR : https://dev.to/adaendra/how-to-setup-a-hadr-database-in-aws-5-dr-database-278b
  • 6 — Создание из моментального снимка : https://dev.to/adaendra/how-to-setup-a-hadr-database-in-aws-6-create-from-snapshot-2mbf
  • 7 — Динамическое определение бэкенда Terraform : https://dev.to/adaendra/how-to-setup-a-hadr-database-in-aws-7-dynamic-terraform-backend-definition-3aga
  • 8 — Несколько экземпляров в нескольких регионах : https://dev.to/adaendra/how-to-setup-a-hadr-database-in-aws-8-multiple-instances-in-multiple-regions-210d
  • 9 — Генерирование случайного значения : https://dev.to/adaendra/how-to-setup-a-hadr-database-in-aws-9-generate-a-random-value-5g8a

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *