التشغيل السريع - إنشاء قاعدة بيانات وحاوية Azure Cosmos DB باستخدام Terraform
ينطبق على: NoSQL
قاعدة بيانات Azure المخصصةهي قاعدة بيانات NoSQL السريعة من Microsoft مع واجهات برمجة تطبيقات مفتوحة لأي سعة. يمكنك استخدام Azure Cosmos DB لإنشاء قواعد بيانات المفتاح / القيمة والاستعلام عنها بسرعة وقواعد بيانات المستندات وقواعد بيانات الرسم البياني. بدون بطاقة ائتمان أو اشتراك Azure، يمكنك إعداد حساب تجربة Azure Cosmos DB مجاني. يركز هذا التشغيل السريع على عملية النشر عبر Terraform لإنشاء قاعدة بيانات Azure Cosmos وحاوية داخل قاعدة البيانات هذه. يمكنك لاحقًا تخزين البيانات في هذه الحاوية.
المتطلبات الأساسية
اشتراك Azure أو حساب تجريبي مجاني من Azure Cosmos DB
- إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.
يجب تثبيت Terraform على الكمبيوتر المحلي. يمكن العثور على إرشادات التثبيت هنا.
مراجعة ملف Terraform
يمكن العثور على ملفات Terraform المستخدمة في هذا التشغيل السريع في مستودع نماذج terraform. إنشاء الملفات الثلاثة التالية: providers.tf main.tf variables.tf. يمكن تعيين المتغيرات في سطر الأوامر أو بدلا من ذلك مع ملف terraforms.tfvars.
ملف Terraform الموفر
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
}
}
}
ملف 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
}
متغيرات ملف Terraform
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."
}
}
يتم تعريف ثلاثة موارد Cosmos DB في ملف terraform الرئيسي.
Microsoft.DocumentDB / databaseAccounts: أنشئ حساب Azure Cosmos.
Microsoft.DocumentDB / databaseAccounts / sqlDatabases : أنشئ Azure Cosmos DB.
Microsoft.DocumentDB / databaseAccounts / sqlDatabases / container: قم بإنشاء حاوية Azure Cosmos.
النشر عبر terraform
- احفظ ملفات terraform كملفات main.tf variables.tf providers.tf إلى الكمبيوتر المحلي.
- تسجيل الدخول إلى المحطة الطرفية الخاصة بك عبر Azure CLI أو PowerShell
- النشر عبر أوامر Terraform
- terraform init
- خطة terraform
- تطبيق terraform
التحقُّق من صحة عملية النشر
استخدم مدخل Microsoft Azure أو Azure CLI أو Azure PowerShell لإدراج الموارد الموزعة في مجموعة الموارد.
az resource list --resource-group "your resource group name"
تنظيف الموارد
إذا كنت تخطط لمواصلة العمل بالبدايات السريعة والبرامج التعليمية اللاحقة، فقد ترغب في ترك هذه الموارد في مكانها. عند عدم الحاجة، استخدم مدخل Azure أو Azure CLI أو Azure PowerShell لحذف مجموعة الموارد وموارده.
az group delete --name "your resource group name"
الخطوات التالية
في هذا التشغيل السريع، قمت بإنشاء حساب Azure Cosmos وقاعدة بيانات وحاوية عبر terraform والتحقق من صحة النشر. لمعرفة المزيد حول Azure Cosmos DB وTerraform، تابع إلى المقالات أدناه.
- اقرأ نظرة عامة على Azure Cosmos DB.
- تعرف على المزيد حول Terraform.
- تعرف على المزيد حول موفر Azure Terraform.
- إدارة Cosmos DB باستخدام Terraform
- هل تحاول القيام بتخطيط السعة للترحيل إلى Azure Cosmos DB؟ يمكنك استخدام معلومات حول نظام مجموعة قاعدة البيانات الموجودة لديك لـ تخطيط السعة.
- في حال كان كل ما تعرفه هو عدد vCores والخوادم في مجموعة قاعدة البيانات الحالية، فاقرأ عن تقدير وحدات الطلب باستخدام vCores أو vCPUs.
- إذا كنت تعرف معدلات الطلب النموذجية لحمل عمل قاعدة البيانات الحالية، فاقرأ حول تقدير وحدات الطلب باستخدام مخطط سعة Azure Cosmos DB.