Читаем Terraform: инфраструктура на уровне кода полностью

  description = "The port the database is listening on"

}

Выполните terraformapply еще раз, и в терминале должны появиться ваши выходные переменные:

$ terraform apply

(...)

Apply complete! Resources: 0 added, 0 changed, 0 destroyed.

Outputs:

address = tf-2016111123.cowu6mts6srx.us-east-2.rds.amazonaws.com

port = 3306

Теперь они хранятся и в состоянии Terraform для базы данных, которое находится в вашем бакете S3 в файле stage/data-stores/mysql/terraform.tfstate. Чтобы код вашего кластера веб-серверов прочитал содержимое этого файла состояния, добавьте в файл stage/services/webserver-cluster/main.tf источник данных terraform_remote_state:

data "terraform_remote_state" "db" {

  backend = "s3"

  config = {

    bucket = "(YOUR_BUCKET_NAME)"

    key    = "stage/data-stores/mysql/terraform.tfstate"

    region = "us-east-2"

  }

}

Благодаря этому источнику данных код кластера веб-серверов считывает файл состояния из тех же бакета S3 и папки, где свое состояние хранит база данных (рис. 3.11).

Рис. 3.11. База данных записывает свое состояние в бакет S3 (вверху), а кластер веб-серверов считывает его из того же бакета (внизу)

Важно понимать, что, как и все источники данных в Terraform, terraform_remote_state возвращает только доступную для чтения информацию. У вас нет никакой возможности поменять это состояние в коде кластера веб-серверов, поэтому то, что вы извлекаете состояние базы данных, не подвергает ее никакому риску.

Все выходные переменные БД хранятся в файле состояния, и вы можете считывать их из источника данных terraform_remote_state, используя ссылку на атрибут следующего вида:

data.terraform_remote_state..outputs.

Например, вот как можно обновить пользовательские данные веб-серверов кластера, чтобы они извлекали из источника terraform_remote_state адрес и порт базы данных и возвращали их в виде HTTP-ответа:

Перейти на страницу:

Все книги серии Бестселлеры O'Reilly

Искусство управления IT-проектами
Искусство управления IT-проектами

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

Скотт Беркун

Деловая литература
iOS. Приемы программирования
iOS. Приемы программирования

Книга, которую вы держите в руках, представляет собой новый, полностью переписанный сборник приемов программирования по работе с iOS. Он поможет вам справиться с наболевшими проблемами, с которыми приходится сталкиваться при разработке приложений для iPhone, iPad и iPod Touch. Вы быстро освоите всю информацию, необходимую для начала работы с iOS 7 SDK, в частности познакомитесь с решениями для добавления в ваши приложения реалистичной физики или движений — в этом вам помогут API UIKit Dynamics.Вы изучите новые многочисленные способы хранения и защиты данных, отправки и получения уведомлений, улучшения и анимации графики, управления файлами и каталогами, а также рассмотрите многие другие темы. При описании каждого приема программирования приводятся образцы кода, которые вы можете смело использовать.

Вандад Нахавандипур

Программирование, программы, базы данных / Программирование / Книги по IT

Похожие книги