Share via


Azure Geliştirici CLI'sı azure.yaml şeması

azd şablonlar , kavram kanıtı uygulama kodunu, düzenleyici/IDE yapılandırmalarını ve Bicep veya Terraform'da yazılmış altyapı kodunu içeren şema depolarıdır. Bu şablonların, belirli uygulama gereksinimlerinize göre değiştirilmesi ve uyarlanması ve ardından Azure Geliştirici CLI'sini (azd ) kullanarak uygulamanızı Azure'a almak için kullanılması amaçlanmıştır. azure.yaml şeması, bu şablonlara dahil edilen Azure kaynaklarının uygulamalarını ve türlerini tanımlar ve açıklar.

Örnek

Aşağıda, şablonunuz azd için gerekli olan genel bir azure.yaml örnek verilmiştir.

name: yourApp
metadata:
  template: yourApp@0.0.1-beta
services:
  web:
    project: ./src/web # path to your web project
    dist: build # relative path to service deployment artifacts
    language: js # one of the supported languages
    host: appservice # one of the supported Azure services

ToDo NodeJs Mongo şablonumuzdaki ile azure.yamlkarşılaştırın:

name: todo-nodejs-mongo
metadata:
  template: todo-nodejs-mongo@0.0.1-beta
services:
  web:
    project: ./src/web
    dist: build
    language: js
    host: appservice
  api:
    project: ./src/api
    language: js
    host: appservice

Özellik açıklamaları

Öğe Adı Zorunlu Açıklama
name Y (dize) Uygulamanın adı.
resourceGroup N (dize) Azure kaynak grubunun adı. Belirtildiğinde, altyapı sağlama için kullanılan kaynak grubu adını geçersiz kılar.
metadata N (nesne) Daha fazla ayrıntı için bkz . meta veri özellikleri .
infra N (nesne) Azure altyapısı sağlama için ek yapılandırma sağlar. Daha fazla ayrıntı için bkz . infra properties .
services Y (nesne) Uygulamayı oluşturan hizmetlerin tanımı. Daha fazla ayrıntı için bkz . hizmet özellikleri .
pipeline N (nesne) Sürekli tümleştirme işlem hattının tanımı. Daha fazla ayrıntı için bkz . işlem hattı özellikleri .
hooks N Komut düzeyi kancaları. Kancalar, betiğin ne zaman yürütülmesi gerektiğine bağlı olarak veya post ön ekli komut adlarıyla pre eşleşmelidirazd. Yolları belirtirken, bunların proje yoluna göre olması gerekir. Daha fazla ayrıntı için bkz . Komut ve olay kancalarını kullanarak Azure Geliştirici CLI iş akışlarınızı özelleştirme.
requiredVersions N Bu proje için desteklenen sürümleri azd aralığı. sürümü azd bu aralığın dışındaysa, proje yüklenemiyor. İsteğe bağlı (yoksa tüm sürümlere izin verir). Örnek: >= 0.6.0-beta.3

metadata özellikleri

Öğe Adı Zorunlu Açıklama Örnek
template N (dize) Uygulamanın oluşturulduğu şablonun tanımlayıcısı. todo-nodejs-mongo@0.0.1-beta

infra özellikleri

Öğe Adı Zorunlu Açıklama Örnek
provider N (dize) Uygulamanın Azure kaynakları için altyapı sağlayıcısı. (Varsayılan: bicep). Aşağıdaki Terraform örneğine bakın. bicep, terraform
path N (dize) Belirtilen sağlayıcı için Azure sağlama şablonlarını içeren konumun göreli klasör yolu. (Varsayılan: infra).
module N (dize) Azure sağlama şablonlarını içeren varsayılan modülün adı. (Varsayılan: ana).

IaC sağlayıcı örneği olarak Terraform

name: yourApp-terraform
metadata:
  template: yourApp-terraform@0.0.1-beta
services:
  web:
    project: ./src/web
    dist: build
    language: js
    host: appservice
  api:
    project: ./src/api
      language: js
      host: appservice
infra:
  provider: terraform

services özellikleri

