Schnellstart: Erstellen einer Azure Cosmos DB-Datenbank und eines Containers mit Terraform
GILT FÜR: NoSQL
Azure Cosmos DB ist die schnelle NoSQL-Datenbank von Microsoft mit offenen APIs für jede Größenordnung. Mit Azure Cosmos DB können Sie schnell Schlüssel/Wert-, Dokument- und Graphdatenbanken erstellen und abfragen. Sie können ein kostenloses Azure Cosmos DB-Testkonto einrichten, ohne eine Kreditkarte oder ein Azure-Abonnement zu benötigen. In dieser Schnellstartanleitung wird das Bereitstellen mittels Terraform zur Erstellung einer Azure Cosmos-Datenbank und eines Containers in dieser Datenbank behandelt. In diesem Container können später Daten gespeichert werden.
Voraussetzungen
Azure-Abonnement oder kostenloses Azure Cosmos DB-Testkonto
- Sollten Sie über kein Azure-Abonnement verfügen, können Sie zunächst ein kostenloses Azure-Konto erstellen.
Terraform sollte auf Ihrem lokalen Computer installiert sein. Installationsanweisungen finden Sie hier.
Überprüfen der Terraform-Datei
Die in dieser Schnellstartanleitung verwendeten Terraform-Dateien finden Sie im Terraform-Beispielrepository. Erstellen Sie die folgenden drei Dateien: „providers.tf“, „main.tf“ und „variables.tf“. Variablen können in der Befehlszeile oder alternativ mit einer Datei „terraforms.tfvars“ festgelegt werden.
Terraform-Datei des Anbieters
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 {}
}
Haupt-Terraform-Datei
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
}
Variablen-Terraform-Datei
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."
}
}
Drei Cosmos DB-Ressourcen werden in der Haupt-Terraform-Datei definiert.
Microsoft.DocumentDB/databaseAccounts: Dient zum Erstellen eines Azure Cosmos-Kontos.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases: Dient zum Erstellen einer Azure Cosmos-Datenbank.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers: Dient zum Erstellen eines Azure Cosmos-Containers.
Bereitstellen über Terraform
- Speichern Sie die Terraform-Dateien als „main.tf“, „variables.tf“ und „providers.tf“ auf Ihrem lokalen Computer.
- Melden Sie sich über Azure CLI oder PowerShell bei Ihrem Terminal an.
- Bereitstellen über Terraform-Befehle
- terraform init
- terraform plan
- terraform apply
Überprüfen der Bereitstellung
Verwenden Sie das Azure-Portal, die Azure CLI oder Azure PowerShell, um die bereitgestellten Ressourcen in der Ressourcengruppe aufzulisten.
az resource list --resource-group "your resource group name"
Bereinigen von Ressourcen
Falls Sie mit weiteren Schnellstartanleitungen und Tutorials fortfahren möchten, sollten Sie die Ressourcen nicht bereinigen. Wenn die Ressourcengruppe und deren Ressourcen nicht mehr benötigt werden, löschen Sie sie über das Azure-Portal, die Azure CLI oder Azure PowerShell.
az group delete --name "your resource group name"
Nächste Schritte
In diesem Schnellstart haben Sie mit Terraform ein Azure Cosmos-Konto, eine Datenbank und einen Container erstellt und die Bereitstellung überprüft. Weitere Informationen zu Azure Cosmos DB und Terraform finden Sie in den folgenden Artikeln.
- Lesen Sie den Artikel Willkommen bei Azure Cosmos DB.
- Weitere Informationen zu Terraform.
- Erfahren Sie mehr über den Azure Terraform-Anbieter.
- Verwalten von Cosmos DB mit Terraform
- Versuchen Sie, die Kapazitätsplanung für eine Migration zu Azure Cosmos DB durchzuführen? Sie können Informationen zu Ihrem vorhandenen Datenbankcluster für die Kapazitätsplanung verwenden.
- Wenn Sie nur die Anzahl der virtuellen Kerne und Server in Ihrem vorhandenen Datenbankcluster kennen, lesen Sie die Informationen zum Schätzen von Anforderungseinheiten mithilfe von virtuellen Kernen oder virtuellen CPUs.
- Sollten Sie die typischen Anforderungsraten Ihrer aktuellen Datenbankworkload kennen, lesen Sie die Informationen zum Schätzen von Anforderungseinheiten mit dem Azure Cosmos DB-Kapazitätsplaner.