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.
Terraform configureren: Als u dit nog niet hebt gedaan, configureert u Terraform met een van de volgende opties:
2. Eerste configuratie maken
In deze sectie maakt u de configuratie voor een Azure Cosmos DB exemplaar.
Meld u aan bij de Azure-portal.
Open Azure Cloud Shell.
Start de Cloud Shell-editor:
code main.tfMet 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 } }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.
Met de opdracht terraform init wordt de werkmap geïnitialiseerd. Voer de volgende opdracht in Cloud Shell uit:
terraform initDe opdracht terraform plan kan worden gebruikt om de configuratiesyntaxis te valideren. De parameter
-outstuurt 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.outDe 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.outAls 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.
Start de Cloud Shell-editor:
code main.tfMet de configuratie in deze stap stelt u twee omgevingsvariabelen in:
COSMOS_DB_ENDPOINTenCOSMOS_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 }Sla het bestand op (Ctrl > S) en sluit de editor af>
Voer net als in de vorige sectie de volgende opdracht uit om de wijzigingen die moeten worden aangebracht, te visualiseren:
terraform plan --out plan.outVoer de opdracht
terraform applyuit om de configuratie toe te passen.terraform apply plan.outNoteer 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:

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