Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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
- Wenn Sie nicht über ein Azure-Konto verfügen, erstellen Sie ein kostenloses Konto , bevor Sie beginnen.
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.
Die wichtigsten Terraform-Parameter
In der folgenden Tabelle sind die kritischen Variablen zusammengefasst, die in dieser Schnellstartanleitung verwendet werden, deren Bereich, Einschränkungen und Beispielwerte.
| Parameter | Geltungsbereich | Beschreibung und Einschränkungen | Beispielwert |
|---|---|---|---|
prefix |
Benennung | Präfix, das für alle Ressourcennamen verwendet wird. Muss kleingeschrieben, alphanumerisch und pro Abonnement eindeutig sein. | cosmosdemo |
location |
Ressourcengruppe | Azure-Region für die Ressourcengruppe. Dieser Standort gilt nur für die Ressourcengruppe, nicht für das Cosmos DB-Konto. | eastus |
cosmosdb_account_location |
Cosmos DB-Konto | Azure-Region für das Azure Cosmos DB-Konto. Dies kann sich vom Standort der Ressourcengruppe unterscheiden. | eastus |
throughput |
Datenbank (RU/s) | Bereitgestellter Durchsatz für die SQL-Datenbank in Anforderungseinheiten pro Sekunde (RU/s). Muss sich im Bereich von 400 bis 1.000.000 RU/s befinden. | 400 |
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 {
resource_group {
prevent_deletion_if_contains_resources = false
}
}
}
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
}
Drei Cosmos DB-Ressourcen werden in der Haupt-Terraform-Datei definiert.
Microsoft.DocumentDB/databaseAccounts: Erstellen Sie ein Azure Cosmos-Konto.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases: Erstellen Sie eine Azure Cosmos-Datenbank mit Durchsatz auf Datenbankebene (RU/s).
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers: Erstellen Sie einen Azure Cosmos-Container.
Variablen-Terraform-Datei
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."
}
}
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
Erwartetes Ergebnis: Terraform initialisiert erfolgreich und lädt den Azurerm-Anbieter herunter. - terraform plan
Erwartetes Ergebnis: Die Planausgabe zeigt 3 zum Hinzufügen, 0 zum Ändern, 0 zu zerstören. - terraform apply
Erwartetes Ergebnis: Die endgültige Ausgabe enthält Anwendung abgeschlossen! Ressourcen: 3 hinzugefügt, 0 geändert, 0 entfernt.
- terraform init
Validierung 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"
Erwartetes Ergebnis: Die Ausgabe listet eine Microsoft.DocumentDB/databaseAccounts Ressource zusammen mit ihrer Datenbank und ihrem Container auf.
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"
Erwartetes Ergebnis: Azure CLI bestätigt das Löschen der Ressourcengruppe und listet sie nicht mehr im Abonnement auf.
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.