Guia de início rápido – Criar um banco de dados e um 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. É possível usar o Azure Cosmos DB para criar e consultar rapidamente bancos de dados de chave/valor, de documentos e de grafo. Sem um cartão de crédito ou uma assinatura do Azure, você pode configurar uma conta gratuita do Try do Azure Cosmos DB. Este guia de início rápido se concentra no processo de implantações pelo Terraform para criar um banco de dados do Azure Cosmos e um contêiner dentro desse banco de dados. Posteriormente, você poderá armazenar dados nesse contêiner.
Pré-requisitos
Uma assinatura do Azure ou uma conta de avaliação gratuita do Azure Cosmos DB
- Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
O Terraform deve ser instalado no computador local. Veja as instruções de instalação aqui.
Examinar o arquivo do Terraform
Os arquivos do Terraform usados neste guia de início rápido podem ser encontrados no repositório de exemplos do 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, como alternativa, com um arquivo terraforms.tfvars.
Arquivo de provedor do Terraform
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 principal do Terraform
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
}
Arquivo de variáveis do Terraform
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 do Terraform principal.
Microsoft.DocumentDB/databaseAccounts: criar uma conta do Azure Cosmos.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases: Criar um banco de dados do Azure Cosmos.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers: Criar um contêiner do Azure Cosmos.
Implantar por meio do Terraform
- Salve os arquivos do Terraform como main.tf, variables.tf e providers.tf no computador local.
- Entre no terminal por meio da CLI do Azure ou do PowerShell
- Implantar por meio de comandos do Terraform
- terraform init
- terraform plan
- terraform apply
Validar a implantaçã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"
Limpar os recursos
Se planejar continuar trabalhando com os tutoriais e inícios rápidos subsequentes, deixe esses recursos onde estão. 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óximas etapas
Neste guia de início rápido, você criou uma conta, um banco de dados e um contêiner do Azure Cosmos usando o Terraform e validou a implantação. Para saber mais sobre o Azure Cosmos DB e o Terraform, continue com os artigos abaixo.
- Leia uma Visão geral do Azure Cosmos DB.
- Saiba mais sobre o Terraform.
- Saiba mais sobre o Provedor do Terraform do Azure.
- Gerenciar o Azure Cosmos DB com o Terraform
- Tentando fazer o planejamento da capacidade para uma migração para o Azure Cosmos DB? Você pode usar informações sobre o cluster de banco de dados existente para fazer isso.
- Se tudo o que sabe é apenas o número de vCores e servidores do cluster de banco de dados existente, leia sobre como estimar unidades de solicitação com vCores ou vCPUs.
- Caso saiba as taxas de solicitação típicas da carga de trabalho do banco de dados atual, leia sobre como estimar unidades de solicitação com o planejador de capacidade do Azure Cosmos DB.