Skema azure.yaml Azure Developer CLI

azd templat adalah repositori cetak biru yang mencakup kode aplikasi bukti konsep, konfigurasi editor/IDE, dan kode infrastruktur yang ditulis dalam Bicep atau Terraform. Templat ini dimaksudkan untuk dimodifikasi dan disesuaikan untuk persyaratan aplikasi spesifik Anda lalu digunakan untuk mendapatkan aplikasi Anda di Azure menggunakan Azure Developer CLI (azd). Skema azure.yaml menentukan dan menjelaskan aplikasi dan jenis sumber daya Azure yang disertakan dalam templat ini.

Sampel

Di bawah ini adalah contoh umum yang azure.yaml diperlukan untuk templat Anda azd .

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

Bandingkan dengan azure.yaml dari templat ToDo NodeJs Mongo kami:

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

Deskripsi properti

Nama Elemen Wajib Deskripsi
name Y (String) Nama aplikasi.
resourceGroup N (String) Nama grup sumber daya Azure. Ketika ditentukan, akan mengambil alih nama grup sumber daya yang digunakan untuk provisi infrastruktur.
metadata N (objek) Lihat properti metadata untuk detail selengkapnya.
infra N (objek) Menyediakan konfigurasi tambahan untuk provisi infrastruktur Azure. Lihat properti infra untuk detail selengkapnya.
services Y (objek) Definisi layanan yang terdiri dari aplikasi. Lihat properti layanan untuk detail selengkapnya.
pipeline N (objek) Definisi alur integrasi berkelanjutan. Lihat properti alur untuk detail selengkapnya.
hooks N Kait tingkat perintah. Hook harus cocok azd dengan nama perintah yang diawali dengan pre atau post bergantung pada kapan skrip harus dijalankan. Saat menentukan jalur, jalur tersebut harus relatif terhadap jalur proyek. Lihat Mengkustomisasi alur kerja Azure Developer CLI Anda menggunakan perintah dan hook peristiwa untuk detail selengkapnya.
requiredVersions N Rentang versi proyek ini yang azd didukung. Jika versi azd berada di luar rentang ini, proyek akan gagal dimuat. Opsional (memungkinkan semua versi jika tidak ada). Contoh: >= 0.6.0-beta.3

metadata Properti

Nama Elemen Wajib Deskripsi Contoh
template N (String) Pengidentifikasi templat tempat aplikasi dibuat. todo-nodejs-mongo@0.0.1-beta

infra Properti

Nama Elemen Wajib Deskripsi Contoh
provider N (String) Penyedia infrastruktur untuk sumber daya Azure aplikasi. (Default: bicep). Lihat sampel Terraform di bawah ini. bicep, terraform
path N (String) Jalur folder relatif ke lokasi yang berisi templat provisi Azure untuk penyedia yang ditentukan. (Default: infra).
module N (String) Nama modul default dengan templat provisi Azure. (Default: utama).

Terraform sebagai sampel penyedia IaC

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 Properti

