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
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ę.
(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.
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.
(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)
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.
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 .