Implementación de una base de datos de Azure Cosmos DB en Azure Container Instances
En este artículo, aprenderá a usar Terraform para implementar una base de datos de Azure Cosmos en Azure Container Instances.
En este artículo aprenderá a:
- Creación de una instancia de Azure Cosmos DB
- Creación de una instancia de Azure Container Instance
- Creación de una aplicación que funcione en estos dos recursos
1. Configurar su entorno
- Suscripción de Azure: Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Configuración de Terraform: si aún no lo ha hecho, configure Terraform con una de las siguientes opciones:
2. Creación de la primera configuración
En esta sección, creará la configuración para una instancia de Azure Cosmos DB.
Inicie sesión en Azure Portal.
Abra Azure Cloud Shell.
Inicie el editor de Cloud Shell:
code main.tfLa configuración de este paso modela un par de recursos de Azure. Estos recursos incluyen un grupo de recursos de Azure y una instancia de Azure Cosmos DB. Se usa un entero aleatorio para crear un nombre de instancia de Cosmos DB único. Se configuran también varios valores de Cosmos DB. Para más información, consulte la referencia de Terraform para Cosmos DB. Inserte el código siguiente en el archivo :
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 } }Guarde el archivo ( Ctrl > S) y salga del editor (>).
3. Ejecución de la configuración
En esta sección, se usan varios comandos de Terraform para ejecutar la configuración.
El comando terraform init inicializa el directorio de trabajo. En Cloud Shell, ejecute el comando siguiente:
terraform initSe puede usar el comando terraform plan para validar la sintaxis de configuración. El parámetro
-outdirige los resultados a un archivo. El archivo de salida se puede usar más adelante para aplicar la configuración. En Cloud Shell, ejecute el comando siguiente:terraform plan --out plan.outEl comando terraform apply se usa para aplicar la configuración. Se especifica el archivo de salida del paso anterior. Este comando hace que se creen los recursos de Azure. En Cloud Shell, ejecute el comando siguiente:
terraform apply plan.outPara comprobar los resultados en Azure Portal, vaya al nuevo grupo de recursos. La nueva instancia de Azure Cosmos DB está en el nuevo grupo de recursos.
4. Actualización de la configuración
En esta sección se muestra cómo actualizar la configuración para incluir una instancia de Azure Container Instances. El contenedor ejecuta una aplicación que lee y escribe datos en Cosmos DB.
Inicie el editor de Cloud Shell:
code main.tfLa configuración de este paso establece dos variables de entorno:
COSMOS_DB_ENDPOINTyCOSMOS_DB_MASTERKEY. Estas variables contienen la ubicación y la clave para acceder a la base de datos. Los valores de estas variables se obtienen de la instancia de la base de datos que se creó en el paso anterior. Este proceso se denomina interpolación. Para más información acerca de la interpolación de Terraform, consulte Sintaxis de interpolación. La configuración también incluye un bloque de salida, que devuelve el nombre de dominio completo (FQDN) de la instancia del contenedor. Inserte el código siguiente en el archivo :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 }Guarde el archivo ( Ctrl > S) y salga del editor (>).
Como hizo en la sección anterior, ejecute el siguiente comando para ver los cambios que se deben realizar:
terraform plan --out plan.outPor último, ejecute el comando
terraform applypara aplicar la configuración.terraform apply plan.outTome nota del nombre de dominio completo de la instancia de contenedor.
5. Aplicación de prueba
Para probar la aplicación, navegue hasta el FQDN de la instancia de contenedor. Debería ver resultados similares a lo siguiente:

6. Limpieza de recursos
Cuando ya no los necesite, elimine los recursos creados en este artículo.
Ejecute el comando terraform destroy para quitar los recursos de Azure creados en este artículo:
terraform destroy -auto-approve
Solución de problemas de Terraform en Azure
Solución de problemas comunes al usar Terraform en Azure