Nama Elemen Wajib Deskripsi Contoh
resourceName N (String) Nama sumber daya Azure yang mengimplementasikan layanan. Jika tidak ditentukan, azd akan mencari sumber daya menurut azd-env-name dan azd-service-name tag. Jika tidak ditemukan, itu akan mencari nama sumber daya yang dibangun dari nama lingkungan saat ini, digabungkan dengan nama layanan (<environment-name><resource-name>). prodapi
project Y (String) Jalur ke direktori kode sumber layanan.
host Y (String) Jenis sumber daya Azure yang digunakan untuk implementasi layanan. Jika dihilangkan, App Service akan diasumsikan. appservice, , containerapp, staticwebappfunction, aks (hanya untuk proyek yang dapat disebarkan melalui kubectl apply -f), springapp (saat diaktifkan - pelajari selengkapnya tentang fitur alfa)
language Y (String) Bahasa implementasi layanan. dotnet, , fsharpcsharp, py, python, js, , ts,java
module Y (String) Jalur modul infrastruktur yang digunakan untuk menyebarkan layanan relatif terhadap folder infra akar. Jika dihilangkan, CLI akan menganggap nama modul sama dengan nama layanan.
dist Y (String) Jalur relatif ke artefak penyebaran layanan. CLI akan menggunakan file di bawah jalur ini untuk membuat artefak penyebaran (file.zip). Jika dihilangkan, semua file di bawah direktori proyek layanan akan disertakan. build
docker N Hanya berlaku ketika host adalah containerapp. Tidak dapat berisi properti tambahan. Lihat sampel Docker kustom di bawah ini. path(string): Jalur ke Dockerfile. Default: ./Dockerfile; context(string): Konteks build docker. Jika ditentukan, ambil alih konteks default. Default: .; platform(string): Target platform. Default: amd64
k8s N Opsi konfigurasi Azure Kubernetes Service (AKS). Lihat sampel AKS di bawah ini. deploymentPath(string): Opsional. Jalur relatif dari jalur layanan ke manifes penyebaran k8s. Ketika diatur, itu akan mengambil alih lokasi jalur penyebaran default untuk manifes penyebaran k8s. Default: manifests; namespace(string): Opsional. Namespace layanan k8s dari sumber daya yang disebarkan. Ketika ditentukan, namespace k8s baru akan dibuat jika belum ada. Default: Project name; deployment(objek): Lihat properti penyebaran; service(objek): Lihat properti layanan; ingress(objek): Lihat properti ingress.
hooks N Kait tingkat layanan. Hook harus cocok service dengan nama peristiwa yang diawali dengan pre atau post bergantung pada kapan skrip harus dijalankan. Saat menentukan jalur, jalur tersebut harus relatif terhadap jalur layanan. Lihat Mengkustomisasi alur kerja Azure Developer CLI Anda menggunakan perintah dan hook peristiwa untuk detail selengkapnya.

Sampel opsi Docker

Dalam contoh berikut, kami mendeklarasikan opsi Docker untuk aplikasi kontainer.

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

Properti AKS deployment

Nama Elemen Wajib Deskripsi Contoh
name N (String) Opsional. Nama sumber daya penyebaran k8s yang akan digunakan selama penyebaran. Digunakan selama penyebaran untuk memastikan apakah peluncuran penyebaran k8s telah selesai. Jika tidak diatur, akan mencari sumber daya penyebaran di namespace layanan yang sama yang berisi nama layanan. Default: Service name api

Properti AKS service

Nama Elemen Wajib Deskripsi Contoh
name N (String) Opsional. Nama sumber daya layanan k8s yang akan digunakan sebagai titik akhir layanan default. Digunakan saat menentukan titik akhir untuk sumber daya layanan default. Jika tidak diatur, akan mencari sumber daya penyebaran di namespace layanan yang sama yang berisi nama layanan. (Default: Nama layanan) api

Properti AKS ingress

Nama Elemen Wajib Deskripsi Contoh
name N (String) Opsional. Nama sumber daya ingress k8s untuk digunakan sebagai titik akhir layanan default. Digunakan saat menentukan titik akhir untuk sumber daya ingress default. Jika tidak diatur, akan mencari sumber daya penyebaran di namespace layanan yang sama yang berisi nama layanan. Default: Service name api
relativePath N (String) Opsional. Jalur relatif ke layanan dari akar pengontrol ingress Anda. Ketika diatur, akan ditambahkan ke akar jalur sumber daya ingress Anda.

Sampel AKS dengan kait tingkat layanan

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 Properti

Nama Elemen Wajib Deskripsi Contoh
provider N (String) Penyedia alur yang akan digunakan untuk integrasi berkelanjutan. (Default: github). github, azdo

Azure Pipelines (AzDo) sebagai sampel alur CI/CD

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

Meminta bantuan

Untuk informasi tentang cara mengajukan bug, meminta bantuan, atau mengusulkan fitur baru untuk Azure Developer CLI, silakan kunjungi halaman pemecahan masalah dan dukungan .

Langkah berikutnya