Udostępnij za pomocą


Szybki start: tworzenie wystąpienia usługi Azure API Management przy użyciu narzędzia Terraform

DOTYCZY: Wszystkich poziomów zarządzania API

W tym artykule pokazano, jak za pomocą narzędzia Terraform utworzyć wystąpienie usługi API Management na platformie Azure. Narzędzia Terraform można również używać do typowych zadań zarządzania, takich jak importowanie interfejsów API w wystąpieniu usługi API Management.

Usługa Azure API Management pomaga organizacjom publikować interfejsy API dla deweloperów zewnętrznych, partnerskich i wewnętrznych w celu odblokowania potencjału swoich danych i usług. Usługa API Management udostępnia podstawowe funkcje wymagane do tworzenia skutecznych interfejsów API przez zaangażowanych deweloperów, a także zapewnia informacje biznesowe, analizy, zabezpieczenia i ochronę. Usługa API Management umożliwia tworzenie nowoczesnych bram interfejsów API i zarządzanie nimi dla istniejących usług zaplecza hostowanych w dowolnym miejscu.

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 nazwy usługi Azure API Management przy użyciu random_string
  • Tworzenie usługi Azure API Management przy użyciu azurerm_api_management

Wymagania wstępne

Implementowanie kodu narzędzia Terraform

  1. Utwórz katalog, w którym chcesz przetestować i uruchomić przykładowy kod programu Terraform i utworzyć go jako bieżący katalog.

  2. 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_api_management_name" {
      length  = 13
      lower   = true
      numeric = false
      special = false
      upper   = false
    }
    
    resource "azurerm_api_management" "api" {
      name                = "apiservice${random_string.azurerm_api_management_name.result}"
      location            = azurerm_resource_group.rg.location
      resource_group_name = azurerm_resource_group.rg.name
      publisher_email     = var.publisher_email
      publisher_name      = var.publisher_name
      sku_name            = "${var.sku_name}_${var.sku_count}"
    }
    
  3. Utwórz plik o nazwie outputs.tf i wstaw następujący kod:

    output "resource_group_name" {
      value = azurerm_resource_group.rg.name
    }
    
    output "api_management_service_name" {
      value = azurerm_api_management.api.name
    }
    
  4. 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 = "~>4.0"
        }
        random = {
          source  = "hashicorp/random"
          version = "~>3.0"
        }
      }
    }
    provider "azurerm" {
      features {}
    }
    
  5. Utwórz plik o nazwie variables.tf i wstaw następujący kod:

    variable "resource_group_location" {
      type        = string
      default     = "eastus"
      description = "Location for all resources."
    }
    
    variable "resource_group_name_prefix" {
      type        = string
      default     = "rg"
      description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription."
    }
    
    variable "publisher_email" {
      default     = "test@contoso.com"
      description = "The email address of the owner of the service"
      type        = string
      validation {
        condition     = length(var.publisher_email) > 0
        error_message = "The publisher_email must contain at least one character."
      }
    }
    
    variable "publisher_name" {
      default     = "publisher"
      description = "The name of the owner of the service"
      type        = string
      validation {
        condition     = length(var.publisher_name) > 0
        error_message = "The publisher_name must contain at least one character."
      }
    }
    
    variable "sku_name" {
      description = "The pricing tier of this API Management service"
      default     = "BasicV2"
      type        = string
      validation {
        condition     = contains(["Basic", "BasicV2", "Consumption", "Developer", "Premium", "PremiumV2", "Standard", "StandardV2"], var.sku_name)
        error_message = "The sku must be one of the following: Basic, BasicV2, Consumption, Developer, Premium, PremiumV2, Standard, StandardV2."
      }
    }
    
    variable "sku_count" {
      description = "The instance size of this API Management service."
      default     = 1
      type        = number
      validation {
        condition     = contains([1, 2], var.sku_count)
        error_message = "The sku_count must be one of the following: 1, 2."
      }
    }
    

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 terraform plan, 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 terraform apply, aby zastosować plan wykonania do infrastruktury chmury obliczeniowej.

terraform apply main.tfplan

Kluczowe punkty:

  • Przykładowe terraform apply polecenie zakłada, że wcześniej uruchomiono terraform plan -out main.tfplan polecenie.
  • Jeśli określono inną nazwę pliku parametru -out , użyj tej samej nazwy pliku w wywołaniu metody terraform apply.
  • Jeśli nie użyto parametru -out, wywołaj terraform apply bez żadnych parametrów.

Uwaga

Utworzenie i aktywowanie usługi API Management może potrwać od 30 do 40 minut.

Weryfikowanie wyników

  1. Pobierz nazwę grupy zasobów platformy Azure.

    resource_group_name=$(terraform output -raw resource_group_name)
    
  2. Pobierz nazwę usługi.

    api_management_service_name=$(terraform output -raw api_management_service_name)
    
  3. Uruchom az apim show, aby wyświetlić informacje o nowej usłudze.

    az apim show --resource-group $resource_group_name \
                 --name $api_management_service_name
    

Czyszczenie zasobów

Jeśli zasoby utworzone za pomocą narzędzia Terraform nie są już potrzebne, wykonaj następujące czynności:

  1. Uruchom terraform plan i określ opcję 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.
  2. Uruchom terraform apply, 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

Następne kroki