Azure Geliştirici CLI şablonlarına genel bakış

Azure Geliştirici CLI (azd) şablonu, kuralları izleyen azd bir kod deposudur. Proje yapılandırmasını, kod olarak altyapıyı ve isteğe bağlı uygulama kaynağını birleştirerek yinelenebilir Azure ortamlar ve dağıtımlar oluşturabilirsiniz.

Şablonlar, aşağıdakileri içeren farklı proje türlerini destekleyebilir:

  • Bir veya daha fazla dağıtılabilir hizmet içeren eksiksiz bir uygulama.
  • Uygulama kodu olmayan yalnızca altyapı çözümü.
  • Başka bir geliştiricinin başlatabileceği ve genişletebileceği yeniden kullanılabilir bir başlangıç noktası.
  • azd ile kaynak sağlama ve dağıtım için hazırladığınız mevcut bir proje.

Bu makalede, bir şablonun yapısı ve azd komutlarının onun dosyalarını nasıl kullandığı açıklanmaktadır.

Neden şablon kullanmalısınız?

Şablon, bir projeyi Azure çalıştırmak için gereken kararları yakalar. Projeye bağlı olarak şunları tanımlayabilir:

  • Azure kaynakları ve bunların yapılandırması.
  • Dağıtılabilir uygulama hizmetleri ve paketleme yönergeleri.
  • Uygulama hizmetleri ile Azure kaynakları arasındaki bağlantılar.
  • Ortama özgü parametreler ve çıkışlar.
  • Yerel geliştirme, sürekli entegrasyon ve sürekli teslimat yapılandırması.

Yapılandırma projede depolandığından ekipler kaynak denetimindeki değişiklikleri gözden geçirebilir ve tutarlı geliştirme, test ve üretim ortamları oluşturabilir.

azd şablonu nasıl kullanır?

Şablondaki dosyalar, azd iş akışının farklı aşamalarını destekler:

  • azd init projeyi başlatır ve bir azd ortam oluşturur. Ayrıca GitHub Copilot kullanarak bir başlangıç şablonu oluşturabilir veya var olan bir şablonu kopyalayabilirsiniz.
  • azd provisionaltyapı tanımlarını değerlendirir ve Azure kaynakları oluşturur veya güncelleştirir.
  • azd package, azure.yaml'e göre dağıtılabilir uygulama hizmetlerini hazırlar.
  • azd deployher hizmeti kendi Azure ana bilgisayarıyla ilişkilendirir ve uygulama paketini dağıtır.
  • azd up sağlama, paketleme ve dağıtım aşamalarını birleşik bir iş akışı olarak çalıştırır.

Şablon dosyaları bu işlem boyunca normal kaynak dosyaları olarak kalır. Bunları projenin geri kalanıyla gözden geçirebilir, düzenleyebilir ve sürüme ekleyebilirsiniz.

Azure Geliştirici CLI şablon yapısını keşfetme

azd şablonlar, ek yapılandırma ve altyapı varlıklarına sahip standart kod depolarıdır. Çoğu şablon aşağıdaki yapıyı kullanır:

  • azure.yaml file - Projeyi tanımlar ve dağıtılabilir kaynak dizinlerini Azure kaynaklara eşler.
  • infra folder - Azure kaynaklarını oluşturan Bicep veya Terraform kod olarak altyapı dosyalarını içerir.
  • src folder - Yaygın olarak dağıtılabilir uygulama kaynak kodunu içerir. Yalnızca altyapı şablonları uygulama kaynağını atlayabilir ve uygulama şablonları diğer kaynak dizin adlarını kullanabilir.
  • .azure folder - tarafından azdoluşturulan yerel ortamları ve değerleri içerir. Bu klasör yerel proje durumudur ve normalde yeniden kullanılabilir bir şablonun parçası olarak paylaşılmaz.

Örneğin, ortak azd bir şablon aşağıdaki klasör yapısıyla eşleşebilir:

