Megosztás a következőn keresztül:


Rövid útmutató – Azure Cosmos DB-adatbázis és -tároló létrehozása a Terraform használatával

A KÖVETKEZŐRE VONATKOZIK: NoSQL

Az Azure Cosmos DB a Microsoft gyors NoSQL-adatbázisa, amely bármilyen mérethez elérhető API-kat biztosít. Az Azure Cosmos DB segítségével gyorsan hozhat létre és kérdezhet le kulcs-/értékadatbázisokat, dokumentum-adatbázisokat és gráfadatbázisokat. Hitelkártya vagy Azure-előfizetés nélkül beállíthat egy ingyenes Azure Cosmos DB-fiókot. Ez a rövid útmutató az Azure Cosmos-adatbázis és az adatbázison belüli tároló létrehozásához a Terraformon keresztüli üzembe helyezési folyamatra összpontosít. Később ebben a tárolóban tárolhatja az adatokat.

Előfeltételek

Azure-előfizetés vagy ingyenes Azure Cosmos DB-próbafiók

A Terraformot telepíteni kell a helyi számítógépre. A telepítési utasítások itt találhatók.

A Terraform-fájl áttekintése

Az ebben a rövid útmutatóban használt Terraform-fájlok a Terraform-minták adattárában találhatók. Hozza létre az alábbi három fájlt: providers.tf, main.tf és variables.tf. A változók parancssorban vagy terraforms.tfvars fájllal is beállíthatók.

Szolgáltatói Terraform-fájl

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
    }
  }
}

Fő Terraform-fájl

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
}

Változók Terraform-fájl

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."
  }
}

A fő terraform fájlban három Cosmos DB-erőforrás van definiálva.

Üzembe helyezés terraformon keresztül

  1. Mentse a terraform fájlokat main.tf, variables.tf és providers.tf a helyi számítógépre.
  2. Bejelentkezés a terminálba az Azure CLI-vel vagy a PowerShell-lel
  3. Üzembe helyezés Terraform-parancsokkal
    • terraform init
    • terraform-terv
    • terraform apply

Az üzembe helyezés ellenőrzése

Az Azure Portal, az Azure CLI vagy az Azure PowerShell használatával listázhatja az erőforráscsoportban üzembe helyezett erőforrásokat.

az resource list --resource-group "your resource group name"

Az erőforrások eltávolítása

Ha további rövid útmutatókkal és oktatóanyagokkal szeretne dolgozni, érdemes lehet ezeket az erőforrásokat a helyén hagyni. Ha már nincs rá szükség, az Azure Portal, az Azure CLI vagy az Azure PowerShell használatával törölheti az erőforráscsoportot és annak erőforrásait.

az group delete --name "your resource group name"

Következő lépések

Ebben a rövid útmutatóban létrehozott egy Azure Cosmos-fiókot, egy adatbázist és egy tárolót a Terraformon keresztül, és érvényesítette az üzembe helyezést. Ha többet szeretne megtudni az Azure Cosmos DB-ről és a Terraformról, folytassa az alábbi cikkekkel.

  • Olvassa el az Azure Cosmos DB áttekintését.
  • További információ a Terraformról.
  • További információ az Azure Terraform Providerről.
  • Cosmos DB kezelése a Terraformmal
  • Kapacitástervezést szeretne végezni az Azure Cosmos DB-be való migráláshoz? A kapacitástervezéshez használhatja a meglévő adatbázisfürt adatait.
    • Ha csak a meglévő adatbázisfürt virtuális magjainak és kiszolgálóinak számát ismeri, olvassa el a kérelemegységek becslését virtuális magok vagy vCPU-k használatával.
    • Ha ismeri az aktuális adatbázis számítási feladataira vonatkozó tipikus kérelmek arányát, olvassa el a kérelemegységek becslését az Azure Cosmos DB kapacitástervezővel.