Snabbstart: Distribuera Azure AI-usluga pretrage med Terraform
Den här artikeln visar hur du använder Terraform för att skapa en Azure AI-usluga pretrage med Terraform.
Terraform möjliggör definition, förhandsversion och distribution av molninfrastruktur. Med Terraform skapar du konfigurationsfiler med hjälp av HCL-syntax. Med HCL-syntaxen kan du ange molnleverantören – till exempel Azure – och de element som utgör din molninfrastruktur. När du har skapat konfigurationsfilerna skapar du en körningsplan som gör att du kan förhandsgranska ändringarna i infrastrukturen innan de distribueras. När du har verifierat ändringarna tillämpar du körningsplanen för att distribuera infrastrukturen.
I den här artikeln kan du se hur du:
- Skapa ett slumpmässigt husdjursnamn för Azure-resursgruppens namn med hjälp av random_pet
- Skapa en Azure-resursgrupp med hjälp av azurerm_resource_group
- Skapa en slumpmässig sträng med hjälp av random_string
- Skapa en Azure AI-usluga pretrage med hjälp av azurerm_search_service
Förutsättningar
Implementera Terraform-koden
Kommentar
Se fler artiklar och exempelkod som visar hur du använder Terraform för att hantera Azure-resurser
Skapa en katalog där du kan testa och köra Terraform-exempelkoden och göra den till den aktuella katalogen.
Skapa en fil med namnet
main.tf
och infoga följande 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 }
Skapa en fil med namnet
outputs.tf
och infoga följande kod:output "resource_group_name" { value = azurerm_resource_group.rg.name } output "azurerm_search_service_name" { value = azurerm_search_service.search.name }
Skapa en fil med namnet
providers.tf
och infoga följande 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 {} }
Skapa en fil med namnet
variables.tf
och infoga följande 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." } }
Initiera Terraform
Kör terraform init för att initiera Terraform-distributionen. Det här kommandot laddar ned den Azure-provider som krävs för att hantera dina Azure-resurser.
terraform init -upgrade
Viktiga punkter:
- Parametern
-upgrade
uppgraderar nödvändiga provider-plugin-program till den senaste versionen som uppfyller konfigurationens versionsbegränsningar.
Skapa en Terraform-körningsplan
Kör terraform-planen för att skapa en körningsplan.
terraform plan -out main.tfplan
Viktiga punkter:
- Kommandot
terraform plan
skapar en körningsplan, men kör den inte. I stället avgör den vilka åtgärder som krävs för att skapa den konfiguration som anges i konfigurationsfilerna. Med det här mönstret kan du kontrollera om körningsplanen matchar dina förväntningar innan du gör några ändringar i faktiska resurser. - Med den valfria
-out
parametern kan du ange en utdatafil för planen. Med hjälp av parametern-out
ser du till att planen du granskade är exakt vad som tillämpas.
Tillämpa en Terraform-körningsplan
Kör terraform gäller för att tillämpa körningsplanen på din molninfrastruktur.
terraform apply main.tfplan
Viktiga punkter:
terraform apply
Exempelkommandot förutsätter att du tidigare kördeterraform plan -out main.tfplan
.- Om du har angett ett annat filnamn för parametern
-out
använder du samma filnamn i anropet tillterraform apply
. - Om du inte använde parametern
-out
anroparterraform apply
du utan några parametrar.
Verifiera resultatet
Hämta Azure-resursnamnet där Azure AI-usluga pretrage skapades.
resource_group_name=$(terraform output -raw resource_group_name)
Hämta namnet på Azure AI-usluga pretrage.
azurerm_search_service_name=$(terraform output -raw azurerm_search_service_name)
Kör az search service show för att visa Azure AI-usluga pretrage du skapade i den här artikeln.
az search service show --name $azurerm_search_service_name \ --resource-group $resource_group_name
Rensa resurser
Gör följande när du inte längre behöver de resurser som skapats via Terraform:
Kör terraform-plan och ange
destroy
flaggan.terraform plan -destroy -out main.destroy.tfplan
Viktiga punkter:
- Kommandot
terraform plan
skapar en körningsplan, men kör den inte. I stället avgör den vilka åtgärder som krävs för att skapa den konfiguration som anges i konfigurationsfilerna. Med det här mönstret kan du kontrollera om körningsplanen matchar dina förväntningar innan du gör några ändringar i faktiska resurser. - Med den valfria
-out
parametern kan du ange en utdatafil för planen. Med hjälp av parametern-out
ser du till att planen du granskade är exakt vad som tillämpas.
- Kommandot
Kör terraform tillämpa för att tillämpa körningsplanen.
terraform apply main.destroy.tfplan
Felsöka Terraform i Azure
Felsöka vanliga problem när du använder Terraform i Azure