Szybki start: wdrażanie usługa wyszukiwania usługi Azure AI przy użyciu narzędzia Terraform
W tym artykule pokazano, jak za pomocą narzędzia Terraform utworzyć usługa wyszukiwania sztucznej inteligencji platformy Azure przy użyciu narzędzia Terraform.
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.
W tym artykule omówiono sposób wykonywania następujących zadań:
- Tworzenie losowej nazwy zwierząt domowych dla nazwy grupy zasobów platformy Azure przy użyciu random_pet
- Tworzenie grupy zasobów platformy Azure przy użyciu azurerm_resource_group
- Tworzenie losowego ciągu przy użyciu random_string
- Tworzenie usługa wyszukiwania sztucznej inteligencji platformy Azure przy użyciu azurerm_search_service
Wymagania wstępne
Implementowanie kodu narzędzia Terraform
Uwaga
Zobacz więcej artykułów i przykładowego kodu pokazującego, jak zarządzać zasobami platformy Azure za pomocą narzędzia Terraform
Utwórz katalog, w którym chcesz przetestować i uruchomić przykładowy kod programu Terraform i utworzyć go jako bieżący katalog.
Utwórz plik o nazwie
main.tf
i wstaw następujący kod: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_search_service_name" { length = 25 upper = false numeric = false special = false } resource "azurerm_search_service" "search" { name = random_string.azurerm_search_service_name.result resource_group_name = azurerm_resource_group.rg.name location = azurerm_resource_group.rg.location sku = var.sku replica_count = var.replica_count partition_count = var.partition_count }
Utwórz plik o nazwie
outputs.tf
i wstaw następujący kod:output "resource_group_name" { value = azurerm_resource_group.rg.name } output "azurerm_search_service_name" { value = azurerm_search_service.search.name }
Utwórz plik o nazwie
providers.tf
i wstaw następujący kod:terraform { required_version = ">=1.0" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>3.0" } random = { source = "hashicorp/random" version = "~>3.0" } } } provider "azurerm" { features {} }
Utwórz plik o nazwie
variables.tf
i wstaw następujący kod:variable "resource_group_location" { type = string description = "Location for all resources." default = "eastus" } variable "resource_group_name_prefix" { type = string description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription." default = "rg" } variable "sku" { description = "The pricing tier of the search service you want to create (for example, basic or standard)." default = "standard" type = string validation { condition = contains(["free", "basic", "standard", "standard2", "standard3", "storage_optimized_l1", "storage_optimized_l2"], var.sku) error_message = "The sku must be one of the following values: free, basic, standard, standard2, standard3, storage_optimized_l1, storage_optimized_l2." } } variable "replica_count" { type = number description = "Replicas distribute search workloads across the service. You need at least two replicas to support high availability of query workloads (not applicable to the free tier)." default = 1 validation { condition = var.replica_count >= 1 && var.replica_count <= 12 error_message = "The replica_count must be between 1 and 12." } } variable "partition_count" { type = number description = "Partitions allow for scaling of document count as well as faster indexing by sharding your index over multiple search units." default = 1 validation { condition = contains([1, 2, 3, 4, 6, 12], var.partition_count) error_message = "The partition_count must be one of the following values: 1, 2, 3, 4, 6, 12." } }
Inicjowanie narzędzia Terraform
Uruchom narzędzie terraform init , aby zainicjować wdrożenie narzędzia Terraform. To polecenie pobiera dostawcę platformy Azure wymaganego do zarządzania zasobami platformy Azure.
terraform init -upgrade
Kluczowe punkty:
- Parametr
-upgrade
uaktualnia niezbędne wtyczki dostawcy do najnowszej wersji, która jest zgodna z ograniczeniami wersji konfiguracji.
Tworzenie planu wykonania programu Terraform
Uruchom plan terraform, aby utworzyć plan wykonania.
terraform plan -out main.tfplan
Kluczowe punkty:
- Polecenie
terraform plan
tworzy plan wykonania, ale nie wykonuje go. Zamiast tego określa, jakie akcje są niezbędne do utworzenia konfiguracji określonej w plikach konfiguracji. Ten wzorzec umożliwia sprawdzenie, czy plan wykonania jest zgodny z oczekiwaniami przed wprowadzeniem jakichkolwiek zmian w rzeczywistych zasobach. - Opcjonalny
-out
parametr umożliwia określenie pliku wyjściowego dla planu. Użycie parametru-out
gwarantuje, że sprawdzony plan jest dokładnie tym, co jest stosowane.
Stosowanie planu wykonywania narzędzia Terraform
Uruchom narzędzie terraform, aby zastosować plan wykonania do infrastruktury chmury.
terraform apply main.tfplan
Kluczowe punkty:
- Przykładowe
terraform apply
polecenie zakłada, że wcześniej uruchomionoterraform plan -out main.tfplan
polecenie . - Jeśli określono inną nazwę pliku parametru
-out
, użyj tej samej nazwy pliku w wywołaniu metodyterraform apply
. - Jeśli parametr nie został użyty, wywołaj metodę
-out
terraform apply
bez żadnych parametrów.
Weryfikowanie wyników
Pobierz nazwę zasobu platformy Azure, w której utworzono usługa wyszukiwania usługi Azure AI.
resource_group_name=$(terraform output -raw resource_group_name)
Pobierz nazwę usługa wyszukiwania usługi Azure AI.
azurerm_search_service_name=$(terraform output -raw azurerm_search_service_name)
Uruchom polecenie az search service show, aby wyświetlić usługa wyszukiwania usługi Azure AI utworzone w tym artykule.
az search service show --name $azurerm_search_service_name \ --resource-group $resource_group_name
Czyszczenie zasobów
Jeśli zasoby utworzone za pomocą narzędzia Terraform nie są już potrzebne, wykonaj następujące czynności:
Uruchom plan terraform i określ flagę
destroy
.terraform plan -destroy -out main.destroy.tfplan
Kluczowe punkty:
- Polecenie
terraform plan
tworzy plan wykonania, ale nie wykonuje go. Zamiast tego określa, jakie akcje są niezbędne do utworzenia konfiguracji określonej w plikach konfiguracji. Ten wzorzec umożliwia sprawdzenie, czy plan wykonania jest zgodny z oczekiwaniami przed wprowadzeniem jakichkolwiek zmian w rzeczywistych zasobach. - Opcjonalny
-out
parametr umożliwia określenie pliku wyjściowego dla planu. Użycie parametru-out
gwarantuje, że sprawdzony plan jest dokładnie tym, co jest stosowane.
- Polecenie
Uruchom narzędzie terraform zastosuj, aby zastosować plan wykonania.
terraform apply main.destroy.tfplan
Rozwiązywanie problemów z programem Terraform na platformie Azure
Rozwiązywanie typowych problemów podczas korzystania z narzędzia Terraform na platformie Azure