Guia de início rápido - Criar um banco de dados e contêiner do Azure Cosmos DB usando o Terraform
APLICA-SE A: NoSQL
O Azure Cosmos DB é o banco de dados NoSQL rápido da Microsoft com APIs abertas para qualquer escala. Você pode usar o Azure Cosmos DB para criar e consultar rapidamente bancos de dados de chave/valor, bancos de dados de documentos e bancos de dados de gráficos. Sem um cartão de crédito ou uma assinatura do Azure, você pode configurar uma conta gratuita Experimente o Azure Cosmos DB. Este guia de início rápido se concentra no processo de implantações via Terraform para criar um banco de dados do Azure Cosmos e um contêiner dentro desse banco de dados. Mais tarde, você pode armazenar dados nesse contêiner.
Pré-requisitos
Uma assinatura do Azure ou uma conta de avaliação gratuita do Azure Cosmos DB
- Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.
Terraform deve ser instalado no seu computador local. As instruções de instalação podem ser encontradas aqui.
Revise o arquivo Terraform
Os arquivos Terraform usados neste início rápido podem ser encontrados no repositório de amostras de terraform. Crie os três arquivos abaixo: providers.tf, main.tf e variables.tf. As variáveis podem ser definidas na linha de comando ou, alternativamente, com um arquivo terraforms.tfvars.
Arquivo Terraform do provedor
terraform {
required_version = ">= 1.0"
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = ">= 3.0, < 4.0"
}
random = {
source = "hashicorp/random"
version = ">= 3.0"
}
}
}
provider "azurerm" {
features {}
}
Arquivo Terraform Principal
resource "azurerm_resource_group" "example" {
name = "${random_pet.prefix.id}-rg"
location = var.location
}
resource "azurerm_cosmosdb_account" "example" {
name = "${random_pet.prefix.id}-cosmosdb"
location = var.cosmosdb_account_location
resource_group_name = azurerm_resource_group.example.name
offer_type = "Standard"
kind = "GlobalDocumentDB"
enable_automatic_failover = false
geo_location {
location = var.location
failover_priority = 0
}
consistency_policy {
consistency_level = "BoundedStaleness"
max_interval_in_seconds = 300
max_staleness_prefix = 100000
}
depends_on = [
azurerm_resource_group.example
]
}
resource "azurerm_cosmosdb_sql_database" "main" {
name = "${random_pet.prefix.id}-sqldb"
resource_group_name = azurerm_resource_group.example.name
account_name = azurerm_cosmosdb_account.example.name
throughput = var.throughput
}
resource "azurerm_cosmosdb_sql_container" "example" {
name = "${random_pet.prefix.id}-sql-container"
resource_group_name = azurerm_resource_group.example.name
account_name = azurerm_cosmosdb_account.example.name
database_name = azurerm_cosmosdb_sql_database.main.name
partition_key_path = "/definition/id"
partition_key_version = 1
throughput = var.throughput
indexing_policy {
indexing_mode = "consistent"
included_path {
path = "/*"
}
included_path {
path = "/included/?"
}
excluded_path {
path = "/excluded/?"
}
}
unique_key {
paths = ["/definition/idlong", "/definition/idshort"]
}
}
resource "random_pet" "prefix" {
prefix = var.prefix
length = 1
}
Variáveis Terraform Arquivo
variable "prefix" {
type = string
default = "cosmosdb-manualscale"
description = "Prefix of the resource name"
}
variable "location" {
type = string
default = "eastus"
description = "Resource group location"
}
variable "cosmosdb_account_location" {
type = string
default = "eastus"
description = "Cosmos db account location"
}
variable "throughput" {
type = number
default = 400
description = "Cosmos db database throughput"
validation {
condition = var.throughput >= 400 && var.throughput <= 1000000
error_message = "Cosmos db manual throughput should be equal to or greater than 400 and less than or equal to 1000000."
}
validation {
condition = var.throughput % 100 == 0
error_message = "Cosmos db throughput should be in increments of 100."
}
}
Três recursos do Cosmos DB são definidos no arquivo terraform principal.
Microsoft.DocumentDB/databaseAccounts: crie uma conta do Azure Cosmos.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases: crie um banco de dados do Azure Cosmos.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers: crie um contêiner do Azure Cosmos.
Implante via terraform
- Salve os arquivos terraform como main.tf, variables.tf e providers.tf em seu computador local.
- Inicie sessão no seu terminal através da CLI do Azure ou do PowerShell
- Implantar por meio de comandos Terraform
- terraform init |
- planta terraform
- aplicação terraform
Validar a implementação
Use o portal do Azure, a CLI do Azure ou o Azure PowerShell para listar os recursos implantados no grupo de recursos.
az resource list --resource-group "your resource group name"
Clean up resources (Limpar recursos)
Se você planeja continuar trabalhando com guias de início rápido e tutoriais subsequentes, convém deixar esses recursos no lugar. Quando não for mais necessário, use o portal do Azure, a CLI do Azure ou o Azure PowerShell para excluir o grupo de recursos e seus recursos.
az group delete --name "your resource group name"
Próximos passos
Neste início rápido, você criou uma conta do Azure Cosmos, um banco de dados e um contêiner via terraform e validou a implantação. Para saber mais sobre o Azure Cosmos DB e o Terraform, continue nos artigos abaixo.
- Leia uma visão geral do Azure Cosmos DB.
- Saiba mais sobre a Terraform.
- Saiba mais sobre o Azure Terraform Provider.
- Gerencie o Cosmos DB com o Terraform
- Tentando fazer o planejamento de capacidade para uma migração para o Azure Cosmos DB? Você pode usar informações sobre seu cluster de banco de dados existente para planejamento de capacidade.
- Se tudo o que você sabe é o número de vCores e servidores em seu cluster de banco de dados existente, leia sobre como estimar unidades de solicitação usando vCores ou vCPUs.
- Se você souber as taxas de solicitação típicas para sua carga de trabalho de banco de dados atual, leia sobre como estimar unidades de solicitação usando o planejador de capacidade do Azure Cosmos DB.