Een Azure Cosmos DB implementeren in Azure Container Instances

In dit artikel leert u hoe u Terraform gebruikt om een Azure Cosmos DB te Azure Container Instances.

In dit artikel leert u het volgende:

  • Een Azure Cosmos DB maken
  • Een Azure Container Instance maken
  • Een app maken die voor deze twee resources werkt

1. Uw omgeving configureren

  • Azure-abonnement: Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint.

2. Eerste configuratie maken

In deze sectie maakt u de configuratie voor een Azure Cosmos DB exemplaar.

  1. Meld u aan bij de Azure-portal.

  2. Open Azure Cloud Shell.

  3. Start de Cloud Shell-editor:

    code main.tf
    
  4. Met de configuratie in deze stap worden een aantal Azure-resources gemodeld. Deze resources omvatten een Azure-resourcegroep en een Azure Cosmos DB-exemplaar. Een willekeurig geheel getal wordt gebruikt om een unieke naam Cosmos DB instantie te maken. Er worden ook verschillende Cosmos DB-instellingen geconfigureerd. Zie de Terraform-naslaginformatie Cosmos DB meer informatie. Voeg de volgende code in het bestand in:

    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. Sla het bestand op (Ctrl > S) en sluit de editor af>

3. De configuratie uitvoeren

In deze sectie gebruikt u verschillende Terraform-opdrachten om de configuratie uit te voeren.

  1. Met de opdracht terraform init wordt de werkmap geïnitialiseerd. Voer de volgende opdracht in Cloud Shell uit:

    terraform init
    
  2. De opdracht terraform plan kan worden gebruikt om de configuratiesyntaxis te valideren. De parameter -out stuurt de resultaten naar een bestand. Het uitvoerbestand kan later worden gebruikt om de configuratie toe te passen. Voer de volgende opdracht in Cloud Shell uit:

    terraform plan --out plan.out
    
  3. De opdracht terraform apply wordt gebruikt om de configuratie toe te passen. Het uitvoerbestand uit de vorige stap is opgegeven. Met deze opdracht worden de Azure-resources gemaakt. Voer de volgende opdracht in Cloud Shell uit:

    terraform apply plan.out
    
  4. Als u de resultaten in de Azure-portal wilt controleren, bladert u naar de nieuwe resourcegroep. Het nieuwe Azure Cosmos DB is in de nieuwe resourcegroep.

4. Configuratie bijwerken

In deze sectie ziet u hoe u de configuratie bij kunt werken met een Azure Container Instance. In de container wordt een toepassing uitgevoerd die gegevens leest en schrijft naar de Cosmos DB.

  1. Start de Cloud Shell-editor:

    code main.tf
    
  2. Met de configuratie in deze stap stelt u twee omgevingsvariabelen in: COSMOS_DB_ENDPOINT en COSMOS_DB_MASTERKEY . Deze variabelen bevatten de locatie en de sleutel voor toegang tot de database. De waarden voor deze variabelen worden verkregen van het database-exemplaar dat in de vorige stap is gemaakt. Dit proces wordt interpolatie genoemd. Meer informatie over Terraform-interpolatie vindt u in Interpolation Syntax (Interpolatiesyntaxis). De configuratie omvat ook een uitvoerblok, dat de volledig gekwalificeerde domeinnaam (FQDN) van het containerexemplaar retourneert. Voeg de volgende code in het bestand in:

    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. Sla het bestand op (Ctrl > S) en sluit de editor af>

  4. Voer net als in de vorige sectie de volgende opdracht uit om de wijzigingen die moeten worden aangebracht, te visualiseren:

    terraform plan --out plan.out
    
  5. Voer de opdracht terraform apply uit om de configuratie toe te passen.

    terraform apply plan.out
    
  6. Noteer de FQDN van de container-instantie.

5. Toepassing testen

Als u de toepassing wilt testen, gaat u naar de FQDN van de container-instantie. U ziet als het goed is resultaten die vergelijkbaar zijn met de volgende uitvoer:

Azure Voting-app

6. Resources ops schonen

Verwijder de resources die u in dit artikel hebt gemaakt als u ze niet meer nodig hebt.

Voer de opdracht terraform destroy uit om de Azure-resources te verwijderen die in dit artikel zijn gemaakt:

terraform destroy -auto-approve

Problemen met Terraform in Azure oplossen

Veelvoorkomende problemen bij het gebruik van Terraform in Azure oplossen

Volgende stappen