Rychlý start – Vytvoření databáze a kontejneru Azure Cosmos DB pomocí Terraformu
PLATÍ PRO: NoSQL
Azure Cosmos DB je rychlá databáze NoSQL od Microsoftu s otevřenými rozhraními API pro libovolné škálování. Azure Cosmos DB můžete použít k rychlému vytváření a dotazování databází klíč/hodnota, databází dokumentů a grafových databází. Bez platební karty nebo předplatného Azure můžete nastavit bezplatný účet Vyzkoušet službu Azure Cosmos DB. Tento rychlý start se zaměřuje na proces nasazení prostřednictvím Terraformu za účelem vytvoření databáze Azure Cosmos a kontejneru v rámci této databáze. Později můžete data uložit do tohoto kontejneru.
Požadavky
Předplatné Azure nebo bezplatný zkušební účet služby Azure Cosmos DB
- Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.
Terraform by měl být nainstalovaný na místním počítači. Pokyny k instalaci najdete tady.
Kontrola souboru Terraformu
Soubory Terraformu použité v tomto rychlém startu najdete v úložišti ukázek terraformu. Vytvořte následující tři soubory: providers.tf, main.tf a variables.tf. Proměnné lze nastavit na příkazovém řádku nebo alternativně se souborem terraforms.tfvars.
Soubor Terraformu zprostředkovatele
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 {}
}
Hlavní soubor Terraformu
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
}
Soubor Terraformu s proměnnými
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."
}
}
Tři prostředky Cosmos DB jsou definovány v hlavním souboru terraformu.
Microsoft.DocumentDB/databaseAccounts: Vytvořte účet Azure Cosmos.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases: Vytvoření databáze Azure Cosmos.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers: Vytvořte kontejner Azure Cosmos.
Nasazení prostřednictvím terraformu
- Uložte soubory terraformu jako main.tf, variables.tf a providers.tf do místního počítače.
- Přihlášení k terminálu přes Azure CLI nebo PowerShell
- Nasazení pomocí příkazů Terraformu
- terraform init
- terraform plan
- terraform apply
Ověření nasazení
Pomocí webu Azure Portal, Azure CLI nebo Azure PowerShellu můžete zobrazit seznam nasazených prostředků ve skupině prostředků.
az resource list --resource-group "your resource group name"
Vyčištění prostředků
Pokud chcete pokračovat v práci s dalšími rychlými starty a kurzy, můžete tyto prostředky ponechat na místě. Pokud už ji nepotřebujete, odstraňte skupinu prostředků a její prostředky pomocí webu Azure Portal, Azure CLI nebo Azure PowerShellu.
az group delete --name "your resource group name"
Další kroky
V tomto rychlém startu jste vytvořili účet Azure Cosmos, databázi a kontejner prostřednictvím terraformu a ověřili jste nasazení. Další informace o službě Azure Cosmos DB a Terraformu najdete v následujících článcích.
- Přečtěte si přehled služby Azure Cosmos DB.
- Přečtěte si další informace o Terraformu.
- Přečtěte si další informace o poskytovateli Azure Terraformu.
- Správa cosmos DB pomocí Terraformu
- Pokoušíte se naplánovat kapacitu migrace do služby Azure Cosmos DB? Informace o stávajícím databázovém clusteru můžete použít k plánování kapacity.
- Pokud víte, že je počet virtuálních jader a serverů ve vašem existujícím databázovém clusteru, přečtěte si o odhadu jednotek žádostí pomocí virtuálních jader nebo virtuálních procesorů.
- Pokud znáte typické sazby požadavků pro aktuální úlohu databáze, přečtěte si o odhadu jednotek žádostí pomocí plánovače kapacity služby Azure Cosmos DB.