Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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 conta do Azure, crie uma conta gratuita 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 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, 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 {
resource_group {
prevent_deletion_if_contains_resources = false
}
}
}
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
}
Arquivo de Variáveis do Terraform
variable "prefix" {
type = string
default = "cosmosdb-manualscale"
description = "Prefix of the resource name"
}
variable "location" {
type = string
default = "Canada Central"
description = "Resource group location"
}
variable "cosmosdb_account_location" {
type = string
default = "Canada Central"
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.
Implemente 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 |
- plano terraform
- aplicação terraform
Validar a implementação
Utilize o portal do Azure, Azure CLI ou Azure PowerShell para listar os recursos implantados no grupo de recursos.
- Azure CLI
- Azure PowerShell
az resource list --resource-group "your resource group name"
Limpeza de recursos
Caso planeie continuar a trabalhar com introduções rápidas e tutoriais subsequentes, pode querer deixar esses recursos tal como 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.
- Azure CLI
- Azure PowerShell
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.