Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Après avoir créé un nouveau modèle CLI développeur (azd) Azure ou commencé à partir d’un modèle existant, vous pouvez étendre et faire évoluer son application et son infrastructure à mesure que vos besoins changent. Ce tutoriel montre comment ajouter un nouveau service Azure à un modèle sans compter sur un module que le modèle fournit déjà.
Vous allez commencer par le hello-azd modèle, créer un module Bicep qui définit une ressource Azure Translator, référencer le module à partir du point d'entrée de l'infrastructure du modèle et exposer ses sorties en tant que azd valeurs d'environnement. Le tutoriel se concentre sur l’extension de l’infrastructure et ne modifie pas le code de l’application.
Note
Vous pouvez apporter les modifications suivantes directement ou avec l’aide d’un assistant de codage IA. Quelle que soit la méthode de création, passez en revue les fichiers résultants et validez le modèle avant le déploiement.
Prerequisites
Pour terminer ce tutoriel, vous avez besoin de ce qui suit :
- Azure Developer CLI installé.
- Un abonnement Azure.
- Autorisation de créer des ressources Azure dans l’abonnement.
- Répertoire vide pour le modèle initialisé.
Initialiser le modèle
Ouvrez un terminal dans un répertoire vide, puis initialisez le hello-azd modèle dans ce répertoire :
azd init --template hello-azd .
Le modèle inclut les éléments suivants :
- Une application C# déployée dans Azure Container Apps en tant que service
acadansazure.yaml. - Identité managée affectée par l’utilisateur pour l’application.
- Un compte stockage Azure avec un conteneur d’objets blob et une table.
- Azure Container Registry et un environnement de Azure Container Apps.
- Modules Bicep réutilisables sous
infra/core.
Pour obtenir des conseils sur la sélection et l’examen d’un modèle avant l’initialisation, consultez Démarrer à partir d’un modèle existant.
Créer un module Translator
Créez un fichier nommé infra/translator.bicep, manuellement ou avec l’aide d’un assistant de codage IA. Ce nouveau module est autonome et ne dépend pas des modules du modèle de départ :
@description('Name of the Azure Translator resource.')
param name string
@description('Azure region for the resource.')
param location string
@description('Tags to apply to the resource.')
param tags object = {}
@description('Pricing tier for Azure Translator.')
@allowed([
'F0'
'S1'
])
param sku string = 'F0'
resource translator 'Microsoft.CognitiveServices/accounts@2023-05-01' = {
name: name
location: location
kind: 'TextTranslation'
sku: {
name: sku
}
properties: {
customSubDomainName: name
disableLocalAuth: true
publicNetworkAccess: 'Enabled'
}
tags: tags
}
output name string = translator.name
output endpoint string = translator.properties.endpoint
Le module utilise le TextTranslation type de ressource et désactive l’authentification par clé locale. Le F0 niveau est utile pour l’évaluation, mais n’autorise qu’une seule ressource Translator gratuite par abonnement. Utilisez S1 si l’abonnement contient déjà une F0 ressource ou si le projet nécessite un niveau payant.
Important
Cet exemple d’introduction active le point de terminaison public afin de pouvoir approvisionner la ressource sans ajouter d’infrastructure réseau. Avant d’utiliser ce modèle en production, évaluez les points de terminaison privés, les contrôles d’accès réseau, la surveillance et les exigences de sécurité de votre organisation.
Référencer le module à partir de main.bicep
Le modèle hello-azd définit le groupe de ressources rg ainsi que les valeurs location, tags et resourceToken dans infra/main.bicep. Vous pouvez effectuer cette modification manuellement ou inviter un assistant IA à l’ajouter. Ajoutez le module suivant après la déclaration de rg ressource :
module translator './translator.bicep' = {
name: 'translator'
scope: rg
params: {
name: 'translator-${resourceToken}'
location: location
tags: tags
}
}
La scope propriété déploie le module dans le groupe de ressources créé par le modèle. La valeur existante resourceToken rend le nom de ressource Translator distinct pour chaque environnement.
Exporter les résultats de Translator
Ajoutez les sorties suivantes à la fin de infra/main.bicep:
output AZURE_TRANSLATOR_NAME string = translator.outputs.name
output AZURE_TRANSLATOR_ENDPOINT string = translator.outputs.endpoint
Après le déploiement, azd enregistre ces données de sortie non secrètes dans l’environnement actif. Une modification ultérieure du code d’application peut utiliser ces valeurs pour localiser la ressource Translator.
Approvisionner et vérifier l’infrastructure
Provisionnez l’infrastructure du modèle sans déployer son code d’application :
azd provision
Exécutez et vérifiez azd env get-values que la sortie inclut AZURE_TRANSLATOR_NAME et AZURE_TRANSLATOR_ENDPOINT. Dans le portail Azure, vérifiez que le groupe de ressources contient une ressource Azure Translator.
À ce stade, le modèle provisionne le service IA, mais ne connecte pas l’exemple d’application à celui-ci. Pour finaliser cette intégration, configurez un accès selon le principe du moindre privilège pour l’identité managée de l’application, fournissez le point de terminaison à l’application et ajoutez un client Traducteur au code de l’application. Pour plus d’informations, consultez la documentation Azure Translator.
Nettoyer les ressources
Lorsque vous n’avez plus besoin des ressources, supprimez-les pour éviter les frais continus :
azd down --purge
Contenu connexe
- Vue d’ensemble du développement de modèles
- Commencer avec un nouveau modèle
- Démarrer à partir d’un modèle existant
- Explorer et modifier des fichiers de modèle
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 l’interface CLI Azure développeur, visitez la page troubleshooting et support.