Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ПРИМЕНЯЕТСЯ КО ВСЕМ уровням управления API
В этой статье показано, как использовать Terraform для создания экземпляра службы управления API в Azure. Вы также можете использовать Terraform для распространенных задач управления, таких как импорт API в экземпляре управления API.
Azure Управление API помогает организациям публиковать API для внешних, партнерских и внутренних разработчиков, чтобы разблокировать потенциал своих данных и служб. Служба управления API предоставляет базовые возможности для успешного выполнения программы API за счет привлечения разработчиков, бизнес-аналитики, анализа, безопасности и защищенности. С помощью Управление API создайте современные шлюзы API и управляйте ими для существующих внутренних служб, размещенных в любом месте.
Terraform позволяет определять, просматривать и развертывать облачную инфраструктуру. Используя Terraform, вы создаёте файлы конфигурации, применяя синтаксис HCL. Синтаксис HCL позволяет указать поставщика облачных служб, таких как Azure, и элементы, составляющие облачную инфраструктуру. После создания файлов конфигурации вы создаете план выполнения, который позволяет предварительно просмотреть изменения в инфраструктуре до их внедрения. После того как вы проверите изменения, примените план выполнения для развертывания инфраструктуры.
В этой статье вы узнаете, как:
- Создание случайного имени домашних животных для имени группы ресурсов Azure с помощью random_pet
- Создайте группу ресурсов Azure, используя azurerm_resource_group
- Создание случайной строки для имени службы управления API Azure с помощью random_string
- Создание службы управления API Azure с помощью azurerm_api_management
Предпосылки
Если у вас нет подписки на Azure, создайте бесплатную учетную запись перед началом.
При использовании Azure CLI выполните следующее:
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см. в статье "Начало работы с Azure Cloud Shell".
Если вы предпочитаете запускать справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, подумайте о запуске Azure CLI в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, войдите в Azure CLI с помощью команды az login . Чтобы завершить процесс аутентификации, следуйте шагам, отображаемым в вашем терминале. Сведения о других параметрах входа см. в статье "Проверка подлинности в Azure с помощью Azure CLI".
Когда вас попросят, установите расширение Azure CLI при первом использовании. Дополнительные сведения о расширениях см. в статье Использование расширений и управление ими с помощью Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
Для Azure PowerShell:
- Если вы решили использовать Azure PowerShell локально:
- Установите последнюю версию модуля Az PowerShell.
- Подключитесь к учетной записи Azure с помощью командлета Connect-AzAccount.
- Если вы решили использовать Azure Cloud Shell:
- Дополнительные сведения см. в статье Общие сведения об Azure Cloud Shell.
- Если вы решили использовать Azure PowerShell локально:
Реализуйте код Terraform
Замечание
Образец кода для этой статьи находится в репозитории Azure Terraform GitHub. Вы можете просмотреть файл журнала, содержащий результаты теста из текущих и предыдущих версий Terraform.
См. другие статьи и примеры кода, в которых показано, как использовать Terraform для управления ресурсами Azure.
Создайте каталог для тестирования и выполнения примера кода Terraform и сделайте его текущим каталогом.
Создайте файл с именем
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_api_management_name" { length = 13 lower = true numeric = false special = false upper = false } resource "azurerm_api_management" "api" { name = "apiservice${random_string.azurerm_api_management_name.result}" location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name publisher_email = var.publisher_email publisher_name = var.publisher_name sku_name = "${var.sku_name}_${var.sku_count}" }Создайте файл с именем
outputs.tfи вставьте следующий код:output "resource_group_name" { value = azurerm_resource_group.rg.name } output "api_management_service_name" { value = azurerm_api_management.api.name }Создайте файл с именем
providers.tfи вставьте следующий код:terraform { required_version = ">=1.0" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>4.0" } random = { source = "hashicorp/random" version = "~>3.0" } } } provider "azurerm" { features {} }Создайте файл с именем
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 ID so name is unique in your Azure subscription." } variable "publisher_email" { default = "[email protected]" description = "The email address of the owner of the service" type = string validation { condition = length(var.publisher_email) > 0 error_message = "The publisher_email must contain at least one character." } } variable "publisher_name" { default = "publisher" description = "The name of the owner of the service" type = string validation { condition = length(var.publisher_name) > 0 error_message = "The publisher_name must contain at least one character." } } variable "sku_name" { description = "The pricing tier of this API Management service" default = "BasicV2" type = string validation { condition = contains(["Basic", "BasicV2", "Consumption", "Developer", "Premium", "PremiumV2", "Standard", "StandardV2"], var.sku_name) error_message = "The sku must be one of the following: Basic, BasicV2, Consumption, Developer, Premium, PremiumV2, Standard, StandardV2." } } variable "sku_count" { description = "The instance size of this API Management service." default = 1 type = number validation { condition = contains([1, 2], var.sku_count) error_message = "The sku_count must be one of the following: 1, 2." } }
Инициализируйте 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без параметров.
Замечание
Для создания и активации службы управления API может потребоваться от 30 до 40 минут.
Проверка результатов
Получите имя группы ресурсов Azure.
resource_group_name=$(terraform output -raw resource_group_name)Узнайте имя службы.
api_management_service_name=$(terraform output -raw api_management_service_name)Запустите az apim show , чтобы отобразить сведения о новой службе.
az apim show --resource-group $resource_group_name \ --name $api_management_service_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