4. Skonfiguruj Szablon
March 22, 2026 · View on GitHub
!!! tip "NA KONIEC TEGO MODUŁU BĘDZIESZ UMIAŁ"
- [ ] Zrozumieć cel pliku `azure.yaml`
- [ ] Zrozumieć strukturę pliku `azure.yaml`
- [ ] Zrozumieć wartość lifecycle `hooks` w azd
- [ ] **Lab 4:** Zbadać i zmodyfikować zmienne środowiskowe
!!! prompt "Do czego służy plik azure.yaml? Użyj bloku kodu i wyjaśnij go linijka po linijce"
Plik `azure.yaml` to **plik konfiguracyjny Azure Developer CLI (azd)**. Definiuje on, jak Twoja aplikacja powinna być wdrożona do Azure, włączając infrastrukturę, usługi, hooki wdrożeniowe oraz zmienne środowiskowe.
1. Cel i funkcjonalność
Plik azure.yaml służy jako plan wdrożenia aplikacji agenta AI, która:
- Weryfikuje środowisko przed wdrożeniem
- Dostarcza usługi Azure AI (AI Hub, AI Project, Search itd.)
- Wdroży aplikację Python na Azure Container Apps
- Konfiguruje modele AI zarówno do czatu jak i funkcji embeddingu
- Ustawia monitorowanie i śledzenie dla aplikacji AI
- Obsługuje scenariusze nowych i istniejących projektów Azure AI
Plik umożliwia wdrożenie jednym poleceniem (azd up) kompletnego rozwiązania agenta AI z odpowiednią walidacją, provisioningiem i konfiguracją po wdrożeniu.
??? info "Rozwiń, aby zobaczyć: azure.yaml"
Plik `azure.yaml` definiuje, jak Azure Developer CLI powinien wdrożyć i zarządzać tą aplikacją agenta AI w Azure. Przeanalizujmy go linijka po linijce.
```yaml title="" linenums="0"
# yaml-language-server: $schema=https://raw.githubusercontent.com/Azure/azure-dev/main/schemas/v1.0/azure.yaml.json
# TODO: czy potrzebujemy hooków?
# TODO: czy potrzebujemy wszystkich zmiennych?
name: azd-get-started-with-ai-agents
metadata:
template: azd-get-started-with-ai-agents@1.0.2
requiredVersions:
azd: ">=1.14.0"
hooks:
preup:
posix:
shell: sh
run: chmod u+r+x ./scripts/validate_env_vars.sh; ./scripts/validate_env_vars.sh
interactive: true
continueOnError: false
windows:
shell: pwsh
run: ./scripts/validate_env_vars.ps1
interactive: true
continueOnError: false
postprovision:
windows:
shell: pwsh
run: ./scripts/write_env.ps1
continueOnError: true
interactive: true
posix:
shell: sh
run: chmod u+r+x ./scripts/write_env.sh; ./scripts/write_env.sh;
continueOnError: true
interactive: true
postdeploy:
windows:
shell: pwsh
run: ./scripts/postdeploy.ps1
continueOnError: true
interactive: true
posix:
shell: sh
run: chmod u+r+x ./scripts/postdeploy.sh; ./scripts/postdeploy.sh;
continueOnError: true
interactive: true
services:
api_and_frontend:
project: ./src
language: py
host: containerapp
docker:
image: api_and_frontend
remoteBuild: true
pipeline:
variables:
- AZURE_RESOURCE_GROUP
- AZURE_AIHUB_NAME
- AZURE_AIPROJECT_NAME
- AZURE_AISERVICES_NAME
- AZURE_SEARCH_SERVICE_NAME
- AZURE_APPLICATION_INSIGHTS_NAME
- AZURE_CONTAINER_REGISTRY_NAME
- AZURE_KEYVAULT_NAME
- AZURE_STORAGE_ACCOUNT_NAME
- AZURE_LOG_ANALYTICS_WORKSPACE_NAME
- USE_CONTAINER_REGISTRY
- USE_APPLICATION_INSIGHTS
- USE_AZURE_AI_SEARCH_SERVICE
- AZURE_AI_AGENT_NAME
- AZURE_AI_AGENT_ID
- AZURE_AI_AGENT_DEPLOYMENT_NAME
- AZURE_AI_AGENT_DEPLOYMENT_SKU
- AZURE_AI_AGENT_DEPLOYMENT_CAPACITY
- AZURE_AI_AGENT_MODEL_NAME
- AZURE_AI_AGENT_MODEL_FORMAT
- AZURE_AI_AGENT_MODEL_VERSION
- AZURE_AI_EMBED_DEPLOYMENT_NAME
- AZURE_AI_EMBED_DEPLOYMENT_SKU
- AZURE_AI_EMBED_DEPLOYMENT_CAPACITY
- AZURE_AI_EMBED_MODEL_NAME
- AZURE_AI_EMBED_MODEL_FORMAT
- AZURE_AI_EMBED_MODEL_VERSION
- AZURE_AI_EMBED_DIMENSIONS
- AZURE_AI_SEARCH_INDEX_NAME
- AZURE_EXISTING_AIPROJECT_RESOURCE_ID
- AZURE_EXISTING_AIPROJECT_ENDPOINT
- AZURE_EXISTING_AGENT_ID
- ENABLE_AZURE_MONITOR_TRACING
- AZURE_TRACING_GEN_AI_CONTENT_RECORDING_ENABLED
```
2. Rozbiór pliku
Przejdźmy przez plik sekcja po sekcji, aby zrozumieć co robi — i dlaczego.
2.1 Nagłówek i schemat (1-3)
# yaml-language-server: $schema=https://raw.githubusercontent.com/Azure/azure-dev/main/schemas/v1.0/azure.yaml.json
- Linia 1: Zapewnia walidację schematu YAML dla wsparcia IDE i IntelliSense
2.2 Metadane projektu (5-10)
name: azd-get-started-with-ai-agents
metadata:
template: azd-get-started-with-ai-agents@1.0.2
requiredVersions:
azd: ">=1.14.0"
- Linia 5: Definiuje nazwę projektu używaną przez Azure Developer CLI
- Linie 6-7: Określa, że jest to oparty na szablonie w wersji 1.0.2
- Linie 8-9: Wymaga wersji Azure Developer CLI 1.14.0 lub wyższej
2.3 Hooki wdrożeniowe (11-40)
hooks:
preup:
posix:
shell: sh
run: chmod u+r+x ./scripts/validate_env_vars.sh; ./scripts/validate_env_vars.sh
interactive: true
continueOnError: false
windows:
shell: pwsh
run: ./scripts/validate_env_vars.ps1
interactive: true
continueOnError: false
-
Linie 11-20: Hook przed wdrożeniem — uruchamiany przed
azd up- Na Unix/Linux: nadaje uprawnienia do wykonania i uruchamia skrypt walidacji - Na Windows: uruchamia skrypt walidacji w PowerShell - Oba są interaktywne i przerwą wdrożenie, jeśli zawiodą
postprovision:
windows:
shell: pwsh
run: ./scripts/write_env.ps1
continueOnError: true
interactive: true
posix:
shell: sh
run: chmod u+r+x ./scripts/write_env.sh; ./scripts/write_env.sh;
continueOnError: true
interactive: true
-
Linie 21-30: Hook po dostarczeniu zasobów — uruchamiany po stworzeniu zasobów Azure
- Wykonuje skrypty zapisu zmiennych środowiskowych
- Kontynuuje wdrożenie nawet jeśli skrypty się nie powiodą (
continueOnError: true)
postdeploy:
windows:
shell: pwsh
run: ./scripts/postdeploy.ps1
continueOnError: true
interactive: true
posix:
shell: sh
run: chmod u+r+x ./scripts/postdeploy.sh; ./scripts/postdeploy.sh;
continueOnError: true
interactive: true
-
Linie 31-40: Hook po wdrożeniu aplikacji — uruchamiany po wdrożeniu aplikacji
- Wykonuje końcowe skrypty konfiguracyjne
- Kontynuuje nawet jeśli skrypty zawiodą
2.4 Konfiguracja serwisu (41-48)
Konfiguruje serwis aplikacji, którą wdrażasz.
services:
api_and_frontend:
project: ./src
language: py
host: containerapp
docker:
image: api_and_frontend
remoteBuild: true
-
Linia 42: Definiuje serwis o nazwie "api_and_frontend"
-
Linia 43: Wskazuje na katalog
./srcz kodem źródłowym -
Linia 44: Określa Pythona jako język programowania
-
Linia 45: Używa Azure Container Apps jako platformy hostingowej
-
Linie 46-48: Konfiguracja Dockera
- Używa nazwy obrazu "api_and_frontend" - Buduje obraz Dockera zdalnie w Azure (nie lokalnie)
2.5 Zmienne pipeline (49-76)
To zmienne pomocne przy uruchamianiu azd w pipeline CI/CD dla automatyzacji
pipeline:
variables:
- AZURE_RESOURCE_GROUP
- AZURE_AIHUB_NAME
- AZURE_AIPROJECT_NAME
- AZURE_AISERVICES_NAME
- AZURE_SEARCH_SERVICE_NAME
- AZURE_APPLICATION_INSIGHTS_NAME
- AZURE_CONTAINER_REGISTRY_NAME
- AZURE_KEYVAULT_NAME
- AZURE_STORAGE_ACCOUNT_NAME
- AZURE_LOG_ANALYTICS_WORKSPACE_NAME
- USE_CONTAINER_REGISTRY
- USE_APPLICATION_INSIGHTS
- USE_AZURE_AI_SEARCH_SERVICE
- AZURE_AI_AGENT_NAME
- AZURE_AI_AGENT_ID
- AZURE_AI_AGENT_DEPLOYMENT_NAME
- AZURE_AI_AGENT_DEPLOYMENT_SKU
- AZURE_AI_AGENT_DEPLOYMENT_CAPACITY
- AZURE_AI_AGENT_MODEL_NAME
- AZURE_AI_AGENT_MODEL_FORMAT
- AZURE_AI_AGENT_MODEL_VERSION
- AZURE_AI_EMBED_DEPLOYMENT_NAME
- AZURE_AI_EMBED_DEPLOYMENT_SKU
- AZURE_AI_EMBED_DEPLOYMENT_CAPACITY
- AZURE_AI_EMBED_MODEL_NAME
- AZURE_AI_EMBED_MODEL_FORMAT
- AZURE_AI_EMBED_MODEL_VERSION
- AZURE_AI_EMBED_DIMENSIONS
- AZURE_AI_SEARCH_INDEX_NAME
- AZURE_EXISTING_AIPROJECT_RESOURCE_ID
- AZURE_EXISTING_AIPROJECT_ENDPOINT
- AZURE_EXISTING_AGENT_ID
- ENABLE_AZURE_MONITOR_TRACING
- AZURE_TRACING_GEN_AI_CONTENT_RECORDING_ENABLED
Ta sekcja definiuje zmienne środowiskowe używane podczas wdrożenia, podzielone na kategorie:
- Nazwy zasobów Azure (linie 51-60): - Podstawowe nazwy zasobów usług Azure, np. Resource Group, AI Hub, AI Project itd.
- Flagii funkcji (linie 61-63): - Zmienne boolean włączające/wyłączające konkretne usługi Azure
- Konfiguracja agenta AI (linie 64-71): - Konfiguracja głównego agenta AI, włączając nazwę, ID, ustawienia wdrożenia, szczegóły modelu
- Konfiguracja embeddingu AI (linie 72-79): - Konfiguracja modelu embeddingowego używanego do wyszukiwania wektorowego
- Wyszukiwanie i monitorowanie (linie 80-84): - Nazwa indeksu wyszukiwania, istniejące ID zasobów, oraz ustawienia monitoringu/śledzenia
3. Znajomość zmiennych środowiskowych
Poniższe zmienne środowiskowe kontrolują konfigurację i zachowanie Twojego wdrożenia, pogrupowane według ich głównego celu. Większość ma rozsądne wartości domyślne, ale możesz je dostosować do swoich wymagań lub istniejących zasobów Azure.
3.1 Wymagane zmienne
# Podstawowa konfiguracja Azure
AZURE_ENV_NAME # Nazwa środowiska (używana w nazwach zasobów)
AZURE_LOCATION # Region wdrożenia
AZURE_SUBSCRIPTION_ID # Docelowa subskrypcja
AZURE_RESOURCE_GROUP # Nazwa grupy zasobów
AZURE_PRINCIPAL_ID # Podmiot użytkownika dla RBAC
# Nazwy zasobów (generowane automatycznie, jeśli nie określono)
AZURE_AIHUB_NAME # Nazwa huba Microsoft Foundry
AZURE_AIPROJECT_NAME # Nazwa projektu AI
AZURE_AISERVICES_NAME # Nazwa konta usług AI
AZURE_STORAGE_ACCOUNT_NAME # Nazwa konta magazynu
AZURE_CONTAINER_REGISTRY_NAME # Nazwa rejestru kontenerów
AZURE_KEYVAULT_NAME # Nazwa Key Vault (jeśli używany)
3.2 Konfiguracja modelu
# Konfiguracja Modelu Czatowego
AZURE_AI_AGENT_MODEL_NAME # Domyślnie: gpt-4.1-mini
AZURE_AI_AGENT_MODEL_FORMAT # Domyślnie: OpenAI (lub Microsoft)
AZURE_AI_AGENT_MODEL_VERSION # Domyślnie: najnowsza dostępna
AZURE_AI_AGENT_DEPLOYMENT_NAME # Nazwa wdrożenia dla modelu czatowego
AZURE_AI_AGENT_DEPLOYMENT_SKU # Domyślnie: Standard
AZURE_AI_AGENT_DEPLOYMENT_CAPACITY # Domyślnie: 80 (tysięcy TPM)
# Konfiguracja Modelu Embedującego
AZURE_AI_EMBED_MODEL_NAME # Domyślnie: text-embedding-3-small
AZURE_AI_EMBED_MODEL_FORMAT # Domyślnie: OpenAI
AZURE_AI_EMBED_MODEL_VERSION # Domyślnie: najnowsza dostępna
AZURE_AI_EMBED_DEPLOYMENT_NAME # Nazwa wdrożenia dla embedowań
AZURE_AI_EMBED_DEPLOYMENT_SKU # Domyślnie: Standard
AZURE_AI_EMBED_DEPLOYMENT_CAPACITY # Domyślnie: 50 (tysięcy TPM)
# Konfiguracja Agenta
AZURE_AI_AGENT_NAME # Wyświetlana nazwa agenta
AZURE_EXISTING_AGENT_ID # Użyj istniejącego agenta (opcjonalnie)
3.3 Przełącznik funkcji
# Usługi opcjonalne
USE_APPLICATION_INSIGHTS # Domyślnie: prawda
USE_AZURE_AI_SEARCH_SERVICE # Domyślnie: fałsz
USE_CONTAINER_REGISTRY # Domyślnie: prawda
# Monitorowanie i śledzenie
ENABLE_AZURE_MONITOR_TRACING # Domyślnie: fałsz
AZURE_TRACING_GEN_AI_CONTENT_RECORDING_ENABLED # Domyślnie: fałsz
# Konfiguracja wyszukiwania
AZURE_AI_SEARCH_INDEX_NAME # Nazwa indeksu wyszukiwania
AZURE_SEARCH_SERVICE_NAME # Nazwa usługi wyszukiwania
3.4 Konfiguracja projektu AI
# Użyj istniejących zasobów
AZURE_EXISTING_AIPROJECT_RESOURCE_ID # Pełny identyfikator zasobu istniejącego projektu AI
AZURE_EXISTING_AIPROJECT_ENDPOINT # URL punktu końcowego istniejącego projektu
3.5 Sprawdź swoje zmienne
Użyj Azure Developer CLI, aby wyświetlić i zarządzać swoimi zmiennymi środowiskowymi:
# Wyświetl wszystkie zmienne środowiskowe dla bieżącego środowiska
azd env get-values
# Pobierz konkretną zmienną środowiskową
azd env get-value AZURE_ENV_NAME
# Ustaw zmienną środowiskową
azd env set AZURE_LOCATION eastus
# Ustaw wiele zmiennych z pliku .env
azd env set --from-file .env
Zastrzeżenie:
Niniejszy dokument został przetłumaczony za pomocą usługi tłumaczenia AI Co-op Translator. Chociaż staramy się zapewnić dokładność, prosimy mieć na uwadze, że automatyczne tłumaczenia mogą zawierać błędy lub niedokładności. Oryginalny dokument w jego języku oryginalnym powinien być uznawany za źródło autorytatywne. W przypadku informacji krytycznych zalecane jest skorzystanie z profesjonalnego tłumaczenia wykonanego przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z korzystania z tego tłumaczenia.