Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Narzędzie Terraform umożliwia definiowanie, wyświetlanie wersji zapoznawczej i wdrażanie infrastruktury chmury. Za pomocą narzędzia Terraform tworzysz pliki konfiguracji przy użyciu składni HCL. Składnia listy HCL umożliwia określenie dostawcy chmury — takiego jak platforma Azure — oraz elementów tworzących infrastrukturę chmury. Po utworzeniu plików konfiguracji utworzysz plan wykonywania , który umożliwia wyświetlenie podglądu zmian infrastruktury przed ich wdrożeniem. Po zweryfikowaniu zmian należy zastosować plan wykonywania w celu wdrożenia infrastruktury.
Dostawca AzAPI Terraform zawiera wbudowaną przedstartową weryfikację, która sprawdza konfigurację zasobów Azure zgodnie ze schematem API ARM podczas terraform plan, zanim jakiekolwiek zasoby zostaną utworzone lub zmodyfikowane w środowisku Azure. Preflight wykrywa błędy konfiguracji na wczesnym etapie — takie jak nieprawidłowe prefiksy adresów, nieobsługiwane kombinacje właściwości lub naruszenia limitów przydziału — bez ponoszenia kosztów nieudanego wdrożenia.
Walidacja wstępna jest jedną z kluczowych cech wyróżniających AzAPI i działa natywnie z architekturą dostawcy Direct-to-ARM-API. Możesz również uruchomić przedtestowanie z rozszerzenia Microsoft Terraform dla Visual Studio Code bez bezpośredniego ustawiania flagi dostawcy.
Wymagania wstępne
- Subskrypcja platformy Azure: jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Skonfiguruj program Terraform: jeśli jeszcze tego nie zrobiono, skonfiguruj program Terraform przy użyciu jednej z następujących opcji:
Po zalogowaniu się do witryny Azure Portal przy użyciu konta Microsoft używana jest domyślna subskrypcja platformy Azure dla tego konta.
Narzędzie Terraform automatycznie uwierzytelnia się przy użyciu informacji z domyślnej subskrypcji platformy Azure.
Uruchom az account show, aby zweryfikować bieżące konto Microsoft i subskrypcję Azure.
az account show
Wszelkie zmiany wprowadzone za pośrednictwem narzędzia Terraform znajdują się w wyświetlanej subskrypcji platformy Azure. Jeśli chcesz, pomiń pozostałą część tego artykułu.
Włącz weryfikację wstępną
Ustaw enable_preflight = true w provider "azapi" bloku:
provider "azapi" {
enable_preflight = true
}
Wstępna inspekcja jest domyślnie wyłączona, aby zachować wsteczną kompatybilność. Włącz ją w środowiskach, w których chcesz przeprowadzić wczesną walidację, na przykład w potokach CI oraz przeglądach żądań ściągnięcia.
Przykład: wykrycie nieprawidłowego prefiksu adresu na etapie planowania
Poniższa konfiguracja tworzy sieć wirtualną z nieprawidłowym blokiem bezklasowego routingu międzydomenowego (CIDR). Po włączeniu preflightu błąd pojawia się podczas terraform plan, a nie podczas terraform apply.
terraform {
required_providers {
azapi = {
source = "Azure/azapi"
version = "~> 2.0"
}
azurerm = {
source = "hashicorp/azurerm"
version = "~> 4.0"
}
}
}
provider "azurerm" {
features {}
}
provider "azapi" {
enable_preflight = true
}
resource "azurerm_resource_group" "example" {
name = "rg-preflight-demo"
location = "eastus"
}
resource "azapi_resource" "vnet" {
type = "Microsoft.Network/virtualNetworks@2024-01-01"
parent_id = azurerm_resource_group.example.id
name = "vnet-example"
location = "eastus"
body = {
properties = {
addressSpace = {
addressPrefixes = [
"10.0.0.0/160" # Invalid prefix length — preflight catches this at plan time
]
}
}
}
}
Po uruchomieniu terraform plan z tą konfiguracją wstępna weryfikacja zwraca błąd podobny do:
Error: preflight validation failed for resource "azapi_resource.vnet":
The value '10.0.0.0/160' is not a valid CIDR block.
Poprawianie prefiksu adresu do prawidłowej wartości (na przykład 10.0.0.0/16) spowoduje wyczyszczenie błędu.
Co weryfikuje weryfikacja wstępna
Wstępne wysyłanie treści zasobu do punktu końcowego wstępnego interfejsu API usługi ARM, który sprawdza poprawność:
- Wartości właściwości względem schematu zasobów Azure Resource Manager (na przykład prawidłowe zakresy CIDR (bezklasowe trasowanie międzydomenowe), dozwolone nazwy jednostek SKU, wymagane pola).
- Limit przydziału na poziomie subskrypcji i ograniczenia pojemności dla obsługiwanych typów zasobów.
- Zgodność zasad dla przypisań Azure Policy uruchamianych w trybie wstępnym.
Wstępna weryfikacja nie sprawdza:
- Zależności między zasobami lub sekwencjonowanie.
- Zasoby, które nie obsługują punktu końcowego wstępnej weryfikacji ARM (dostawca po cichu pomija walidację dla tych typów zasobów).
- Błędy uwierzytelniania lub autoryzacji (Zarządzanie tożsamościami i dostępem (IAM)) — te błędy pojawiają się podczas
terraform apply.
Korzystanie z wstępnej weryfikacji w pipeline'ach ciągłej integracji
Dodanie etapu wstępnego do potoku ciągłej integracji zapewnia szybki i nieniszczący krok weryfikacji, który wychwytuje błędy konfiguracji przed złączeniem kodu. Włącz enable_preflight = true w bloku dostawcy konfiguracji programu Terraform, a następnie uruchom polecenie terraform plan:
provider "azapi" {
enable_preflight = true
}
Ponieważ sprawdzenie wstępne uruchamia się podczas terraform plan bez skutków ubocznych, jest bezpieczne uruchamianie go w przepływach pracy żądań ściągnięcia względem żywych subskrypcji Azure.
Wyłączanie szumu wyjściowego za pomocą polecenia ignore_no_op_changes
Jeśli plany operacyjne są uruchamiane wielokrotnie, narzędzie AzAPI może wykryć niewielkie różnice typu no-op między konfiguracją a stanem Azure Resource Manager (ARM), na przykład znormalizowane wartości domyślne zwracane przez interfejs API. Aby pominąć te różnice w czasie planowania i skupić się na rzeczywistych zmianach, ustaw ignore_no_op_changes = true w bloku dostawcy:
provider "azapi" {
enable_preflight = true
ignore_no_op_changes = true
}