Schemat azure.yaml interfejsu wiersza polecenia platformy Azure

azd Szablony to repozytoria strategii, które obejmują kod aplikacji weryfikacji koncepcji, konfiguracje edytora/środowiska IDE oraz kod infrastruktury napisany w narzędziu Bicep lub Terraform. Te szablony mają zostać zmodyfikowane i dostosowane do określonych wymagań aplikacji, a następnie użyte do pobrania aplikacji na platformie Azure przy użyciu interfejsu wiersza polecenia dla deweloperów platformy Azure (azd). Schemat azure.yaml definiuje i opisuje aplikacje i typy zasobów platformy Azure, które są zawarte w tych szablonach.

Przykład

Poniżej znajduje się ogólny przykład wymaganego azure.yaml szablonu 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

Porównaj z szablonem azure.yamlMongo ToDo NodeJs:

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

Opisy właściwości

Nazwa elementu Wymagania opis
name Y (ciąg) Nazwa aplikacji.
resourceGroup N (ciąg) Nazwa grupy zasobów platformy Azure. Po określeniu parametr zastąpi nazwę grupy zasobów używaną do aprowizacji infrastruktury.
metadata N (obiekt) Aby uzyskać więcej szczegółów, zobacz właściwości metadanych.
infra N (obiekt) Zapewnia dodatkową konfigurację aprowizacji infrastruktury platformy Azure. Aby uzyskać więcej szczegółów, zobacz właściwości infrastruktury.
services Y (obiekt) Definicja usług składających się na aplikację. Aby uzyskać więcej informacji, zobacz właściwości usług.
pipeline N (obiekt) Definicja potoku ciągłej integracji. Aby uzyskać więcej szczegółów, zobacz właściwości potoku.
hooks N Haki na poziomie polecenia. Haki powinny być zgodne azd z nazwami poleceń poprzedzonymi prefiksem pre lub post w zależności od tego, kiedy skrypt powinien zostać wykonany. Podczas określania ścieżek powinny być względem ścieżki projektu. Aby uzyskać więcej informacji, zobacz Dostosowywanie przepływów pracy interfejsu wiersza polecenia dla deweloperów platformy Azure przy użyciu poleceń i punktów zaczepienia zdarzeń.
requiredVersions N Zakres obsługiwanych azd wersji tego projektu. Jeśli wersja elementu azd znajduje się poza tym zakresem, ładowanie projektu zakończy się niepowodzeniem. Opcjonalnie (zezwala na wszystkie wersje, jeśli są nieobecne). Przykład: >= 0.6.0-beta.3

Właściwości metadata

Nazwa elementu Wymagania opis Przykład
template N (ciąg) Identyfikator szablonu, z którego utworzono aplikację. todo-nodejs-mongo@0.0.1-beta

Właściwości infra

Nazwa elementu Wymagania opis Przykład
provider N (ciąg) Dostawca infrastruktury dla zasobów platformy Azure aplikacji. (Ustawienie domyślne: bicep). Zapoznaj się z poniższym przykładem narzędzia Terraform. bicep, terraform
path N (ciąg) Ścieżka folderu względnego do lokalizacji zawierającej szablony aprowizacji platformy Azure dla określonego dostawcy. (Ustawienie domyślne: infra).
module N (ciąg) Nazwa modułu domyślnego z szablonami aprowizacji platformy Azure. (Ustawienie domyślne: main).

Przykład dostawcy narzędzia Terraform jako dostawcy 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

Właściwości services

