Szybki start — tworzenie bazy danych i kontenera usługi Azure Cosmos DB przy użyciu narzędzia Terraform
DOTYCZY: NoSQL
Usługa Azure Cosmos DB to szybka baza danych NoSQL firmy Microsoft z otwartymi interfejsami API dla dowolnej skali. Usługa Azure Cosmos DB umożliwia szybkie tworzenie baz danych kluczy/wartości, baz danych dokumentów i grafów oraz wykonywanie zapytań względem nich. Bez karty kredytowej lub subskrypcji platformy Azure możesz skonfigurować bezpłatne konto Wypróbuj usługę Azure Cosmos DB. Ten przewodnik Szybki start koncentruje się na procesie wdrożeń za pośrednictwem narzędzia Terraform w celu utworzenia bazy danych Usługi Azure Cosmos i kontenera w tej bazie danych. Później można przechowywać dane w tym kontenerze.
Wymagania wstępne
Subskrypcja platformy Azure lub bezpłatne konto wersji próbnej usługi Azure Cosmos DB
- Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.
Program Terraform powinien być zainstalowany na komputerze lokalnym. Instrukcje instalacji można znaleźć tutaj.
Zapoznaj się z plikiem Terraform
Pliki programu Terraform używane w tym przewodniku Szybki start można znaleźć w repozytorium przykładów terraform. Utwórz następujące trzy pliki: providers.tf, main.tf i variables.tf. Zmienne można ustawiać w wierszu polecenia lub alternatywnie za pomocą pliku terraforms.tfvars.
Plik narzędzia Terraform dostawcy
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 {}
}
Główny plik programu Terraform
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
}
Plik Terraform zmiennych
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."
}
}
Trzy zasoby usługi Cosmos DB są zdefiniowane w głównym pliku terraform.
Microsoft.DocumentDB/databaseAccounts: tworzenie konta usługi Azure Cosmos.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases: tworzenie bazy danych usługi Azure Cosmos.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers: Tworzenie kontenera usługi Azure Cosmos.
Wdrażanie za pomocą narzędzia terraform
- Zapisz pliki terraform jako main.tf, variables.tf i providers.tf na komputerze lokalnym.
- Zaloguj się do terminalu za pomocą interfejsu wiersza polecenia platformy Azure lub programu PowerShell
- Wdrażanie za pomocą poleceń narzędzia Terraform
- terraform init
- plan terraform
- zastosowanie narzędzia terraform
Weryfikowanie wdrożenia
Użyj witryny Azure Portal, interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell, aby wyświetlić listę wdrożonych zasobów w grupie zasobów.
az resource list --resource-group "your resource group name"
Czyszczenie zasobów
Jeśli planujesz kontynuować pracę z kolejnymi przewodnikami Szybki start i samouczkami, możesz pozostawić te zasoby na miejscu. Gdy grupa zasobów i jej zasoby nie będą już potrzebne, użyj witryny Azure Portal, interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell.
az group delete --name "your resource group name"
Następne kroki
W tym przewodniku Szybki start utworzono konto usługi Azure Cosmos, bazę danych i kontener za pośrednictwem narzędzia terraform i sprawdzono wdrożenie. Aby dowiedzieć się więcej na temat usług Azure Cosmos DB i Terraform, przejdź do poniższych artykułów.
- Przeczytaj omówienie usługi Azure Cosmos DB.
- Dowiedz się więcej o programie Terraform.
- Dowiedz się więcej o dostawcy programu Terraform platformy Azure.
- Zarządzanie usługą Cosmos DB przy użyciu narzędzia Terraform
- Próbujesz zaplanować pojemność migracji do usługi Azure Cosmos DB? Informacje o istniejącym klastrze bazy danych można użyć do planowania pojemności.
- Jeśli wiesz już, ile rdzeni wirtualnych i serwerów znajduje się w istniejącym klastrze bazy danych, przeczytaj o szacowaniu jednostek żądań przy użyciu rdzeni wirtualnych lub procesorów wirtualnych.
- Jeśli znasz typowe stawki żądań dla bieżącego obciążenia bazy danych, przeczytaj o szacowaniu jednostek żądań przy użyciu planisty pojemności usługi Azure Cosmos DB.