nasazení Azure Cosmos DB do Azure Container Instances

v tomto článku se naučíte, jak pomocí terraformu nasadit Azure Cosmos DB k Azure Container Instances.

V tomto článku získáte informace o těchto tématech:

  • vytvoření instance Azure Cosmos DB
  • Vytvoření instance kontejneru Azure
  • Vytvoření aplikace, která funguje v těchto dvou prostředcích

1. konfigurace prostředí

  • Předplatné Azure: Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.

2. Vytvoření první konfigurace

v této části vytvoříte konfiguraci pro instanci Azure Cosmos DB.

  1. Přihlaste se k webu Azure Portal.

  2. Otevřete Azure Cloud Shell.

  3. Spusťte Editor Cloud Shell:

    code main.tf
    
  4. Konfigurace v tomto kroku modeluje několik prostředků Azure. mezi tyto prostředky patří skupina prostředků Azure a instance Azure Cosmos DB. k vytvoření jedinečného názvu instance Cosmos DB slouží náhodné celé číslo. nakonfigurovali jste taky několik nastavení Cosmos DB. další informace najdete v referenčních informacích k Cosmos DB terraformu. Do souboru vložte následující kód:

    resource "azurerm_resource_group" "vote-resource-group" {
      name     = "vote-resource-group"
      location = "westus"
    }
    
    resource "random_integer" "ri" {
      min = 10000
      max = 99999
    }
    
    resource "azurerm_cosmosdb_account" "vote-cosmos-db" {
      name                = "tfex-cosmos-db-${random_integer.ri.result}"
      location            = azurerm_resource_group.vote-resource-group.location
      resource_group_name = azurerm_resource_group.vote-resource-group.name
      offer_type          = "Standard"
      kind                = "GlobalDocumentDB"
    
      consistency_policy {
        consistency_level       = "BoundedStaleness"
        max_interval_in_seconds = 10
        max_staleness_prefix    = 200
      }
    
      geo_location {
        location          = "westus"
        failover_priority = 0
      }
    }
    
  5. Uložte soubor ( CTRL > S) a ukončete Editor (>).

3. Spusťte konfiguraci.

V této části použijete několik příkazů Terraformu ke spuštění konfigurace.

  1. Příkaz terraformu init inicializuje pracovní adresář. Spusťte následující příkaz v Cloud Shell:

    terraform init
    
  2. K ověření syntaxe konfigurace lze použít příkaz terraformu Plan . -outParametr přesměruje výsledky do souboru. Výstupní soubor lze použít později pro použití konfigurace. Spusťte následující příkaz v Cloud Shell:

    terraform plan --out plan.out
    
  3. K aplikování konfigurace se používá příkaz terraformu Apply . Byl zadán výstupní soubor z předchozího kroku. Tento příkaz způsobí vytvoření prostředků Azure. Spusťte následující příkaz v Cloud Shell:

    terraform apply plan.out
    
  4. Pokud chcete ověřit výsledky v rámci Azure Portal, přejděte do nové skupiny prostředků. nová instance Azure Cosmos DB se nachází v nové skupině prostředků.

4. Konfigurace aktualizace

V této části se dozvíte, jak aktualizovat konfiguraci tak, aby zahrnovala instanci kontejneru Azure. kontejner spustí aplikaci, která čte a zapisuje data do Cosmos DB.

  1. Spusťte Editor Cloud Shell:

    code main.tf
    
  2. Konfigurace v tomto kroku nastavuje dvě proměnné prostředí: COSMOS_DB_ENDPOINT a COSMOS_DB_MASTERKEY . Tyto proměnné uchovávají umístění a klíč pro přístup k databázi. Hodnoty pro tyto proměnné jsou získány z instance databáze vytvořené v předchozím kroku. Tento proces se označuje jako interpolace. Další informace o interpolaci Terraformu naleznete v tématu syntax interpolace. Konfigurace obsahuje taky výstupní blok, který vrací plně kvalifikovaný název domény (FQDN) instance kontejneru. Do souboru vložte následující kód:

    resource "azurerm_container_group" "vote-aci" {
      name                = "vote-aci"
      location            = azurerm_resource_group.vote-resource-group.location
      resource_group_name = azurerm_resource_group.vote-resource-group.name
      ip_address_type     = "public"
      dns_name_label      = "vote-aci"
      os_type             = "linux"
    
      container {
        name   = "vote-aci"
        image  = "microsoft/azure-vote-front:cosmosdb"
        cpu    = "0.5"
        memory = "1.5"
        ports {
          port     = 80
          protocol = "TCP"
        }
    
        secure_environment_variables = {
          "COSMOS_DB_ENDPOINT"  = azurerm_cosmosdb_account.vote-cosmos-db.endpoint
          "COSMOS_DB_MASTERKEY" = azurerm_cosmosdb_account.vote-cosmos-db.primary_master_key
          "TITLE"               = "Azure Voting App"
          "VOTE1VALUE"          = "Cats"
          "VOTE2VALUE"          = "Dogs"
        }
      }
    }
    
    output "dns" {
      value = azurerm_container_group.vote-aci.fqdn
    }
    
  3. Uložte soubor ( CTRL > S) a ukončete Editor (>).

  4. Jak jste pracovali v předchozí části, spusťte následující příkaz, který provede vizuální změny, které se mají provést:

    terraform plan --out plan.out
    
  5. Spusťte terraform apply příkaz pro použití konfigurace.

    terraform apply plan.out
    
  6. Poznamenejte si plně kvalifikovaný název domény instance kontejneru.

5. test aplikace

Chcete-li otestovat aplikaci, přejděte k plně kvalifikovanému názvu domény instance kontejneru. Mělo by se zobrazit výsledky podobné následujícímu výstupu:

Hlasovací aplikace Azure

6. vyčištění prostředků

Pokud už je nepotřebujete, odstraňte prostředky vytvořené v tomto článku.

Pokud chcete odebrat prostředky Azure vytvořené v tomto článku, spusťte příkaz terraformu Destroy :

terraform destroy -auto-approve

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

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

Další kroky