Snabbstart – Skapa en Azure Cosmos DB-databas och container med Terraform
GÄLLER FÖR: NoSQL
Azure Cosmos DB är Microsofts snabba NoSQL-databas med öppna API:er för valfri skala. Du kan använda Azure Cosmos DB för att snabbt skapa och fråga efter nyckel-/värdedatabaser, dokumentdatabaser och grafdatabaser. Utan ett kreditkort eller en Azure-prenumeration kan du konfigurera ett kostnadsfritt Prova Azure Cosmos DB-konto. Den här snabbstarten fokuserar på distributionsprocessen via Terraform för att skapa en Azure Cosmos-databas och en container i databasen. Du kan senare lagra data i den här containern.
Förutsättningar
En Azure-prenumeration eller ett kostnadsfritt Utvärderingskonto för Azure Cosmos DB
- Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
Terraform bör installeras på den lokala datorn. Installationsanvisningar finns här.
Granska Terraform-filen
Terraform-filerna som används i den här snabbstarten finns på terraform-exempellagringsplatsen. Skapa de tre filerna nedan: providers.tf, main.tf och variables.tf. Variabler kan anges på kommandoraden eller alternativt med en terraforms.tfvars-fil.
Terraform-providerfil
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 {}
}
Terraform-huvudfil
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
}
Terraform-fil för variabler
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."
}
}
Tre Cosmos DB-resurser definieras i huvud terraform-filen.
Microsoft.DocumentDB/databaseAccounts: Skapa ett Azure Cosmos-konto.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases: Skapa en Azure Cosmos-databas.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers: Skapa en Azure Cosmos-container.
Distribuera via terraform
- Spara terraform-filerna som main.tf, variables.tf och providers.tf på den lokala datorn.
- Logga in på terminalen via Azure CLI eller PowerShell
- Distribuera via Terraform-kommandon
- terraform init
- terraform-plan
- terraform apply
Verifiera distributionen
Använd Azure Portal, Azure CLI eller Azure PowerShell för att lista de distribuerade resurserna i resursgruppen.
az resource list --resource-group "your resource group name"
Rensa resurser
Om du planerar att fortsätta arbeta med efterföljande snabbstarter och självstudier kanske du vill lämna dessa resurser på plats. När den inte längre behövs använder du Azure Portal, Azure CLI eller Azure PowerShell för att ta bort resursgruppen och dess resurser.
az group delete --name "your resource group name"
Nästa steg
I den här snabbstarten skapade du ett Azure Cosmos-konto, en databas och en container via terraform och verifierade distributionen. Om du vill veta mer om Azure Cosmos DB och Terraform fortsätter du till artiklarna nedan.
- Läs en översikt över Azure Cosmos DB.
- Läs mer om Terraform.
- Läs mer om Azure Terraform-providern.
- Hantera Cosmos DB med Terraform
- Försöker du planera kapacitet för en migrering till Azure Cosmos DB? Du kan använda information om ditt befintliga databaskluster för kapacitetsplanering.
- Om allt du vet är antalet virtuella kärnor och servrar i ditt befintliga databaskluster kan du läsa om att uppskatta enheter för begäranden med virtuella kärnor eller virtuella kärnor.
- Om du känner till vanliga begäranden för din aktuella databasarbetsbelastning kan du läsa om att uppskatta enheter för begäranden med azure Cosmos DB-kapacitetshanteraren.