Sdílet prostřednictvím


Rychlý start: Vytvoření instance služby Azure API Management pomocí Terraformu

PLATÍ PRO: Všechny úrovně služby správy rozhraní API

Tento článek ukazuje, jak pomocí Terraformu vytvořit instanci služby API Management v Azure. Terraform můžete použít také pro běžné úlohy správy, jako je import rozhraní API v instanci služby API Management.

Azure API Management pomáhá organizacím publikovat rozhraní API externím, partnerům a interním vývojářům, aby uvolnila potenciál jejich dat a služeb. Služba API Management nabízí základní možnosti pro zajištění úspěšného programu s rozhraním API prostřednictvím zapojení vývojářů, informací o podniku, analýz, zabezpečení a ochrany. Pomocí služby API Management můžete vytvářet a spravovat moderní brány rozhraní API pro stávající back-endové služby hostované kdekoli.

Terraform umožňuje definici, zobrazení náhledu a nasazení cloudové infrastruktury. Pomocí Terraformu vytvoříte konfigurační soubory pomocí syntaxe HCL. Syntaxe seznamu HCL umožňuje zadat poskytovatele cloudu , například Azure, a prvky, které tvoří vaši cloudovou infrastrukturu. Po vytvoření konfiguračních souborů vytvoříte plán provádění , který vám umožní zobrazit náhled změn infrastruktury před jejich nasazením. Jakmile ověříte změny, použijete plán provádění k nasazení infrastruktury.

V tomto článku se naučíte:

Požadavky

Implementace kódu Terraformu

  1. Vytvořte adresář, ve kterém chcete otestovat a spustit ukázkový kód Terraformu a nastavit ho jako aktuální adresář.

  2. Vytvořte soubor s názvem main.tf a vložte následující kód:

    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. Vytvořte soubor s názvem outputs.tf a vložte následující kód:

    output "resource_group_name" {
      value = azurerm_resource_group.rg.name
    }
    
    output "api_management_service_name" {
      value = azurerm_api_management.api.name
    }
    
  4. Vytvořte soubor s názvem providers.tf a vložte následující kód:

    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. Vytvořte soubor s názvem variables.tf a vložte následující kód:

    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."
      }
    }
    

Inicializujte Terraform

Spusťte terraform init pro inicializaci nasazení Terraformu. Tento příkaz stáhne poskytovatele Azure potřebného ke správě prostředků Azure.

terraform init -upgrade

klíčové body:

  • Parametr -upgrade aktualizuje potřebné pluginy poskytovatele na nejnovější verzi, která odpovídá verzním omezením konfigurace.

Vytvoření plánu provádění Terraformu

Spusťte terraform plan, abyste vytvořili plán provádění.

terraform plan -out main.tfplan

klíčové body:

  • Příkaz terraform plan vytvoří plán provádění, ale nespustí ho. Místo toho určuje, jaké akce jsou nezbytné k vytvoření konfigurace zadané v konfiguračních souborech. Tento model umožňuje ověřit, jestli plán provádění odpovídá vašim očekáváním, než provede jakékoli změny skutečných prostředků.
  • Volitelný -out parametr umožňuje zadat výstupní soubor pro plán. Použití parametru -out zajišťuje, že vámi zkontrolovaný plán je přesně tím, co bude aplikován.

Implementujte plán Terraformu

Spusťte terraform apply pro aplikaci plánu provádění na vaši cloudovou infrastrukturu.

terraform apply main.tfplan

klíčové body:

  • terraform apply Ukázkový příkaz předpokládá, že jste dříve spustili terraform plan -out main.tfplan.
  • Pokud jste pro -out parametr zadali jiný název souboru, použijte stejný název souboru při volání terraform apply.
  • Pokud jste parametr nepoužíli -out , zavolejte terraform apply bez parametrů.

Poznámka:

Vytvoření a aktivace služby API Management může trvat 30 až 40 minut.

Ověření výsledků

  1. Získejte název skupiny prostředků Azure.

    resource_group_name=$(terraform output -raw resource_group_name)
    
  2. Získejte název služby.

    api_management_service_name=$(terraform output -raw api_management_service_name)
    
  3. Spuštěním příkazu az apim show zobrazte informace o nové službě.

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

Vyčistěte zdroje

Pokud už prostředky vytvořené přes Terraform nepotřebujete, proveďte následující kroky:

  1. Spusťte terraform plan a určete příznak destroy.

    terraform plan -destroy -out main.destroy.tfplan
    

    klíčové body:

    • Příkaz terraform plan vytvoří plán provádění, ale nespustí ho. Místo toho určuje, jaké akce jsou nezbytné k vytvoření konfigurace zadané v konfiguračních souborech. Tento model umožňuje ověřit, jestli plán provádění odpovídá vašim očekáváním, než provede jakékoli změny skutečných prostředků.
    • Volitelný -out parametr umožňuje zadat výstupní soubor pro plán. Použití parametru -out zajišťuje, že vámi zkontrolovaný plán je přesně tím, co bude aplikován.
  2. Spusťte terraform apply k aplikaci plánu provádění.

    terraform apply main.destroy.tfplan
    

Řešení potíží s Terraformem v Azure

Řešení běžných problémů při používání Terraformu v Azure

Další kroky