azd
modèles sont des référentiels de blueprints qui incluent du code d’application de preuve de concept, des configurations d’éditeur/IDE et du code d’infrastructure écrit dans Bicep ou Terraform. Ces modèles sont destinés à être modifiés et adaptés à vos exigences d’application spécifiques, puis utilisés pour obtenir votre application sur Azure à l’aide d’Azure Developer CLI (azd
). Le schéma azure.yaml définit et décrit les applications et les types de ressources Azure incluses dans ces modèles.
Échantillon
Vous trouverez ci-dessous un exemple générique d’une azure.yaml
requise pour votre modèle de 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
Comparez les azure.yaml
à partir de notre modèle 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
Descriptions des propriétés
Nom de l’élément |
Obligatoire |
Description |
name |
Y |
(chaîne) Nom de l’application. |
resourceGroup |
N |
(chaîne) Nom du groupe de ressources Azure. Une fois spécifié, remplace le nom du groupe de ressources utilisé pour l’approvisionnement d’infrastructure. |
metadata |
N |
(objet) Voir propriétés de métadonnées pour plus d’informations. |
infra |
N |
(objet) Fournit une configuration supplémentaire pour l’approvisionnement d’infrastructure Azure. Pour plus d’informations, consultez propriétés infra. |
services |
Y |
(objet) Définition des services qui composent l’application. Pour plus d’informations, consultez propriétés des services. |
pipeline |
N |
(objet) Définition du pipeline d’intégration continue. Pour plus d’informations, consultez propriétés de pipeline. |
hooks |
N |
Crochets au niveau de la commande. Les hooks doivent correspondre azd noms de commandes précédés de pre ou de post en fonction du moment où le script doit s’exécuter. Lors de la spécification de chemins d’accès, ils doivent être relatifs au chemin du projet. Pour plus d’informations, consultez Personnaliser vos flux de travail Azure Developer CLI à l’aide de commandes et de hooks d’événements. |
requiredVersions |
N |
Plage de versions prises en charge de azd pour ce projet. Si la version de azd se trouve en dehors de cette plage, le projet ne peut pas être chargé. Facultatif (autorise toutes les versions en cas d’absence). Exemple : >= 0.6.0-beta.3 |
Nom de l’élément |
Obligatoire |
Description |
Exemple |
template |
N |
(chaîne) Identificateur du modèle à partir duquel l’application a été créée. |
todo-nodejs-mongo@0.0.1-beta |
propriétés infra
Nom de l’élément |
Obligatoire |
Description |
Exemple |
provider |
N |
(chaîne) Le fournisseur d’infrastructure pour les ressources Azure de l’application. (Par défaut : bicep). |
Consultez l’exemple Terraform ci-dessous.
bicep , terraform |
path |
N |
(chaîne) Le chemin d’accès relatif au dossier relatif à l’emplacement contenant des modèles d’approvisionnement Azure pour le fournisseur spécifié. (Valeur par défaut : infra). |
|
module |
N |
(chaîne) Le nom du module par défaut avec les modèles d’approvisionnement Azure. (Valeur par défaut : main). |
|
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
propriétés services
Nom de l’élément |
Obligatoire |
Description |
Exemple |
resourceName |
N |
(chaîne) Nom de la ressource Azure qui implémente le service. S’il n’est pas spécifié, azd recherche une ressource par azd-env-name et azd-service-name balises. S’il est introuvable, il recherche un nom de ressource construit à partir du nom de l’environnement actuel, concaténé avec le nom du service (<environment-name><resource-name> ). |
prodapi |
project |
Y |
(chaîne) chemin d’accès au répertoire de code source du service. |
|
host |
Y |
(chaîne) type de ressource Azure utilisé pour l’implémentation de service. S’il est omis, App Service est supposé. |
appservice , containerapp , function , staticwebapp , aks (uniquement pour les projets déployables via kubectl apply -f ), springapp (quand activé - en savoir plus sur les fonctionnalités alpha ) |
language |
Y |
(chaîne) langage d’implémentation de service. |
dotnet , csharp , fsharp , py , python , js , ts , java |
module |
Y |
(chaîne) chemin d’accès du module d’infrastructure utilisé pour déployer le service par rapport au dossier infra racine. Si elle est omise, l’interface CLI suppose que le nom du module est identique au nom du service. |
|
dist |
Y |
(chaîne) chemin relatif aux artefacts de déploiement de service. L’interface CLI utilise des fichiers sous ce chemin d’accès pour créer l’artefact de déploiement (fichier.zip). S’il est omis, tous les fichiers sous le répertoire du projet de service sont inclus. |
build |
docker |
N |
Applicable uniquement lorsque host est containerapp . Impossible de contenir des propriétés supplémentaires. |
Consultez l’exemple Docker personnalisé ci-dessous.
path
(chaîne): chemin d’accès au fichier Dockerfile. Par défaut : ./Dockerfile ; context (chaîne): contexte de build Docker. Quand elle est spécifiée, remplace le contexte par défaut. Par défaut : . ; platform (chaîne): cible de la plateforme. Par défaut : amd64 ; remoteBuild (booléen): active les builds ACR distantes. Par défaut : false |
k8s |
N |
Options de configuration d’Azure Kubernetes Service (AKS). |
Consultez l’exemple AKS ci-dessous.
deploymentPath
(chaîne): facultatif. Chemin relatif du chemin d’accès du service aux manifestes de déploiement k8s. Quand elle est définie, elle remplace l’emplacement du chemin de déploiement par défaut pour les manifestes de déploiement k8s. Par défaut : manifests ; namespace (chaîne): facultatif. Espace de noms k8s des ressources déployées. Une fois spécifié, un nouvel espace de noms k8s est créé s’il n’existe pas déjà. Par défaut : Project name ; deployment (objet): consultez propriétés de déploiement;service (objet) : voir propriétés du service; ingress (objet): voir propriétés d’entrée. |
hooks |
N |
Crochets de niveau de service. Les hooks doivent correspondre service noms d’événements précédés de pre ou de post en fonction du moment où le script doit s’exécuter. Lorsque vous spécifiez des chemins d’accès, ils doivent être relatifs au chemin du service. |
Pour plus d’informations, consultez Personnaliser vos flux de travail Azure Developer CLI à l’aide de commandes et de hooks d’événements. |
apiVersion |
N |
Spécifiez une api-version explicite lors du déploiement de services hébergés par Azure Container Apps (ACA). Cette fonctionnalité vous permet d’éviter d’utiliser une version incompatible de l’API et rend le déploiement plus faiblement couplé pour éviter de perdre des données de configuration personnalisées pendant le marshaling JSON vers une version codée en dur de la bibliothèque du Kit de développement logiciel (SDK) Azure. |
apiVersion: 2024-02-02-preview |
Exemple d’options Docker
Dans l’exemple suivant, nous déclarons les options Docker pour une application conteneur.
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
Propriétés de deployment
AKS
Nom de l’élément |
Obligatoire |
Description |
Exemple |
name |
N |
(chaîne) Facultatif. Nom de la ressource de déploiement k8s à utiliser pendant le déploiement. Utilisé pendant le déploiement pour vous assurer que le déploiement du déploiement de k8s a été terminé. S’il n’est pas défini, recherche une ressource de déploiement dans le même espace de noms que celui qui contient le nom du service. Par défaut : Service name |
api |
Propriétés de service
AKS
Nom de l’élément |
Obligatoire |
Description |
Exemple |
name |
N |
(chaîne) Facultatif. Nom de la ressource de service k8s à utiliser comme point de terminaison de service par défaut. Utilisé lors de la détermination des points de terminaison pour la ressource de service par défaut. S’il n’est pas défini, recherche une ressource de déploiement dans le même espace de noms que celui qui contient le nom du service. (Valeur par défaut : Nom du service) |
api |
Propriétés de ingress
AKS
Nom de l’élément |
Obligatoire |
Description |
Exemple |
name |
N |
(chaîne) Facultatif. Nom de la ressource d’entrée k8s à utiliser comme point de terminaison de service par défaut. Utilisé lors de la détermination des points de terminaison pour la ressource d’entrée par défaut. S’il n’est pas défini, recherche une ressource de déploiement dans le même espace de noms que celui qui contient le nom du service. Par défaut : Service name |
api |
relativePath |
N |
(chaîne) Facultatif. Chemin d’accès relatif au service à partir de la racine de votre contrôleur d’entrée. Quand elle est définie, elle est ajoutée à la racine de votre chemin d’accès à la ressource d’entrée. |
|
Exemple AKS avec des hooks de niveau de service
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}
propriétés pipeline
Nom de l’élément |
Obligatoire |
Description |
Exemple |
provider |
N |
(chaîne) Le fournisseur de pipeline à utiliser pour l’intégration continue. (Par défaut : github ). |
github , azdo |
Azure Pipelines (AzDo) en tant qu’exemple de pipeline CI/CD
name: yourApp
services:
web:
project: src/web
dist: build
language: js
host: appservice
pipeline:
provider: azdo
propriétés workflows
Nom de l’élément |
Type |
Obligatoire |
Description |
en haut |
objet |
Non |
Lorsque spécifié, le comportement par défaut du flux de travail azd up est substitué. |
propriétés up
Nom de l’élément |
Type |
Obligatoire |
Description |
escalier |
tableau |
Oui |
Étapes à exécuter dans le flux de travail. |
propriétés steps
Nom de l’élément |
Type |
Obligatoire |
Description |
azd |
corde |
Oui |
Nom et arguments de la commande azd à exécuter. |
Exemple de flux de travail
Le fichier azure.yaml
suivant modifie le comportement par défaut de azd up
pour déplacer l’étape de azd package
après l’étape de azd provision
à l’aide d’un flux de travail. Cet exemple peut être utilisé dans des scénarios où vous devez connaître les URL des ressources pendant le processus de génération ou d’empaquetage.
name: todo-nodejs-mongo
metadata:
template: todo-nodejs-mongo@0.0.1-beta
workflows:
up:
steps:
- azd: provision
- azd: deploy --all
Demander de l’aide
Pour plus d’informations sur la façon de déposer un bogue, de demander de l’aide ou de proposer une nouvelle fonctionnalité pour Azure Developer CLI, consultez la page résolution des problèmes et de support.
Étapes suivantes