Omówienie dostawcy narzędzia Terraform AzAPI
Dostawca AzAPI to cienka warstwa na szczycie interfejsów API REST usługi Azure ARM. Dostawca AzAPI umożliwia zarządzanie dowolnym typem zasobów platformy Azure przy użyciu dowolnej wersji interfejsu API. Ten dostawca uzupełnia dostawcę modułu AzureRM, włączając zarządzanie nowymi zasobami i właściwościami platformy Azure (w tym prywatną wersję zapoznawcza).
Zasoby
Aby umożliwić zarządzanie wszystkimi zasobami i funkcjami platformy Azure bez konieczności aktualizowania, dostawca AzAPI obejmuje następujące zasoby ogólne:
Nazwa zasobu | opis |
---|---|
azapi_resource | Służy do pełnego zarządzania dowolnym zasobem platformy Azure (płaszczyzną sterowania) (API) za pomocą pełnej operacji CRUD. Przykładowe przypadki użycia: Nowa usługa w wersji zapoznawczej Nowa funkcja dodana do istniejącej usługi Istniejąca funkcja/usługa nie jest obecnie objęta |
azapi_update_resource | Służy do zarządzania zasobami lub częściami zasobów, które nie mają pełnej operacji CRUD Przykładowe przypadki użycia: Aktualizowanie nowych właściwości istniejącej usługi Zaktualizuj wstępnie utworzony zasób podrzędny — taki jak rekord SOA DNS. |
Przykłady konfiguracji zasobów
Poniższy fragment kodu konfiguruje zasób, który nie istnieje obecnie u dostawcy modułu 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"
}
})
}
Poniższy fragment kodu konfiguruje właściwość podglądu dla istniejącego zasobu z modułu 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
}
})
}
Uwierzytelnianie przy użyciu dostawcy AzAPI
Dostawca AzAPI włącza te same metody uwierzytelniania co dostawca modułu AzureRM. Aby uzyskać więcej informacji na temat opcji uwierzytelniania, zobacz Uwierzytelnianie narzędzia Terraform na platformie Azure.
Korzyści wynikające z używania dostawcy AzAPI
Dostawca AzAPI oferuje następujące korzyści:
- Obsługuje wszystkie usługi platformy Azure:
- Prywatne usługi i funkcje w wersji zapoznawczej
- Publiczne usługi i funkcje w wersji zapoznawczej
- Wszystkie wersje interfejsu API
- Pełna wierność pliku stanu narzędzia Terraform
- Właściwości i wartości są zapisywane w stanie
- Brak zależności od struktury Swagger
- Typowe i spójne uwierzytelnianie platformy Azure
Doświadczenie i cykl życia dostawcy AzAPI
W tej sekcji opisano niektóre narzędzia ułatwiające korzystanie z dostawcy AzAPI.
Rozszerzenie programu VS Code i serwer językowy
Rozszerzenie AzAPI VS Code zapewnia bogate środowisko tworzenia z następującymi korzyściami:
- Intellisense
- Automatyczne uzupełnianie kodu
- Wskazówki
- Walidacja składni
- Szybkie informacje
Narzędzie do migracji azAPI2AzureRM
Dostawca modułu AzureRM zapewnia najbardziej zintegrowane środowisko narzędzia Terraform do zarządzania zasobami platformy Azure. W związku z tym zalecane użycie dostawców AzAPI i AzureRM jest następujące:
- Gdy usługa lub funkcja jest w wersji zapoznawczej, użyj dostawcy AzAPI.
- gdy usługa zostanie oficjalnie wydana, użyj dostawcy modułu AzureRM.
Narzędzie AzAPI2AzureRM zostało zaprojektowane w celu ułatwienia migracji z dostawcy AzAPI do dostawcy modułu AzureRM.
AzAPI2AzureRM to narzędzie typu open source, które automatyzuje proces konwertowania zasobów AzAPI na zasoby modułu AzureRM.
Moduł AzAPI2AzureRM ma dwa tryby: planowanie i migracja:
- Plan wyświetla zasoby AzAPI, które można migrować.
- Migrowanie zasobów AzAPI do zasobów modułu AzureRM zarówno w plikach HCL, jak i w stanie.
Moduł AzAPI2AzureRM zapewnia po migracji, że konfiguracja i stan narzędzia Terraform są zgodne z rzeczywistym stanem. Możesz sprawdzić, czy stan został zaktualizowany, uruchamiając polecenie terraform plan
po zakończeniu migracji, aby zobaczyć, że nic się nie zmieniło.
Korzystanie z dostawcy AzAPI
Instalowanie rozszerzenia programu VS Code
Dodaj dostawcę AzAPI do konfiguracji narzędzia 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 = "..." }
Zadeklaruj co najmniej jeden zasób AzAPI, jak pokazano w poniższym przykładowym kodzie:
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" } } }) }
Następne kroki
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla