Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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 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.
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
}
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."
  }
}
Tre Cosmos DB resurser definieras i huvudterraformfilen.
- 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
- Implementera 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 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.