Поиск по сайту:

Как создать таблицу DynamoDB на AWS с помощью Terraform


На этой странице

  1. Предварительные условия
  2. Что будем делать?
  3. Запись файлов конфигурации Terraform для таблицы DynamoDB.
  4. Создайте таблицу DynamoDB с помощью файлов конфигурации Terraform.
  5. Удалите созданную таблицу DynamoDB с помощью Terraform.
  6. Заключение

В этой статье мы рассмотрим шаги по созданию таблицы DynamoDB с помощью Terraform. Мы создадим таблицу DynamoDB с моделью выставления счетов «PAY_PER_REQUEST». Прежде чем мы приступим к этой статье, предполагается, что вы знакомы с сервисом AWS DynamoDB и знакомы с его основами, а также с Terraform.

Нажмите здесь, чтобы узнать больше об аргументах и свойствах DynamoDB, доступных в Terraform.

Предпосылки

  1. Основное понимание Terraform.
  2. Terraform установлен в вашей системе.
  3. Аккаунт AWS (создайте, если у вас его нет).
  4. access_key и secret_key пользователя AWS IAM с достаточными разрешениями для создания таблицы DynamoDB. (Нажмите здесь, чтобы узнать, как создать пользователя IAM с access_key и secret_key в AWS, )

Что мы будем делать?

  1. Запись файлов конфигурации Terraform для таблицы DynamoDB.
  2. Создайте таблицу DynamoDB, используя файлы конфигурации Terraform.
  3. Удалите созданную таблицу DynamoDB с помощью Terraform.

Запись файлов конфигурации Terraform для таблицы DynamoDB.

Создайте специальный каталог для записи и хранения файлов Terraform для создания таблицы DynamoDB.

Теперь создайте новый файл с именем \main.tf\ и сохраните в нем следующий код. Тот же код также доступен в моем репозитории Github. Вы даже можете скопировать код оттуда.

Следующий код создаст ресурс в \region=eu-west-3\. Измените регион по вашему выбору.

Github Link: https://github.com/shivalkarrahul/DevOps/blob/master/aws/terraform/create-dynamodb-table/main.tf
File: main.tf

provider "aws" { access_key = "${var.access_key}" secret_key = "${var.secret_key}" region = "eu-west-3" } resource "aws_dynamodb_table" "my_first_table" { name = "${var.table_name}" billing_mode = "${var.table_billing_mode}" hash_key = "employee-id" attribute { name = "employee-id" type = "S" } tags = { environment = "${var.environment}" } }

Здесь,

  • name : (обязательно) имя создаваемой таблицы.
  • billing_mode: (необязательно) определяет способ оплаты за чтение и запись.
  • hash_key: (Обязательный, принудительно создает новый ресурс) Атрибут, используемый в качестве хеш-ключа (раздела) для таблицы.
  • attribute: (обязательно) список определений вложенных атрибутов. Требуется только для атрибутов hash_key и range_key для таблицы.
  • теги: (необязательно)  теги для заполнения в таблице.

Следующим шагом является загрузка вашего доступа к AWS и секретных ключей в файл с именем \terraform.tfvars\. У вас уже должен быть пользователь AWS IAM с секретным ключом и ключом доступа с достаточными разрешениями в DynamoDB. Получите эти ключи и сохраните их в файле.

Github Link: https://github.com/shivalkarrahul/DevOps/blob/master/aws/terraform/create-dynamodb-table/terraform.tfvars
File: terraform.tfvars
access_key = "<your-aws-access-here>"
secret_key = "<your-aws-secret-here>"

Последний шаг должен создать \variables.tf\ и присвоить значения переменным в нем. Вы можете изменить значения table_name, table_billing_mode и переменной среды. Нажмите здесь, чтобы обратиться к документации Terraform и проверить наличие доступных допустимых аргументов/свойств.

Github Link: 
File: variables.tf
variable "access_key" {
        description = "Access key of AWS IAM user"
}
variable "secret_key" {
        description = "Secret key of AWS IAM user"
}

variable "table_name" {
  description = "Dynamodb table name (space is not allowed)"
  default = "my-first-test-table"
}

variable "table_billing_mode" {
  description = "Controls how you are charged for read and write throughput and how you manage capacity."
  default = "PAY_PER_REQUEST"
}


variable "environment" {
  description = "Name of environment"
  default = "test"
}

Здесь,

  • имя_таблицы: заданное значение=моя-первая-тестовая-таблица. Вы можете изменить это.
  • table_billing_mode: определенное значение=PAY_PER_REQUEST. Вы можете указать PROVISIONED или PAY_PER_REQUEST.
  • среда: определенное значение тега=test. Вы можете присвоить любое значение среде ключа тега.

Создайте таблицу DynamoDB, используя файлы конфигурации Terraform.

Когда у вас есть main.tf, terraform.tfvars и variables.tf, вы готовы создать свою таблицу DynamoDB с помощью Terraform.

Ниже приведена первая команда для инициализации рабочего каталога, содержащего файлы конфигурации Terraform.

terraform init

Следующая команда предназначена для создания плана выполнения. Здесь вы можете узнать, какие все изменения произойдут.

terraform plan

Теперь вы готовы применить изменения, необходимые для достижения желаемого состояния конфигурации, с помощью следующей команды. Это создаст таблицу DynamoDB в вашей учетной записи AWS в указанном регионе.

terraform apply

Теперь вы можете перейти в консоль AWS и проверить, создана ли таблица.

Удалите созданную таблицу DynamoDB с помощью Terraform.

Когда вам больше не нужна таблица и что ее удалять, нет необходимости заходить в консоль AWS и удалять ее оттуда. Вместо этого вы можете очень легко удалить его с помощью следующей команды. Следующая команда удалит таблицу после того, как вы подтвердите удаление.

terraform destroy

Заключение

В этой статье мы рассмотрели шаги по созданию таблицы DynamoDB с моделью выставления счетов \PAY_PER_REQUEST\ в регионе \region = eu-west-3\ с использованием доступа AWS и секретных ключей. Мы также удалили таблицу с помощью команды уничтожения. Теперь вы можете расширить функциональность, используя различные доступные свойства и попробовать разные варианты использования.