Nazwa elementu Wymagania opis Przykład
resourceName N (ciąg) Nazwa zasobu platformy Azure, który implementuje usługę. Jeśli nie zostanie określony, azd wyszuka zasób według azd-env-name i azd-service-name tagi. Jeśli nie zostanie znaleziona, będzie ona szukać nazwy zasobu skonstruowanej z bieżącej nazwy środowiska, łączonej z nazwą usługi (<environment-name><resource-name>). prodapi
project Y (ciąg) Ścieżka do katalogu kodu źródłowego usługi.
host Y (ciąg) Typ zasobu platformy Azure używanego do implementacji usługi. Jeśli pominięto, zostanie założona usługa App Service. appservice, , containerapp, function, aksstaticwebapp(tylko w przypadku projektów, które można wdrożyć za pośrednictwem kubectl apply -f), springapp (po włączeniu — dowiedz się więcej o funkcjach alfa)
language Y (ciąg) Język implementacji usługi. dotnet, csharp, , fsharp, pythonpy, , js, , tsjava
module Y (ciąg) Ścieżka modułu infrastruktury używanego do wdrażania usługi względem głównego folderu infra. W przypadku pominięcia interfejs wiersza polecenia przyjmie, że nazwa modułu jest taka sama jak nazwa usługi.
dist Y (ciąg) Względna ścieżka do artefaktów wdrożenia usługi. Interfejs wiersza polecenia użyje plików w tej ścieżce, aby utworzyć artefakt wdrożenia (plik zip). W przypadku pominięcia wszystkie pliki w katalogu projektu usługi zostaną dołączone. build
docker N Dotyczy tylko wtedy, gdy host ma wartość containerapp. Nie można zawierać dodatkowych właściwości. Zapoznaj się z niestandardowym przykładem platformy Docker poniżej. path(ciąg): ścieżka do pliku Dockerfile. Wartość domyślna: ./Dockerfile; context(ciąg): kontekst kompilacji platformy Docker. Po określeniu zastępuje kontekst domyślny. Wartość domyślna: .; platform(ciąg): element docelowy platformy. Domyślnie: amd64
k8s N Opcje konfiguracji usługi Azure Kubernetes Service (AKS). Zobacz poniższy przykład usługi AKS. deploymentPath(ciąg): opcjonalne. Ścieżka względna ze ścieżki usługi do manifestów wdrożenia k8s. Po ustawieniu zastąpi domyślną lokalizację ścieżki wdrożenia dla manifestów wdrożenia k8s. Wartość domyślna: manifests; namespace(ciąg): opcjonalne. Przestrzeń nazw k8s wdrożonych zasobów. Po określeniu zostanie utworzona nowa przestrzeń nazw k8s, jeśli jeszcze nie istnieje. Wartość domyślna: Project name; deployment(obiekt): Zobacz właściwości wdrożenia; service(obiekt): Zobacz właściwości usługi; ingress(object): Zobacz właściwości ruchu przychodzącego.
hooks N Punkty zaczepienia na poziomie usługi. Haki powinny być zgodne service z nazwami zdarzeń poprzedzonymi prefiksem pre lub post w zależności od tego, kiedy skrypt powinien zostać wykonany. Podczas określania ścieżek powinny być względem ścieżki usługi. Aby uzyskać więcej informacji, zobacz Dostosowywanie przepływów pracy interfejsu wiersza polecenia dla deweloperów platformy Azure przy użyciu poleceń i punktów zaczepienia zdarzeń.

Przykład opcji platformy Docker

W poniższym przykładzie deklarujemy opcje platformy Docker dla aplikacji kontenera.

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

Właściwości usługi AKS deployment

Nazwa elementu Wymagania opis Przykład
name N (ciąg) Opcjonalne. Nazwa zasobu wdrożenia k8s do użycia podczas wdrażania. Używane podczas wdrażania, aby upewnić się, że wdrożenie wdrożenia k8s zostało ukończone. Jeśli nie zostanie ustawiona, wyszukaj zasób wdrożenia w tej samej przestrzeni nazw, która zawiera nazwę usługi. Domyślnie: Service name api

Właściwości usługi AKS service

Nazwa elementu Wymagania opis Przykład
name N (ciąg) Opcjonalne. Nazwa zasobu usługi k8s, który ma być używany jako domyślny punkt końcowy usługi. Używany podczas określania punktów końcowych dla domyślnego zasobu usługi. Jeśli nie zostanie ustawiona, wyszukaj zasób wdrożenia w tej samej przestrzeni nazw, która zawiera nazwę usługi. (Wartość domyślna: nazwa usługi) api

Właściwości usługi AKS ingress

Nazwa elementu Wymagania opis Przykład
name N (ciąg) Opcjonalne. Nazwa zasobu ruchu przychodzącego k8s do użycia jako domyślny punkt końcowy usługi. Używany podczas określania punktów końcowych dla domyślnego zasobu ruchu przychodzącego. Jeśli nie zostanie ustawiona, wyszukaj zasób wdrożenia w tej samej przestrzeni nazw, która zawiera nazwę usługi. Domyślnie: Service name api
relativePath N (ciąg) Opcjonalne. Ścieżka względna do usługi z katalogu głównego kontrolera ruchu przychodzącego. Po ustawieniu zostanie dołączony do katalogu głównego ścieżki zasobu ruchu przychodzącego.

Przykład usługi AKS z punktami zaczepienia na poziomie usługi

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}

Właściwości pipeline

Nazwa elementu Wymagania opis Przykład
provider N (ciąg) Dostawca potoku, który ma być używany do ciągłej integracji. (Ustawienie domyślne: github). github, azdo

Przykładowy potok ciągłej integracji/ciągłego wdrażania w usłudze Azure Pipelines (AzDo)

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

Zażądaj pomocy

Aby uzyskać informacje na temat tworzenia usterki, żądania pomocy lub zaproponowania nowej funkcji dla interfejsu wiersza polecenia dla deweloperów platformy Azure, odwiedź stronę rozwiązywania problemów i pomocy technicznej .

Następne kroki