Öğe Adı Zorunlu Açıklama Örnek
resourceName N (dize) Hizmeti uygulayan Azure kaynağının adı. Belirtilmezse, azd ve azd-service-name etiketlerine göre azd-env-name bir kaynak arar. Bulunamazsa, hizmet adı (<environment-name><resource-name>) ile birleştirilmiş, geçerli ortam adından derlenmiş bir kaynak adı arar. prodapi
project Y (dize) Hizmet kaynak kodu dizininin yolu.
host Y (dize) Hizmet uygulaması için kullanılan Azure kaynağının türü. Atlanırsa App Service varsayılır. appservice, containerapp, function, staticwebapp, ( aks yalnızca aracılığıyla kubectl apply -fdağıtılabilir projeler için ) springapp (etkinleştirildiğinde- alfa özellikleri hakkında daha fazla bilgi edinin)
language Y (dize) Hizmet uygulama dili. dotnet, csharp, fsharp, , py, python, js, ts, java
module Y (dize) Hizmeti kök infra klasörüne göre dağıtmak için kullanılan altyapı modülünün yolu. Belirtilmezse, CLI modül adının hizmet adıyla aynı olduğunu varsayar.
dist Y (dize) Hizmet dağıtım yapıtlarının göreli yolu. CLI, dağıtım yapıtını (.zip dosyası) oluşturmak için bu yol altındaki dosyaları kullanır. Atlanırsa, hizmet projesi dizini altındaki tüm dosyalar eklenir. build
docker N Yalnızca olduğunda hostcontainerappgeçerlidir. Ek özellikler içeremez. Aşağıdaki özel Docker örneğine bakın. path(dize): Dockerfile yolu. Varsayılan: ./Dockerfile; context(dize): Docker derleme bağlamı. Belirtildiğinde, varsayılan bağlamı geçersiz kılar. Varsayılan: .; platform(dize): Platform hedefi. Varsayılan: amd64
k8s N Azure Kubernetes Service (AKS) yapılandırma seçenekleri. Aşağıdaki AKS örneğine bakın. deploymentPath(dize): İsteğe bağlı. Hizmet yolundan k8s dağıtım bildirimlerine göreli yol. Ayarlandığında, k8s dağıtım bildirimleri için varsayılan dağıtım yolu konumunu geçersiz kılar. Varsayılan: manifests; namespace(dize): İsteğe bağlı. Dağıtılan kaynakların k8s ad alanı. Belirtildiğinde, henüz mevcut değilse yeni bir k8s ad alanı oluşturulur. Varsayılan: Project name; deployment(nesne): Bkz . dağıtım özellikleri; service(nesne): Bkz. hizmet özellikleri; ingress(object): Bkz . giriş özellikleri.
hooks N Hizmet düzeyi kancaları. Kancalar, betiğin ne zaman yürütülmesi gerektiğine bağlı olarak veya post ön ekli olay adlarıyla pre eşleşmelidirservice. Yolları belirtirken, hizmet yoluna göre olmalıdır. Daha fazla ayrıntı için bkz . Komut ve olay kancalarını kullanarak Azure Geliştirici CLI iş akışlarınızı özelleştirme.

Docker seçenekleri örneği

Aşağıdaki örnekte, kapsayıcı uygulaması için Docker seçeneklerini bildiririz.

name: yourApp-aca
metadata:
    template: yourApp-aca@0.0.1-beta
services:
  api:
    project: ./src/api
    language: js
    host: containerapp
    docker:
      path: ./Dockerfile
      context: ../
  web:
    project: ./src/web
    language: js
    host: containerapp

AKS deployment özellikleri

Öğe Adı Zorunlu Açıklama Örnek
name N (dize) Isteğe bağlı. Dağıtım sırasında kullanılacak k8s dağıtım kaynağının adı. K8s dağıtım dağıtımının tamamlanmasını sağlamak için dağıtım sırasında kullanılır. Ayarlanmadıysa, hizmet adını içeren aynı ad alanında bir dağıtım kaynağı arar. Varsayılan: Service name api

AKS service özellikleri

Öğe Adı Zorunlu Açıklama Örnek
name N (dize) Isteğe bağlı. Varsayılan hizmet uç noktası olarak kullanılacak k8s hizmet kaynağının adı. Varsayılan hizmet kaynağı için uç noktaları belirlerken kullanılır. Ayarlanmadıysa, hizmet adını içeren aynı ad alanında bir dağıtım kaynağı arar. (Varsayılan: Hizmet adı) api

AKS ingress özellikleri

Öğe Adı Zorunlu Açıklama Örnek
name N (dize) Isteğe bağlı. Varsayılan hizmet uç noktası olarak kullanılacak k8s giriş kaynağının adı. Varsayılan giriş kaynağı için uç noktaları belirlerken kullanılır. Ayarlanmadıysa, hizmet adını içeren aynı ad alanında bir dağıtım kaynağı arar. Varsayılan: Service name api
relativePath N (dize) Isteğe bağlı. Giriş denetleyicinizin kökünden hizmetin göreli yolu. Ayarlandığında, giriş kaynak yolunuzun köküne eklenir.

Hizmet düzeyi kancalı AKS örneği

metadata:
  template: todo-nodejs-mongo-aks@0.0.1-beta
services:
  web:
    project: ./src/web
    dist: build
    language: js
    host: aks
    hooks:
      postdeploy:
        shell: sh
        run: azd env set REACT_APP_WEB_BASE_URL ${SERVICE_WEB_ENDPOINT_URL}
  api:
    project: ./src/api
    language: js
    host: aks
    k8s:
      ingress:
        relativePath: api
    hooks:
      postdeploy:
        shell: sh
        run: azd env set REACT_APP_API_BASE_URL ${SERVICE_API_ENDPOINT_URL}

pipeline özellikleri

Öğe Adı Zorunlu Açıklama Örnek
provider N (dize) Sürekli tümleştirme için kullanılacak işlem hattı sağlayıcısı. (Varsayılan: github). github, azdo

CI/CD işlem hattı örneği olarak Azure Pipelines (AzDo)

name: yourApp
services:  
  web:    
    project: src/web
    dist: build
    language: js
    host: appservice
pipeline: 
  provider: azdo

Yardım isteme

Azure Geliştirici CLI'sı için hata oluşturma, yardım isteme veya yeni bir özellik önerme hakkında bilgi için lütfen sorun giderme ve destek sayfasını ziyaret edin.

Sonraki adımlar