Distribuera en Azure Cosmos DB till Azure Container Instances

I den här artikeln får du lära dig hur du använder Terraform för att distribuera en Azure Cosmos DB till Azure Container Instances.

I den här artikeln kan du se hur du:

  • Skapa en Azure Cosmos DB instans
  • Skapa en Azure Container Instance
  • Skapa en app som fungerar för de här två resurserna

1. Konfigurera din miljö

  • Azure-prenumeration: Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.

2. Skapa den första konfigurationen

I det här avsnittet skapar du konfigurationen för en Azure Cosmos DB instans.

  1. Logga in på Azure-portalen.

  2. Öppna Azure Cloud Shell.

  3. Starta Cloud Shell redigeringsprogram:

    code main.tf
    
  4. Konfigurationen i det här steget modellerar ett par Azure-resurser. Dessa resurser omfattar en Azure-resursgrupp och en Azure Cosmos DB instans. Ett slumpmässigt heltal används för att skapa ett unikt Cosmos DB instansnamn. Dessutom konfigureras flera Cosmos DB-inställningar. Mer information finns i Cosmos DB Terraform. Infoga följande kod i filen:

    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. Spara filen ( Ctrl > S)och avsluta redigeraren (>).

3. Kör konfigurationen

I det här avsnittet använder du flera Terraform-kommandon för att köra konfigurationen.

  1. Kommandot terraform init initierar arbetskatalogen. Kör följande kommando i Cloud Shell:

    terraform init
    
  2. Kommandot terraform plan kan användas för att verifiera konfigurationssyntaxen. Parametern -out dirigerar resultatet till en fil. Utdatafilen kan användas senare för att tillämpa konfigurationen. Kör följande kommando i Cloud Shell:

    terraform plan --out plan.out
    
  3. Kommandot terraform apply används för att tillämpa konfigurationen. Utdatafilen från föregående steg har angetts. Det här kommandot gör att Azure-resurserna skapas. Kör följande kommando i Cloud Shell:

    terraform apply plan.out
    
  4. Om du vill kontrollera resultaten i Azure Portal bläddrar du till den nya resursgruppen. Den nya Azure Cosmos DB instansen finns i den nya resursgruppen.

4. Uppdatera konfigurationen

Det här avsnittet visar hur du uppdaterar konfigurationen så att den inkluderar en Azure Container Instance. Containern kör ett program som läser och skriver data till Cosmos DB.

  1. Starta Cloud Shell redigeringsprogram:

    code main.tf
    
  2. Konfigurationen i det här steget anger två miljövariabler: COSMOS_DB_ENDPOINT och COSMOS_DB_MASTERKEY . Dessa variabler innehåller platsen och nyckeln för åtkomst till databasen. Värdena för dessa variabler hämtas från databasinstansen som skapades i föregående steg. Den här processen kallas interpolering. Läs mer om Terraform-interpolering i interpoleringssyntax. Konfigurationen innehåller även ett utdatablock som returnerar det fullständiga domännamnet (FQDN) för containerinstansen. Infoga följande kod i filen:

    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. Spara filen ( Ctrl > S)och avsluta redigeraren (>).

  4. Som du gjorde i föregående avsnitt kör du följande kommando för att se de ändringar som ska göras:

    terraform plan --out plan.out
    
  5. Kör kommandot terraform apply för att tillämpa konfigurationen.

    terraform apply plan.out
    
  6. Anteckna containerinstansens FQDN.

5. Testa programmet

Testa programmet genom att gå till FQDN för containerinstansen. Du bör se resultat som liknar följande utdata:

Azure Vote-program

6. Rensa resurser

Ta bort resurserna som skapades i den här artikeln när de inte längre behövs.

Kör kommandot terraform destroy för att ta bort De Azure-resurser som skapades i den här artikeln:

terraform destroy -auto-approve

Felsöka Terraform på Azure

Felsöka vanliga problem när du använder Terraform på Azure

Nästa steg