Обзор поставщика Terraform AzAPI
Поставщик AzAPI — это тонкий слой поверх REST API Azure ARM. Поставщик AzAPI позволяет управлять любым типом ресурсов Azure с помощью любой версии API. Этот поставщик дополняет поставщика AzureRM, позволяя управлять новыми ресурсами и свойствами Azure (включая частную предварительную версию).
Ресурсы
Чтобы разрешить управлять всеми ресурсами и функциями Azure без необходимости обновления, поставщик AzAPI включает следующие универсальные ресурсы:
Имя ресурса | Description |
---|---|
azapi_resource | Используется для полного управления любым ресурсом Azure (плоскости управления) (API) с полным cruD. Примеры вариантов использования: Новая предварительная версия службы Новая функция, добавленная в существующую службу Существующие функции или службы, которые в настоящее время не рассматриваются |
azapi_update_resource | Используется для управления ресурсами или частями ресурсов, которые не имеют полного CRUD Примеры вариантов использования: Обновление новых свойств существующей службы Обновите предварительно созданный дочерний ресурс, например запись SOA DNS. |
Примеры конфигурации ресурсов
Следующий фрагмент кода настраивает ресурс, который в настоящее время не существует в поставщике AzureRM:
resource "azapi_resource" "publicip" {
type = "Microsoft.Network/Customipprefixes@2021-03-01"
name = "exfullrange"
parent_id = azurerm_resource_group.example.id
location = "westus2"
body = jsonencode({
properties = {
cidr = "10.0.0.0/24"
signedMessage = "Sample Message for WAN"
}
})
}
Следующий фрагмент кода настраивает свойство предварительной версии для существующего ресурса из AzureRM:
resource "azapi_update_resource" "test" {
type = "Microsoft.ContainerRegistry/registries@2020-11-01-preview"
resource_id = azurerm_container_registry.acr.id
body = jsonencode({
properties = {
anonymousPullEnabled = var.bool_anonymous_pull
}
})
}
Проверка подлинности с помощью поставщика AzAPI
Поставщик AzAPI включает те же методы проверки подлинности, что и поставщик AzureRM. Дополнительные сведения о параметрах проверки подлинности см. в статье "Аутентификация Terraform" в Azure.
Преимущества использования поставщика AzAPI
Поставщик AzAPI имеет следующие преимущества:
- Поддерживает все службы Azure:
- Службы и функции частной предварительной версии
- Общедоступные службы и функции предварительной версии
- Все версии API
- Полная точность файла состояния Terraform
- Свойства и значения сохраняются в состоянии
- Нет зависимости от Swagger
- Общая и согласованная проверка подлинности Azure
Опыт и жизненный цикл поставщика AzAPI
В этом разделе описаны некоторые средства, помогающие использовать поставщик AzAPI.
Расширение VS Code и сервер языка
Расширение AZAPI VS Code обеспечивает широкий опыт разработки со следующими преимуществами:
- IntelliSense
- Автоматическое завершение кода
- Подсказки
- Проверка синтаксиса
- Вывод кратких сведений
Средство миграции AzAPI2AzureRM
Поставщик AzureRM предоставляет наиболее интегрированный интерфейс Terraform для управления ресурсами Azure. Поэтому рекомендуется использовать поставщики AzAPI и AzureRM следующим образом:
- Хотя служба или функция находится в предварительной версии, используйте поставщик AzAPI.
- После официального выпуска службы используйте поставщик AzureRM.
Средство AzAPI2AzureRM предназначено для перехода от поставщика AzAPI к поставщику AzureRM.
AzAPI2AzureRM — это средство с открытым кодом, которое автоматизирует процесс преобразования ресурсов AzAPI в ресурсы AzureRM.
AzAPI2AzureRM имеет два режима: планирование и миграция:
- План отображает ресурсы AzAPI, которые можно перенести.
- Миграция переносит ресурсы AzAPI в ресурсы AzureRM как в файлах HCL, так и в состоянии.
AzAPI2AzureRM гарантирует, что после миграции конфигурация Terraform и состояние соответствуют фактическому состоянию. Состояние можно обновить, выполнив после terraform plan
завершения миграции, чтобы увидеть, что ничего не изменилось.
Использование поставщика AzAPI
Установка расширения VS Code
Добавьте поставщика AzAPI в конфигурацию Terraform.
terraform { required_providers { azapi = { source = "Azure/azapi" } } } provider "azapi" { # More information on the authentication methods supported by # the AzureRM Provider can be found here: # https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs # subscription_id = "..." # client_id = "..." # client_secret = "..." # tenant_id = "..." }
Объявите один или несколько ресурсов AzAPI, как показано в следующем примере кода:
resource "azapi_resource" "example" { name = "example" parent_id = data.azurerm_machine_learning_workspace.existing.id type = "Microsoft.MachineLearningServices/workspaces/computes@2021-07-01" location = "eastus" body = jsonencode({ properties = { computeType = "ComputeInstance" disableLocalAuth = true properties = { vmSize = "STANDARD_NC6" } } }) }
Следующие шаги
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по