contoso-project/
├── azure.yaml                 # azd project and service configuration
├── infra/
│   ├── main.bicep            # Infrastructure entry point
│   └── main.parameters.json  # Maps azd values to Bicep parameters
├── src/                      # Optional application source
│   ├── api/
│   └── web/
├── .github/workflows/        # Optional GitHub Actions pipelines
└── .azure/                   # Local environment state; don't distribute

azd şablonlar isteğe bağlı olarak aşağıdaki klasörlerden birini veya daha fazlasını içerir:

  • .github folder - GitHub Actions için CI/CD iş akışı dosyalarını tutar.
  • .azdo klasör - CI/CD için Azure Pipelines kullanmaya karar verirseniz, bu klasördeki iş akışı yapılandırma dosyalarını tanımlayın.
  • .devcontainer folder - Proje için bir geliştirme kapsayıcısı ortamı tanımlar.

Aşağıdaki diyagramda birincil şablon varlıklarının birlikte nasıl çalıştığı gösterilmektedir:

flowchart LR
AZ[azure.yaml] -->|Defines services| SRC[Application source]
AZ -->|Selects provider and path| INFRA[Infrastructure as code]
INFRA -->|Provisions| RES[Azure resources]
INFRA -->|Exports values| ENV[azd environment]
ENV -->|Configures| SRC
AZ -->|Maps services to| RES

Gerekli ve isteğe bağlı varlıklar

Tam yapı projeye göre değişir, ancak çoğu şablon aşağıdaki varlıkları kullanır.

azure.yaml

Dosya azure.yaml , birincil proje yapılandırma dosyasıdır. Proje adını tanımlar ve dağıtılabilir hizmetleri, altyapı sağlayıcılarını, kancaları, iş akışlarını ve diğer azd davranışları tanımlayabilir.

Bir uygulama hizmeti azure.yaml için yaygın olarak şunları tanımlar:

  • Uygulamanın kaynak yolu.
  • Programlama dili veya paketleme stratejisi.
  • Uygulamayı barındıran Azure hizmeti.
  • Derleme, dağıtım, konteyner veya Kubernetes ayarları.

Yalnızca altyapı şablonları uygulama hizmetlerini atlayabilir. Yapılandırma modelinin tamamı için şemayaazure.yaml bakın.

Aşağıdaki örnek iki uygulama hizmetini tanımlar. Hizmet adları, kaynak yolları, diller ve barındırma hedefleri nelerin paketlenip nereye dağıtılacağına ilişkin bilgi azd sağlar:

name: store
services:
  api:
    project: ./src/api
    language: js
    host: containerapp
  web:
    project: ./src/web
    language: js
    host: staticwebapp

Kod olarak altyapı

Şablonların çoğu Bicep veya Terraform dosyaları içeren bir infra dizin içerir. Bu dosyalar projenin gerektirdiği Azure kaynaklarını, rol atamalarını, ağ, uygulama ayarlarını ve dağıtım çıkışlarını tanımlar.

Varsayılan Bicep sağlayıcısında, azd genellikle dağıtım giriş noktası olarak infra/main.bicep kullanır ve azd ortam değerlerini Bicep parametrelerine eşlemek için infra/main.parameters.json kullanır. Terraform şablonlarında genellikle infra/main.tf ve ilgili Terraform dosyaları kullanılır.

Örneğin, bir Bicep parametre dosyası, azd ile seçilen değerleri altyapı dağıtımına geçirebilir:

{
  "parameters": {
    "environmentName": { "value": "${AZURE_ENV_NAME}" },
    "location": { "value": "${AZURE_LOCATION}" }
  }
}

Bicep sağlama tamamlandığında, azd giriş noktasından gelen çıkışları ortam değerleri olarak depolar. Uygulama hizmetleri ve kancalar kaynak uç noktaları, adlar ve diğer çalışma zamanı yapılandırması için bu değerleri kullanabilir.

output API_ENDPOINT string = api.outputs.uri

Uygulama kaynağı

Uygulama kaynağı isteğe bağlıdır. Bir şablon dağıtılabilir hizmetler içerdiğinde azure.yaml içindeki her hizmet tanımı kaynak dizinine işaret eder. Şablon, altında srchizmetleri düzenleyebilir, deponun başka bir yerinde dizinleri kullanabilir veya bir hizmeti depo köküne işaret edebilir.

