Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
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 något Azure-konto skapar du ett kostnadsfritt 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.
Nyckelparametrar för Terraform
I följande tabell sammanfattas de kritiska variabler som används i den här snabbstarten, deras omfång, begränsningar och exempelvärden.
| Parameter | Omfång | Beskrivning och begränsningar | Exempelvärde |
|---|---|---|---|
prefix |
Namngivning | Prefix som används för alla resursnamn. Måste vara gemener bokstäver, alfanumerisk och unik per prenumeration. | cosmosdemo |
location |
Resursgrupp | Azure-region för resursgruppen. Den här platsen gäller endast för resursgruppen, inte Cosmos DB-kontot. | eastus |
cosmosdb_account_location |
Cosmos DB-konto | Azure-region för Azure Cosmos DB-kontot. Detta kan skilja sig från resursgruppens plats. | eastus |
throughput |
Databas (RU/s) | Tilldelad genomströmning för SQL-databasen i begärandenheter per sekund (RU/s). Måste vara mellan 400 och 1 000 000 RU/s. | 400 |
Provider-fil för 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 {
resource_group {
prevent_deletion_if_contains_resources = false
}
}
}
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
}
Tre Cosmos DB resurser definieras i huvudterraformfilen.
Microsoft.DocumentDB/databaseAccounts: Skapa ett Azure Cosmos-konto.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases: Skapa en Azure Cosmos-databas med dataflöde på databasnivå (RU/s).
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers: Skapa en Azure Cosmos-container.
Terraform-fil för variabler
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."
}
}
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
- Implementera via Terraform-kommandon
- terraform init
Förväntat resultat: Terraform initierar och laddar ned azurerm-providern. - terraform plan
Förväntat resultat: Planens utdata visar 3 för att lägga till, 0 för att ändra, 0 för att förstöra. - terraform apply
Förväntat resultat: De slutliga utdata inkluderar Apply complete! Resurser: 3 har lagts till, 0 ändrats, 0 förstörts.
- terraform init
Verifiera utplaceringen
Använd Azure-portalen, Azure CLI eller Azure PowerShell för att lista de distribuerade resurserna i resursgruppen.
az resource list --resource-group "your resource group name"
Förväntat resultat: Utdata visar en Microsoft.DocumentDB/databaseAccounts resurs tillsammans med dess databas och container.
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-portalen, Azure CLI eller Azure PowerShell för att ta bort resursgruppen och dess resurser.
az group delete --name "your resource group name"
Förväntat resultat: Azure CLI bekräftar borttagningen av resursgruppen och visar den inte längre i prenumerationen.
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 begärandeenheter med hjälp av virtuella kärnor eller virtuella processorkärnor.
- Om du känner till typiska begärandehastigheter för din aktuella databasarbetsbelastning kan du läsa om hur du uppskattar begärandeenheter med Azure Cosmos DB Kapacitetsplanerare.