Condividi tramite


Schema azure.yaml dell'interfaccia della riga di comando per sviluppatori di Azure

azd I modelli sono repository di progetti che includono codice dell'applicazione proof-of-concept, configurazioni dell'editor/IDE e codice dell'infrastruttura scritto in Bicep o Terraform. Questi modelli devono essere modificati e adattati per i requisiti specifici dell'applicazione e quindi usati per ottenere l'applicazione in Azure usando l'interfaccia della riga di comando per sviluppatori di Azure (azd). Lo schema azure.yaml definisce e descrive le app e i tipi di risorse di Azure inclusi in questi modelli.

Esempio

Di seguito è riportato un esempio generico di obbligatorio azure.yaml per il azd modello.

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

Confrontare con il azure.yaml modello ToDo NodeJs Mongo:

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

Descrizioni delle proprietà

Nome elemento Obbligatorio Descrizione
name Y (string) Nome dell'applicazione.
resourceGroup N (string) Nome del gruppo di risorse di Azure. Se specificato, eseguirà l'override del nome del gruppo di risorse usato per il provisioning dell'infrastruttura.
metadata N (oggetto) Per altri dettagli, vedere proprietà dei metadati.
infra N (oggetto) Fornisce una configurazione aggiuntiva per il provisioning dell'infrastruttura di Azure. Per altri dettagli, vedere Le proprietà infra.
services Y (oggetto) Definizione di servizi che costituiscono l'applicazione. Per altri dettagli, vedere proprietà dei servizi.
pipeline N (oggetto) Definizione della pipeline di integrazione continua. Per altri dettagli, vedere proprietà della pipeline.
hooks N Hook a livello di comando. Gli hook devono corrispondere azd ai nomi dei comandi preceduti pre da o post a seconda del momento in cui deve essere eseguito lo script. Quando si specificano percorsi, devono essere relativi al percorso del progetto. Per altri dettagli, vedere Personalizzare i flussi di lavoro dell'interfaccia della riga di comando per sviluppatori di Azure usando hook di comandi ed eventi.
requiredVersions N Gamma di versioni supportate di azd per questo progetto. Se la versione di azd non è compresa in questo intervallo, il progetto non verrà caricato. Facoltativo (consente tutte le versioni se assenti). Esempio: >= 0.6.0-beta.3

Proprietà metadata

Nome elemento Obbligatorio Descrizione Esempio
template N (string) Identificatore del modello da cui è stata creata l'applicazione. todo-nodejs-mongo@0.0.1-beta

Proprietà infra

Nome elemento Obbligatorio Descrizione Esempio
provider N (string) Provider di infrastruttura per le risorse di Azure dell'applicazione. (Impostazione predefinita: bicep). Vedere l'esempio terraform seguente. bicep, terraform
path N (string) Percorso della cartella relativa al percorso contenente i modelli di provisioning di Azure per il provider specificato. (Impostazione predefinita: infra).
module N (string) Nome del modulo predefinito con i modelli di provisioning di Azure. (Impostazione predefinita: main).

Esempio di provider Terraform as 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

Proprietà services

