Rövid útmutató – Azure Cosmos DB-adatbázis és -tároló létrehozása a Terraform használatával
A KÖVETKEZŐRE VONATKOZIK: NoSQL
Az Azure Cosmos DB a Microsoft gyors NoSQL-adatbázisa, amely bármilyen mérethez elérhető API-kat biztosít. Az Azure Cosmos DB segítségével gyorsan hozhat létre és kérdezhet le kulcs-/értékadatbázisokat, dokumentum-adatbázisokat és gráfadatbázisokat. Hitelkártya vagy Azure-előfizetés nélkül beállíthat egy ingyenes Azure Cosmos DB-fiókot. Ez a rövid útmutató az Azure Cosmos-adatbázis és az adatbázison belüli tároló létrehozásához a Terraformon keresztüli üzembe helyezési folyamatra összpontosít. Később ebben a tárolóban tárolhatja az adatokat.
Előfeltételek
Azure-előfizetés vagy ingyenes Azure Cosmos DB-próbafiók
- Ha nem rendelkezik Azure-előfizetéssel, első lépésként hozzon létre egy ingyenes Azure-fiókot.
A Terraformot telepíteni kell a helyi számítógépre. A telepítési utasítások itt találhatók.
A Terraform-fájl áttekintése
Az ebben a rövid útmutatóban használt Terraform-fájlok a Terraform-minták adattárában találhatók. Hozza létre az alábbi három fájlt: providers.tf, main.tf és variables.tf. A változók parancssorban vagy terraforms.tfvars fájllal is beállíthatók.
Szolgáltatói Terraform-fájl
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
}
}
}
Fő Terraform-fájl
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
}
Változók Terraform-fájl
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."
}
}
A fő terraform fájlban három Cosmos DB-erőforrás van definiálva.
Microsoft.DocumentDB/databaseAccounts: Azure Cosmos-fiók létrehozása.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases: Azure Cosmos-adatbázis létrehozása.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers: Azure Cosmos-tároló létrehozása.
Üzembe helyezés terraformon keresztül
- Mentse a terraform fájlokat main.tf, variables.tf és providers.tf a helyi számítógépre.
- Bejelentkezés a terminálba az Azure CLI-vel vagy a PowerShell-lel
- Üzembe helyezés Terraform-parancsokkal
- terraform init
- terraform-terv
- terraform apply
Az üzembe helyezés ellenőrzése
Az Azure Portal, az Azure CLI vagy az Azure PowerShell használatával listázhatja az erőforráscsoportban üzembe helyezett erőforrásokat.
az resource list --resource-group "your resource group name"
Az erőforrások eltávolítása
Ha további rövid útmutatókkal és oktatóanyagokkal szeretne dolgozni, érdemes lehet ezeket az erőforrásokat a helyén hagyni. Ha már nincs rá szükség, az Azure Portal, az Azure CLI vagy az Azure PowerShell használatával törölheti az erőforráscsoportot és annak erőforrásait.
az group delete --name "your resource group name"
Következő lépések
Ebben a rövid útmutatóban létrehozott egy Azure Cosmos-fiókot, egy adatbázist és egy tárolót a Terraformon keresztül, és érvényesítette az üzembe helyezést. Ha többet szeretne megtudni az Azure Cosmos DB-ről és a Terraformról, folytassa az alábbi cikkekkel.
- Olvassa el az Azure Cosmos DB áttekintését.
- További információ a Terraformról.
- További információ az Azure Terraform Providerről.
- Cosmos DB kezelése a Terraformmal
- Kapacitástervezést szeretne végezni az Azure Cosmos DB-be való migráláshoz? A kapacitástervezéshez használhatja a meglévő adatbázisfürt adatait.
- Ha csak a meglévő adatbázisfürt virtuális magjainak és kiszolgálóinak számát ismeri, olvassa el a kérelemegységek becslését virtuális magok vagy vCPU-k használatával.
- Ha ismeri az aktuális adatbázis számítási feladataira vonatkozó tipikus kérelmek arányát, olvassa el a kérelemegységek becslését az Azure Cosmos DB kapacitástervezővel.