Klasör adının kendisi önemli değildir. project içindeki azure.yaml değeri, her hizmetin nerede bulunacağı azd belirler.

Ortam ayarları

Dizin yerel .azure ortam durumunu ve tarafından azdoluşturulan değerleri içerir. Birden çok ortam için abonelik, konum, kaynak adı, uç nokta ve dağıtım çıkış değerleri içerebilir.

Bu dizini yeniden kullanılabilir bir şablon varlığı yerine yerel durum olarak değerlendirin. Gizli bilgiler veya ortama özgü değerler içeren ortam dosyalarını commit etmeyin.

Destekleyici varlıklar

Şablonlar şunları da içerebilir:

  • GitHub Actions veya Azure Pipelines tanımları.
  • Docker dosyaları ve kapsayıcı yapılandırmaları.
  • Geliştirme konteyneri yapılandırması.
  • Komut ve hizmet kancaları.
  • Testler, betikler ve proje belgeleri.

Bu varlıklar isteğe bağlıdır ve yalnızca hedeflenen şablon deneyimini desteklediklerinde dahil edilmelidir.

Hizmet ve kaynak ilişkilendirmesi

Bir uygulama hizmetini dağıtmak için içindeki azd tanımını azure.yaml sağlanan bir Azure kaynağıyla ilişkilendirmesi gerekir. Varsayılan olarak, azd etiketi hizmet adıyla azd-service-name eşleşen bir kaynak bulur.

Örneğin, api adlı bir hizmet, azd-service-name: api ile etiketlenmiş bir kaynakla eşlenir. Bunun yerine hizmet özelliğini kullanarak resourceName dağıtım hedefini açıkça tanımlayabilirsiniz.

Aşağıdaki Bicep ifadesi bulma etiketini kaynağın mevcut etiketlerine ekler:

tags: union(tags, {
  'azd-service-name': 'api'
})

Bir şablonu düzenlerken hizmet adlarını, kaynak bulma ayarlarını, altyapı çıkışlarını ve uygulama ortamı değişkenlerini hizalı tutun.

Şablon oluşturma veya uyarlama

Önerilen içerik oluşturma deneyimi, çalıştırıp azd init seçeneğini belirlemektir. Ayrılmış Copilot aracısı oturumu mevcut dosyaları analiz edebilir, yeni bir proje planlamaya yardımcı olabilir, şablon varlıkları oluşturabilir ve sonucu doğrulayabilir. Bu iş akışı ve diğer yazma yöntemleri için bkz. Yeni bir şablonla başlama.

Oluşturulan dosyalar Copilot bağlı değildir. Şablon dosyalarını doğrudan başlatma işleminden sonra inceleyebilir ve düzenleyebilirsiniz. Aynı dosyaları el ile veya başka bir yapay zeka kodlama aracısı ile de oluşturabilirsiniz.

Microsoft, kuruluşunuz veya geliştirici topluluğundan bir şablon zaten yararlı bir mimari sağlıyorsa, mevcut şablondan başlayın ve bunu projeniz için uyarlayın. Şablon galerilerindeki kullanılabilir şablonlara göz atın.

Şablon kullanım yönergeleri

Her şablon, şablona eşlik eden sözleşme kapsamında sahibi tarafından lisanslanır. Şablonu kullanmadan veya dağıtmadan önce hangi lisansın geçerli olduğunu belirleyin.

Microsoft Microsoft olmayan şablondan sorumlu değildir ve güvenlik, gizlilik, uyumluluk veya performans sorunları için bunları taramaz. Microsoft sağlanan şablonlar da dahil olmak üzere şablonlar, Microsoft destek programı veya hizmeti tarafından desteklenmez ve garanti edilmediği gibi sağlanır.

Sağlamadan önce tüm şablon dosyalarını gözden geçirin. Özellikle rol atamalarını, ağ açıklarını, kimlik doğrulama yöntemlerini, hizmet katmanlarını, kaynak konumlarını ve beklenen maliyetleri değerlendirin.

Sonraki adımlar