Azure Cosmos DB'yi Azure Container Instances

Bu makalede Terraform kullanarak Azure Cosmos DB'yi Azure Container Instances.

Bu makalede şunları öğreneceksiniz:

  • Azure Cosmos DB örneği oluşturma
  • Azure Container Instances oluşturma
  • Bu iki kaynak arasında çalışan bir uygulama oluşturma

1. Ortamınızı yapılandırma

  • Azure aboneliği: Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

2. İlk yapılandırmayı oluşturma

Bu bölümde, Azure Cosmos DB örneği için yapılandırmayı oluşturabilirsiniz.

  1. Azure Portal’ında oturum açın.

  2. Dosyayı Azure Cloud Shell.

  3. Düzenleyiciyi Cloud Shell:

    code main.tf
    
  4. Bu adımda yapılandırmasını birkaç Azure kaynağı modeller. Bu kaynaklar arasında bir Azure kaynak grubu ve bir Azure Cosmos veritabanı örneği yer alır. Benzersiz bir veritabanı örneği adı oluşturmak için Cosmos tamsayı kullanılır. Birkaç Cosmos veritabanı ayarı da yapılandırılır. Daha fazla bilgi için bkz. Cosmos DB Terraform başvurusu. Dosyaya aşağıdaki kodu girin:

    resource "azurerm_resource_group" "vote-resource-group" {
      name     = "vote-resource-group"
      location = "westus"
    }
    
    resource "random_integer" "ri" {
      min = 10000
      max = 99999
    }
    
    resource "azurerm_cosmosdb_account" "vote-cosmos-db" {
      name                = "tfex-cosmos-db-${random_integer.ri.result}"
      location            = azurerm_resource_group.vote-resource-group.location
      resource_group_name = azurerm_resource_group.vote-resource-group.name
      offer_type          = "Standard"
      kind                = "GlobalDocumentDB"
    
      consistency_policy {
        consistency_level       = "BoundedStaleness"
        max_interval_in_seconds = 10
        max_staleness_prefix    = 200
      }
    
      geo_location {
        location          = "westus"
        failover_priority = 0
      }
    }
    
  5. Dosyayı kaydedin ( Ctrl > S) ve düzenleyiciden çıkın (>).

3. Yapılandırmayı çalıştırma

Bu bölümde, yapılandırmayı çalıştırmak için çeşitli Terraform komutlarını kullanırsınız.

  1. terraform init komutu çalışma dizinini başlatıyor. Aşağıdaki komutu Cloud Shell:

    terraform init
    
  2. Terraform plan komutu, yapılandırma söz dizimlerini doğrulamak için kullanılabilir. -outparametresi, sonuçları bir dosyaya yönlendirer. Çıktı dosyası daha sonra yapılandırmayı uygulamak için kullanılabilir. Aşağıdaki komutu Cloud Shell:

    terraform plan --out plan.out
    
  3. Terraform apply komutu yapılandırmayı uygulamak için kullanılır. Önceki adımdan çıkış dosyası belirtilir. Bu komut, Azure kaynaklarının oluşturularak oluşturulur. Aşağıdaki komutu Cloud Shell:

    terraform apply plan.out
    
  4. Uygulamanın içindeki sonuçları doğrulamak Azure portal yeni kaynak grubuna göz at. Yeni Azure Cosmos DB örneği yeni kaynak grubundadır.

4. Güncelleştirme yapılandırması

Bu bölümde, yapılandırmanın Azure Container Instances içerecek şekilde nasıl güncelleştiril olduğu gösterir. Kapsayıcı, Cosmos DB'ye veri yazan ve yazan bir Cosmos çalıştırır.

  1. Düzenleyiciyi Cloud Shell:

    code main.tf
    
  2. Bu adımda yapılandırma iki ortam değişkeni ayarlar: COSMOS_DB_ENDPOINT ve COSMOS_DB_MASTERKEY . Bu değişkenler veritabanına erişmek için konum ve anahtarı tutar. Bu değişkenlerin değerleri, önceki adımda oluşturulan veritabanı örneğinden elde edilir. Bu işlem ilişkilendirme olarak bilinir. Terraform ilişkilendirmesi hakkında daha fazla bilgi edinmek için bkz. İlişkileme Söz Dizimi. Yapılandırma ayrıca kapsayıcı örneğinin tam etki alanı adını (FQDN) döndüren bir çıkış bloğu içerir. Dosyaya aşağıdaki kodu girin:

    resource "azurerm_container_group" "vote-aci" {
      name                = "vote-aci"
      location            = azurerm_resource_group.vote-resource-group.location
      resource_group_name = azurerm_resource_group.vote-resource-group.name
      ip_address_type     = "public"
      dns_name_label      = "vote-aci"
      os_type             = "linux"
    
      container {
        name   = "vote-aci"
        image  = "microsoft/azure-vote-front:cosmosdb"
        cpu    = "0.5"
        memory = "1.5"
        ports {
          port     = 80
          protocol = "TCP"
        }
    
        secure_environment_variables = {
          "COSMOS_DB_ENDPOINT"  = azurerm_cosmosdb_account.vote-cosmos-db.endpoint
          "COSMOS_DB_MASTERKEY" = azurerm_cosmosdb_account.vote-cosmos-db.primary_master_key
          "TITLE"               = "Azure Voting App"
          "VOTE1VALUE"          = "Cats"
          "VOTE2VALUE"          = "Dogs"
        }
      }
    }
    
    output "dns" {
      value = azurerm_container_group.vote-aci.fqdn
    }
    
  3. Dosyayı kaydedin ( Ctrl > S) ve düzenleyiciden çıkın (>).

  4. Önceki bölümde yaptığınız gibi, yapılacak değişiklikleri görsel olarak görselleştirmek için aşağıdaki komutu çalıştırın:

    terraform plan --out plan.out
    
  5. Yapılandırmayı terraform apply uygulamak için komutunu çalıştırın.

    terraform apply plan.out
    
  6. Kapsayıcı örneği FQDN'lerini not edin.

5. Uygulamayı test

Uygulamayı test etmek için kapsayıcı örneğinin FQDN'sına gidin. Aşağıdaki çıkışa benzer sonuçlar görüyor gerekir:

Azure oy uygulaması

6. Kaynakları temizleme

Artık gerekli değilken, bu makalede oluşturulan kaynakları silin.

Terraform destroy komutunu çalıştırarak bu makalede oluşturulan Azure kaynaklarını kaldırın:

terraform destroy -auto-approve

Azure'da Terraform sorunlarını giderme

Azure'da Terraform kullanırken karşılaşılan yaygın sorunları giderme

Sonraki adımlar