Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье используется Terraform для создания пространства имен Центров уведомлений Azure и концентратора уведомлений. Имя каждого ресурса создается случайным образом, чтобы избежать конфликтов именования.
Центры уведомлений Azure обеспечивают простой в использовании и масштабируемый механизм отправки push-уведомлений, который позволяет отправлять уведомления на любую платформу (iOS, Android, Windows, Kindle и т. д.) c любой серверной части (облачной или локальной). Дополнительные сведения о службе см. в статье "Что такое Центры уведомлений Azure".
Terraform включает определение, предварительную версию и развертывание облачной инфраструктуры. С помощью Terraform вы создаете файлы конфигурации с помощью синтаксиса HCL. Синтаксис HCL позволяет указать поставщика облачных служб, таких как Azure, и элементы, составляющие облачную инфраструктуру. После создания файлов конфигурации вы создадите план выполнения , который позволяет предварительно просмотреть изменения инфраструктуры перед развертыванием. После того как вы проверите изменения, примените план выполнения для развертывания инфраструктуры.
В этой статье вы узнаете, как:
- Создайте случайное значение для имени группы ресурсов Azure с помощью random_pet.
- Создайте группу ресурсов Azure с помощью azurerm_resource_group.
- Создайте случайное значение для имени пространства имен Центра уведомлений Azure с помощью random_string.
- Создайте пространство имен Центра уведомлений Azure с помощью azurerm_notification_hub_namespace.
- Создайте случайное значение для имени Центра уведомлений Azure с помощью random_string.
- Создайте Центр уведомлений Azure с помощью azurerm_notification_hub.
Предпосылки
Реализуйте код Terraform
Замечание
Пример кода для этой статьи находится в репозитории Azure Terraform GitHub. Вы можете просмотреть файл журнала, содержащий результаты теста из текущих и предыдущих версий Terraform.
Дополнительные статьи и пример кода, демонстрирующие использование Terraform для управления ресурсами Azure
Создайте каталог для тестирования и выполнения примера кода Terraform и сделайте его текущим каталогом.
Создайте файл с именем
providers.tfи вставьте следующий код:terraform { required_version = ">=1.0" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>3.0" } random = { source = "hashicorp/random" version = "~>3.0" } } } provider "azurerm" { features {} }Создайте файл с именем
main.tfи вставьте следующий код:resource "random_pet" "rg_name" { prefix = var.resource_group_name_prefix } resource "azurerm_resource_group" "rg" { name = random_pet.rg_name.id location = var.resource_group_location } resource "random_string" "azurerm_notification_hub_namespace_name" { length = 25 upper = false numeric = false special = false } resource "azurerm_notification_hub_namespace" "namespace" { name = "hubns-${random_string.azurerm_notification_hub_namespace_name.result}" resource_group_name = azurerm_resource_group.rg.name location = azurerm_resource_group.rg.location namespace_type = "NotificationHub" sku_name = "Free" } resource "random_string" "azurerm_notification_hub_name" { length = 25 upper = false numeric = false special = false } resource "azurerm_notification_hub" "hub" { name = "hub-${random_string.azurerm_notification_hub_name.result}" resource_group_name = azurerm_resource_group.rg.name namespace_name = azurerm_notification_hub_namespace.namespace.name location = azurerm_resource_group.rg.location }Создайте файл с именем
variables.tfи вставьте следующий код:variable "resource_group_location" { type = string default = "eastus" description = "Location for all resources." } variable "resource_group_name_prefix" { type = string default = "rg" description = "Prefix of the resource group name that's combined with a random value so name is unique in your Azure subscription." }Создайте файл с именем
outputs.tfи вставьте следующий код:output "resource_group_name" { value = azurerm_resource_group.rg.name } output "notification_hub_namespace_name" { value = azurerm_notification_hub_namespace.namespace.name } output "notification_hub__name" { value = azurerm_notification_hub.hub.name }
Инициализируйте Terraform
Запустите terraform init , чтобы инициализировать развертывание Terraform. Эта команда загружает поставщика Azure, необходимого для управления вашими ресурсами в Azure.
terraform init -upgrade
Ключевые моменты:
- Параметр
-upgradeобновляет необходимые плагины провайдера до самой последней версии, которая соответствует ограничениям версии конфигурации.
Создайте план запуска Terraform
Выполните terraform plan, чтобы создать план выполнения.
terraform plan -out main.tfplan
Ключевые моменты:
- Команда
terraform planсоздает план выполнения, но не выполняет его. Вместо этого он определяет, какие действия необходимы для создания конфигурации, указанной в ваших конфигурационных файлах. Данный шаблон позволяет вам убедиться, что план выполнения соответствует вашим ожиданиям, прежде чем вносить какие-либо изменения в реальные ресурсы. - Необязательный параметр
-outпозволяет указать выходной файл для плана. Использование параметра-outобеспечивает, что план, который вы просмотрели, будет применен точно в таком виде.
Применение плана выполнения Terraform
Запустите terraform apply чтобы применить план выполнения к облачной инфраструктуре.
terraform apply main.tfplan
Ключевые моменты:
- Пример команды
terraform applyпредполагает, что вы ранее выполнили командуterraform plan -out main.tfplan. - Если вы указали другое имя файла для параметра
-out, используйте то же имя файла при вызовеterraform apply. - Если вы не использовали параметр
-out, вызовитеterraform applyбез параметров.
Проверка результатов
Получите имя группы ресурсов Azure.
resource_group_name=$(terraform output -raw resource_group_name)Получите имя пространства имен.
notification_hub_namespace_name=$(terraform output -raw notification_hub_namespace_name)Запустите az notification-hub list , чтобы отобразить центры для указанного пространства имен.
az notification-hub list \ --resource-group $resource_group_name \ --namespace-name $notification_hub_namespace_name
Очистите ресурсы
Если вам больше не нужны ресурсы, созданные через Terraform, выполните следующие действия:
Запустите terraform plan и укажите
destroyопцию.terraform plan -destroy -out main.destroy.tfplanКлючевые моменты:
- Команда
terraform planсоздает план выполнения, но не выполняет его. Вместо этого он определяет, какие действия необходимы для создания конфигурации, указанной в ваших конфигурационных файлах. Данный шаблон позволяет вам убедиться, что план выполнения соответствует вашим ожиданиям, прежде чем вносить какие-либо изменения в реальные ресурсы. - Необязательный параметр
-outпозволяет указать выходной файл для плана. Использование параметра-outобеспечивает, что план, который вы просмотрели, будет применен точно в таком виде.
- Команда
Чтобы применить план выполнения, запустите terraform apply.
terraform apply main.destroy.tfplan
Устранение неполадок с Terraform в Azure
Устранение распространенных проблем при использовании Terraform в Azure