Terraform'Azure Geliştirici CLI'sı için kod aracı olarak altyapı olarak kullanma

Azure Geliştirici CLI (azd), aşağıdakiler dahil olmak üzere birden çok altyapı olarak kod (IaC) sağlayıcısını destekler:

Varsayılan olarak, azd Bicep IaC sağlayıcısı olarak kabul eder. Projeniz için en uygun IaC sağlayıcısını belirleme konusunda yardım için Terraform ve Bicep Karşılaştırma makalesine bakın.

Not

Terraform hala beta aşamasında. Özellik sürümü oluşturma ve sürüm stratejisi sayfasında alfa ve beta özellik desteği hakkında daha fazla bilgi edinin

Önkoşullar

Important

Terraform dağıtımları, azd kullandığınızda bile Azure CLI'da oturum açmanızı gerektirir. Terraform azurerm sağlayıcısı varsayılan olarak Azure CLI aracılığıyla kimlik doğrulaması yapar ve kimlik bilgisi önbelleğindeki azd belirteçleri okumaz. Yalnızca azd auth login çalıştırırsanız, azd up sağlama adımında ERROR: Please run 'az login' to setup account hatasıyla başarısız olur. Önerilen oturum açma akışı için bkz. Azure için kimlik doğrulaması.

Azure'da kimlik doğrulaması

Terraform kimlik doğrulaması için Azure CLI kullandığından, azd komutunu çalıştırmadan önce hem az hem de azd up üzerinde oturum açmış olmanız gerekir. Bunu iki yoldan biriyle yapabilirsiniz.

azd öğesini kimlik doğrulamayı Azure CLI'ye devredecek şekilde yapılandırın. Bu ayar ile az login bir kez oturum açmanıza ve her iki araç için de aynı kimlik bilgilerini kullanmanıza olanak tanır.

azd config set auth.useAzCliAuth true
az login

Birden çok kiracıyla çalışıyorsanız parametresini --tenant ekleyin:

az login --tenant <tenant-id>

2. Seçenek: Her araçta ayrı ayrı oturum açma

azd ve Azure CLI kimlik doğrulamalarını birbirinden bağımsız tutmayı tercih ediyorsanız, her araçta kendi komutunu kullanarak oturum açın:

azd auth login
az login

Belirteçlerden herhangi birinin süresi dolduğunda her iki oturumu da yenilemeniz gerekir.

Terraform'ı IaC sağlayıcısı olarak yapılandırma

  1. Projenizin kökünde bulunan azure.yaml dosyasını açın ve Bicep varsayılanı geçersiz kılmak için aşağıdaki satırlara sahip olduğunuzdan emin olun:

    infra:
      provider: terraform
    
  2. Tüm dosyalarınızı .tf projenizin infra kökünde bulunan dizine ekleyin.

  3. azd up'i çalıştırın.

Not

Terraform as IaC Provider: Node.js ve Terraform ile bu azd şablonuna göz atın.

azd pipeline config Terraform için

Terraform, yönetilen altyapınız ve yapılandırmanız hakkındaki durumu depolar. Bu durum dosyası nedeniyle, GitHub'da dağıtım işlem hattınızı ayarlamadan önce uzak durumu etkinleştirmeniz ve azd pipeline config komutunu çalıştırmanız gerekir.

Varsayılan olarak, azd yerel durum dosyasının kullanıldığını varsayar. Uzak durumu etkinleştirmeden önce azd up çalıştırdıysanız, azd down komutunu çalıştırmanız ve uzak durum dosyasına geçmeniz gerekir.

Yerel ve uzak durum

Terraform, yönettiği kaynakları izlemek için kalıcı durum verilerini kullanır.

Uzak durumu etkinleştirme senaryoları:

  • Durum verilerine paylaşılan erişime izin vermek ve bu altyapı kaynakları koleksiyonu üzerinde birden çok kişinin birlikte çalışmasına izin vermek için
  • Durum dosyasına dahil edilen hassas bilgilerin açığa çıkmasına engel olmak için
  • Durumu yerel olarak depolama nedeniyle yanlışlıkla silme olasılığını azaltmak için

Uzak durumu etkinleştirme

  1. Uzak durum depolama hesabı yapılandırdığınızdan emin olun.

  2. klasörüne adlı provider.conf.jsoninfra yeni bir dosya ekleyin.

    {
        "storage_account_name": "${RS_STORAGE_ACCOUNT}",
        "container_name": "${RS_CONTAINER_NAME}",
        "key": "azd/azdremotetest.tfstate",
        "resource_group_name": "${RS_RESOURCE_GROUP}"
    }
    
  3. provider.tf klasöründe bulunan infra güncellemesini, arka ucu uzak olacak şekilde ayarla.

    # Configure the Azure Provider
    terraform {
      required_version = ">= 1.1.7, < 2.0.0"
      backend "azurerm" {
      }
    
  4. Yapılandırma eklemek için azd env set <key> <value> çalıştırın ve .env dosyasını kullanın. Örneğin:

    azd env set RS_STORAGE_ACCOUNT your_storage_account_name
    azd env set RS_CONTAINER_NAME your_terraform_container_name
    azd env set RS_RESOURCE_GROUP your_storage_account_resource_group
    
  5. Bir sonraki azd komutu her zamanki iş akışınıza göre çalıştırın. Uzak durum algılandığında, azd yapılandırılmış arka uç yapılandırmasıyla Terraform'u başlatır.

  6. Ortamı ekip arkadaşlarınızla paylaşmak için, yerel sistemde ortam ayarlarını yenilemek için azd env refresh -e <environmentName> komutunu çalıştırdıklarından emin olun ve .env dosyasında yapılandırma eklemek için 4. Adımı uygulayın.

Ayrıca bkz.

Sonraki adımlar