Udostępnij za pośrednictwem


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ą być modyfikowane i dostosowane do określonych wymagań aplikacji, a następnie używane do uzyskiwania 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.

Próbka

Poniżej przedstawiono ogólny przykład azure.yaml wymagany dla 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 azure.yaml z szablon u ToDo NodeJs MongoToDo 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 Wymagane 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) Zobacz właściwości metadanych, aby uzyskać więcej szczegółów.
infra N (obiekt) Zapewnia dodatkową konfigurację aprowizacji infrastruktury platformy Azure. Aby uzyskać więcej informacji, 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 informacji, zobacz właściwości potoku.
hooks N Haki na poziomie polecenia. Haki powinny być zgodne z nazwami poleceń azd poprzedzonymi 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 platformy Azure przy użyciu poleceń i punktów zaczep ienia zdarzeń.
requiredVersions N Zakres obsługiwanych wersji azd dla tego projektu. Jeśli wersja 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

metadata właściwości

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

infra właściwości

Nazwa elementu Wymagane Opis Przykład
provider N (ciąg) Dostawca infrastruktury dla zasobów platformy Azure aplikacji. (Ustawienie domyślne: bicep). Zapoznaj się z przykładową Terraform poniżej. 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 domyślnego modułu 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

services właściwości

Nazwa elementu Wymagane 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 tagów azd-env-name i azd-service-name. Jeśli nie zostanie znaleziona, wyszuka nazwę zasobu skonstruowaną z bieżącej nazwy środowiska, połączoną 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, staticwebapp, aks (tylko w przypadku projektów wdrażanych za pośrednictwem kubectl apply -f), springapp (po włączeniu — dowiedz się więcej o funkcjach alfa)
language Y (ciąg) języka implementacji usługi Service. dotnet, csharp, fsharp, py, python, js, ts, java
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) ścieżkę względną do artefaktów wdrożenia usługi. Interfejs wiersza polecenia będzie używać plików w tej ścieżce do utworzenia artefaktu wdrożenia (.zip pliku). W przypadku pominięcia wszystkie pliki w katalogu projektu usługi zostaną dołączone. build
docker N Ma zastosowanie tylko wtedy, gdy host jest containerapp. Nie można zawierać dodatkowych właściwości. Zobacz niestandardowy przykład platformy Docker poniżej. path (ciąg): ścieżka do pliku Dockerfile. Ustawienie domyślne: ./Dockerfile; context(ciąg): kontekst kompilacji platformy Docker. Po określeniu zastępuje kontekst domyślny. Ustawienie domyślne: .; platform(ciąg): obiekt docelowy platformy. Ustawienie domyślne: amd64; remoteBuild(wartość logiczna): włącza zdalne kompilacje usługi ACR. Ustawienie domyślne: false
k8s N Opcje konfiguracji usługi Azure Kubernetes Service (AKS). Zobacz przykładową AKS poniżej. 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. Ustawienie domyślne: 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. Ustawienie domyślne: Project name; deployment(obiekt): zobacz właściwości wdrożenia; service(obiekt): zobacz właściwości usługi; ingress(obiekt): zobacz właściwości ruchu przychodzącego .
hooks N Punkty zaczepienia na poziomie usługi. Haki powinny być zgodne service nazwy zdarzeń poprzedzone 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 platformy Azure przy użyciu poleceń i punktów zaczep ienia zdarzeń.
apiVersion N Określ jawne api-version podczas wdrażania usług hostowanych przez usługę Azure Container Apps (ACA). Ta funkcja pomaga uniknąć używania niezgodnej wersji interfejsu API i ułatwia luźne łączenie wdrożenia w celu uniknięcia utraty niestandardowych danych konfiguracji podczas marshalingu JSON do zakodowanej wersji biblioteki zestawu Azure SDK. apiVersion: 2024-02-02-preview

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
    docker:
      remoteBuild: true

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

Nazwa elementu Wymagane 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. Ustawienie domyślne: Service name api

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

Nazwa elementu Wymagane 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 ingress usługi AKS

Nazwa elementu Wymagane 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. Ustawienie domyślne: 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}

pipeline właściwości

Nazwa elementu Wymagane Opis Przykład
provider N (ciąg) dostawca potoku do użycia na potrzeby 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

workflows właściwości

Nazwa elementu Typ Wymagane Opis
w górę sprzeciwiać się Nie Po określeniu zostanie zastąpione domyślne zachowanie dla przepływu pracy azd up.

up właściwości

Nazwa elementu Typ Wymagane Opis
Kroki tablica Tak Kroki do wykonania w przepływie pracy.

steps właściwości

Nazwa elementu Typ Wymagane Opis
azd struna Tak Nazwa i args polecenia azd do wykonania.

Przykładowy przepływ pracy

Poniższy plik azure.yaml zmienia domyślne zachowanie azd up, aby przenieść krok azd package po kroku azd provision przy użyciu przepływu pracy. Ten przykład może być używany w scenariuszach, w których należy znać adresy URL zasobów podczas procesu kompilacji lub pakowania.

name: todo-nodejs-mongo
metadata:
  template: todo-nodejs-mongo@0.0.1-beta
workflows:
  up: 
    steps:
      - azd: provision
      - azd: deploy --all

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