Eventi
Creare app e agenti di intelligenza artificiale
17 mar, 21 - 21 mar, 10
Partecipa alla serie meetup per creare soluzioni di intelligenza artificiale scalabili basate su casi d'uso reali con altri sviluppatori ed esperti.
Iscriviti subitoQuesto browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
L'interfaccia della riga di comando per sviluppatori di Azure supporta vari punti di estensione per personalizzare i flussi di lavoro e le distribuzioni. Il middleware hook consente di eseguire script personalizzati prima e dopo azd
comandi ed eventi del ciclo di vita del servizio. gli hook seguono una convenzione di denominazione usando e post prefissi sul nome dell'evento del servizio o del comando corrispondente azd
.
Ad esempio, è possibile eseguire uno script personalizzato negli scenari seguenti:
Sono disponibili gli hook dei comandi azd
seguenti:
prerestore
e postrestore
: eseguire prima e dopo il ripristino delle dipendenze del pacchetto.preprovision
e postprovision
: eseguire prima e dopo la creazione delle risorse di Azure.predeploy
e postdeploy
: eseguire prima e dopo la distribuzione del codice dell'applicazione in Azure.preup
e postup
: eseguire prima e dopo la pipeline di distribuzione combinata.
Up
è un comando abbreviato che esegue restore
, provision
e deploy
in sequenza.predown
e postdown
: eseguire prima e dopo la rimozione delle risorse.Sono disponibili gli hook di eventi del ciclo di vita del servizio seguenti:
prerestore
e postrestore
: eseguire prima e dopo il ripristino dei pacchetti e delle dipendenze del servizio.prebuild
e postbuild
: eseguire prima e dopo la compilazione del codice sorgente o del contenitore del servizio.prepackage
e postpackage
: eseguire prima e dopo il pacchetto dell'app per la distribuzione.predeploy
e postdeploy
: eseguire prima e dopo la distribuzione del codice del servizio in Azure.Gli hook possono essere registrati nel file azure.yaml
nella radice o all'interno di una configurazione del servizio specifica. Tutti i tipi di hook supportano le opzioni di configurazione seguenti:
shell
: sh
| pwsh
pwsh
.run
: definire uno script inline o un percorso di un file.continueOnError
: quando il set continuerà a essere eseguito anche dopo che si è verificato un errore di script durante un hook dei comandi (impostazione predefinita false).interactive
: se impostato associa lo script in esecuzione alla console stdin
, stdout
& stderr
(valore predefinito false).windows
: specifica che le configurazioni annidate verranno applicate solo nel sistema operativo Windows. Se questa opzione di configurazione è esclusa, l'hook viene eseguito su tutte le piattaforme.posix
: specifica che le configurazioni annidate verranno applicate solo ai sistemi operativi basati su POSIX (Linux & MaxOS). Se questa opzione di configurazione è esclusa, l'hook viene eseguito su tutte le piattaforme.Gli esempi seguenti illustrano diversi tipi di registrazioni e configurazioni hook.
Gli hook possono essere configurati per l'esecuzione per comandi di azd
specifici nella radice del file azure.yaml
.
La directory del progetto (in cui si trova il file azure.yaml
) è la directory di lavoro corrente predefinita (cwd
) per gli hook dei comandi.
name: todo-nodejs-mongo
metadata:
template: todo-nodejs-mongo@0.0.1-beta
hooks:
prerestore: # Example of an inline script. (shell is required for inline scripts)
shell: sh
run: echo 'Hello'
preprovision: # Example of external script (Relative path from project root)
run: ./hooks/preprovision.sh
services:
web:
project: ./src/web
dist: build
language: js
host: appservice
api:
project: ./src/api
language: js
host: appservice
Gli hook possono anche essere configurati per l'esecuzione solo per servizi specifici definiti nel file .yaml
.
La directory del servizio (lo stesso percorso definito nella proprietà project
della configurazione del servizio nel file azure.yaml
) è la cwd
predefinita per gli hook del servizio.
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
hooks:
prerestore: # Example of an inline script. (shell is required for inline scripts)
shell: sh
run: echo 'Restoring API service...'
prepackage: # Example of external script (Relative path from service path)
run: ./hooks/prepackage.sh
Facoltativamente, gli hook possono essere configurati anche per l'esecuzione in Windows o Posix (Linux & MaxOS). Per impostazione predefinita, se le configurazioni di Windows o Posix vengono escluse, l'hook viene eseguito su tutte le piattaforme.
name: todo-nodejs-mongo
metadata:
template: todo-nodejs-mongo@0.0.1-beta
hooks:
prerestore:
posix: # Only runs on Posix environments
shell: sh
run: echo 'Hello'
windows: # Only runs on Windows environments
shell: pwsh
run: Write-Host "Hello"
services:
web:
project: ./src/web
dist: build
language: js
host: appservice
api:
project: ./src/api
language: js
host: appservice
È possibile configurare più hook per evento in ambiti diversi, ad esempio il livello di registrazione radice o per un servizio specifico:
name: example-project
services:
api:
project: src/api
host: containerapp
language: ts
hooks:
postprovision:
- shell: sh
run: scripts/postprovision1.sh
- shell: sh
run: scripts/postprovision2.sh
hooks:
postprovision:
- shell: sh
run: scripts/postprovision1.sh
- shell: sh
run: scripts/postprovision2.sh
Gli hook possono ottenere e impostare variabili di ambiente nel file .env
usando i comandi azd env get-values
e azd set <key> <value>
. Gli hook possono anche recuperare le variabili di ambiente dall'ambiente locale usando la sintassi ${YOUR_ENVIRONMENT VARIABLE}
.
azd
imposta automaticamente determinate variabili di ambiente nel file di .env
quando vengono eseguiti comandi, ad esempio AZURE_ENV_NAME
e AZURE_LOCATION
. Anche i parametri di output del file main.bicep
vengono impostati nel file .env
. La pagina gestire le variabili di ambiente include altre informazioni sui flussi di lavoro delle variabili di ambiente.
Gli hook possono ottenere e impostare variabili di ambiente inline o tramite script di riferimento, come illustrato nell'esempio seguente:
name: azure-search-openai-demo
metadata:
template: azure-search-openai-demo@0.0.2-beta
services:
backend:
project: ./app/backend
language: py
host: appservice
hooks:
postprovision:
windows: # Run referenced script that uses environment variables (script shown below)
shell: pwsh
run: ./scripts/prepdocs.ps1
interactive: true
continueOnError: false
posix:
shell: sh
run: ./scripts/prepdocs.sh
interactive: true
continueOnError: false
postdeploy: # Pull environment variable inline from local device and set in .env file
shell: sh
run: azd env set REACT_APP_WEB_BASE_URL ${SERVICE_WEB_ENDPOINT_URL}
Script di riferimento: prepdocs.sh
:
echo "Loading azd .env file from current environment"
# Use the `get-values` azd command to retrieve environment variables from the `.env` file
while IFS='=' read -r key value; do
value=$(echo "$value" | sed 's/^"//' | sed 's/"$//')
export "$key=$value"
done <<EOF
$(azd env get-values)
EOF
echo 'Creating python virtual environment "scripts/.venv"'
python3 -m venv scripts/.venv
echo 'Installing dependencies from "requirements.txt" into virtual environment'
./scripts/.venv/bin/python -m pip install -r scripts/requirements.txt
echo 'Running "prepdocs.py"'
./scripts/.venv/bin/python ./scripts/prepdocs.py './data/*'
--storageaccount "$AZURE_STORAGE_ACCOUNT"
--container "$AZURE_STORAGE_CONTAINER"
--searchservice "$AZURE_SEARCH_SERVICE"
--openaiservice "$AZURE_OPENAI_SERVICE"
--openaideployment "$AZURE_OPENAI_EMB_DEPLOYMENT"
--index "$AZURE_SEARCH_INDEX"
--formrecognizerservice "$AZURE_FORMRECOGNIZER_SERVICE"
--tenantid "$AZURE_TENANT_ID" -v
Per informazioni su come inviare un bug, richiedere assistenza o proporre una nuova funzionalità per l'interfaccia della riga di comando per sviluppatori di Azure, visitare la pagina risoluzione dei problemi e supporto.
Eventi
Creare app e agenti di intelligenza artificiale
17 mar, 21 - 21 mar, 10
Partecipa alla serie meetup per creare soluzioni di intelligenza artificiale scalabili basate su casi d'uso reali con altri sviluppatori ed esperti.
Iscriviti subito