Nome elemento Obbligatorio Descrizione Esempio
resourceName N (string) Nome della risorsa di Azure che implementa il servizio. Se non specificato, azd cercherà una risorsa in base ai azd-env-name tag e azd-service-name . Se non viene trovato, cercherà un nome di risorsa costruito dal nome dell'ambiente corrente, concatenato con il nome del servizio (<environment-name><resource-name>). prodapi
project Y (string) Percorso della directory del codice sorgente del servizio.
host Y (string) Tipo di risorsa di Azure usata per l'implementazione del servizio. Se omesso, si presuppone servizio app. appservice, containerapp, functionaksstaticwebapp(solo per i progetti distribuibili tramite kubectl apply -f), springapp (se abilitata- altre informazioni sulle funzionalità alfa)
language Y (string) Linguaggio di implementazione del servizio. dotnet, csharp, fsharp, pypython, js, , tsjava
module Y (string) Percorso del modulo di infrastruttura usato per distribuire il servizio relativo alla cartella infrastruttura radice. Se omesso, l'interfaccia della riga di comando presuppone che il nome del modulo corrisponda al nome del servizio.
dist Y (string) Percorso relativo agli artefatti di distribuzione del servizio. L'interfaccia della riga di comando userà i file in questo percorso per creare l'artefatto di distribuzione (file con estensione zip). Se omesso, verranno inclusi tutti i file nella directory del progetto di servizio. build
docker N Applicabile solo quando host è containerapp. Non può contenere proprietà aggiuntive. Vedere l'esempio Docker personalizzato di seguito. path(string): percorso del Dockerfile. Impostazione predefinita: ./Dockerfile; context(string): contesto di compilazione docker. Se specificato, esegue l'override del contesto predefinito. Impostazione predefinita: .; platform(string): destinazione della piattaforma. Impostazione predefinita: amd64
k8s N Opzioni di configurazione servizio Azure Kubernetes (servizio Azure Kubernetes). Vedere l'esempio del servizio Azure Kubernetes di seguito. deploymentPath(string): facoltativo. Percorso relativo dal percorso del servizio ai manifesti della distribuzione k8s. Se impostato, eseguirà l'override del percorso di distribuzione predefinito per i manifesti della distribuzione k8s. Impostazione predefinita: manifests; namespace(string): facoltativo. Spazio dei nomi k8s delle risorse distribuite. Se specificato, verrà creato un nuovo spazio dei nomi k8s se non esiste già. Impostazione predefinita: Project name; deployment(oggetto): vedere le proprietà di distribuzione; service(oggetto): vedere le proprietà del servizio; ingress(oggetto): vedere le proprietà in ingresso.
hooks N Hook a livello di servizio. Gli hook devono corrispondere service ai nomi degli eventi preceduti pre da o post a seconda del momento in cui deve essere eseguito lo script. Quando si specificano percorsi, devono essere relativi al percorso del servizio. Per altri dettagli, vedere Personalizzare i flussi di lavoro dell'interfaccia della riga di comando per sviluppatori di Azure usando hook di comandi ed eventi.

Esempio di opzioni di Docker

Nell'esempio seguente vengono dichiarate le opzioni Docker per un'app contenitore.

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

Proprietà del servizio Azure Kubernetes deployment

Nome elemento Obbligatorio Descrizione Esempio
name N (string) Opzionale. Nome della risorsa di distribuzione k8s da usare durante la distribuzione. Usato durante la distribuzione per assicurarsi che l'implementazione della distribuzione k8s sia stata completata. Se non impostato, cercherà una risorsa di distribuzione nello stesso spazio dei nomi contenente il nome del servizio. Impostazione predefinita: Service name api

Proprietà del servizio Azure Kubernetes service

Nome elemento Obbligatorio Descrizione Esempio
name N (string) Opzionale. Nome della risorsa del servizio k8s da usare come endpoint di servizio predefinito. Usato per determinare gli endpoint per la risorsa del servizio predefinita. Se non impostato, cercherà una risorsa di distribuzione nello stesso spazio dei nomi contenente il nome del servizio. (Impostazione predefinita: Nome servizio) api

Proprietà del servizio Azure Kubernetes ingress

Nome elemento Obbligatorio Descrizione Esempio
name N (string) Opzionale. Nome della risorsa di ingresso k8s da usare come endpoint di servizio predefinito. Usato per determinare gli endpoint per la risorsa di ingresso predefinita. Se non impostato, cercherà una risorsa di distribuzione nello stesso spazio dei nomi contenente il nome del servizio. Impostazione predefinita: Service name api
relativePath N (string) Opzionale. Percorso relativo del servizio dalla radice del controller di ingresso. Se impostato, verrà aggiunto alla radice del percorso della risorsa in ingresso.

Esempio del servizio Azure Kubernetes con hook a livello di servizio

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}

Proprietà pipeline

Nome elemento Obbligatorio Descrizione Esempio
provider N (string) Provider di pipeline da usare per l'integrazione continua. (Impostazione predefinita: github). github, azdo

Azure Pipelines (AzDo) come esempio di pipeline CI/CD

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

Richiedere assistenza

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 relativa alla risoluzione dei problemi e al supporto tecnico.

Passaggi successivi