Mulai Cepat - Membuat database dan kontainer Azure Cosmos DB menggunakan Terraform
BERLAKU UNTUK: NoSQL
Azure Cosmos DB adalah database NoSQL cepat Microsoft dengan API terbuka untuk skala apa pun. Anda dapat menggunakan Azure Cosmos DB untuk membuat dan mengueri database kunci/nilai, dokumen, dan grafik dengan cepat. Tanpa kartu kredit atau langganan Azure, Anda dapat menyiapkan Coba akun Azure Cosmos DB gratis. Mulai cepat ini berfokus pada proses penyebaran melalui Terraform untuk membuat database Azure Cosmos dan kontainer dalam database tersebut. Anda nantinya dapat menyimpan data dalam kontainer ini.
Prasyarat
Langganan Azure atau akun uji coba Azure Cosmos DB gratis
- Jika Anda tidak memiliki Langganan Azure, buat Akun gratis Azure sebelum memulai.
Terraform harus diinstal pada komputer lokal Anda. Instruksi penginstalan dapat ditemukan di sini.
Meninjau File Terraform
File Terraform yang digunakan dalam mulai cepat ini dapat ditemukan di repositori sampel terraform. Buat tiga file di bawah ini: providers.tf, main.tf, dan variables.tf. Variabel dapat diatur dalam baris perintah atau sebagai alternatif dengan file terraforms.tfvars.
File Terraform Penyedia
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
}
}
}
File Terraform Utama
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
}
File Terraform Variabel
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."
}
}
Tiga sumber daya Cosmos DB didefinisikan dalam file terraform utama.
Microsoft.DocumentDB/databaseAccounts: Buat akun Azure Cosmos.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases: Buat database Azure Cosmos.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers: Buat kontainer Azure Cosmos.
Menyebarkan melalui terraform
- Simpan file terraform sebagai main.tf, variables.tf, dan providers.tf ke komputer lokal Anda.
- Masuk ke terminal Anda melalui Azure CLI atau PowerShell
- Menyebarkan melalui perintah Terraform
- terraform init
- rencana terraform
- terraform berlaku
Memvalidasi penyebaran
Gunakan portal Microsoft Azure, Azure CLI, atau Azure PowerShell untuk mencantumkan sumber daya yang disebarkan di grup sumber daya.
az resource list --resource-group "your resource group name"
Membersihkan sumber daya
Jika Anda berencana untuk terus bekerja dengan mulai cepat dan tutorial berikutnya, biarkan sumber daya ini tetap di tempatnya. Saat tidak lagi diperlukan, gunakan portal Azure, Azure CLI, atau Azure PowerShell untuk menghapus grup sumber daya dan sumber dayanya.
az group delete --name "your resource group name"
Langkah berikutnya
Dalam mulai cepat ini, Anda membuat akun Azure Cosmos, database, dan kontainer melalui terraform dan memvalidasi penyebaran. Untuk mempelajari selengkapnya tentang Azure Cosmos DB dan Terraform, lanjutkan ke artikel di bawah ini.
- Baca Ringkasan Azure Cosmos DB.
- Pelajari selengkapnya tentang Terraform.
- Pelajari selengkapnya tentang Penyedia Azure Terraform.
- Mengelola Cosmos DB dengan Terraform
- Mencoba melakukan perencanaan kapasitas untuk migrasi ke Azure Cosmos DB? Anda dapat menggunakan informasi tentang kluster database Anda yang ada saat ini untuk membuat perencanaan kapasitas.
- Jika Anda hanya mengetahui jumlah vCore dan server di kluster database yang ada, bacalah mengenai memperkirakan unit permintaan menggunakan vCore atau vCPU.
- Jika Anda mengetahui tingkat permintaan umum untuk beban kerja database Anda saat ini, baca tentang memperkirakan unit permintaan menggunakan perencana kapasitas Azure Cosmos DB.