Événements
Créer des applications intelligentes
17 mars, 23 h - 21 mars, 23 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Azure Container Apps vous permet d’utiliser GitHub Actions pour publier des révisions sur votre application de conteneur. Quand des commits sont envoyés (push) à votre dépôt GitHub, un workflow est déclenché et met à jour l’image conteneur dans le registre de conteneurs. Azure Container Apps crée une révision basée sur l’image conteneur mise à jour.
Le workflow GitHub Actions est déclenché par les commits dans une branche spécifique de votre dépôt. Quand vous créez le workflow, vous déterminez la branche qui le déclenche.
Cet article vous montre comment créer un workflow entièrement personnalisable. Pour générer un workflow GitHub Actions de démarrage avec Azure CLI, consultez Générer un workflow GitHub Actions avec Azure CLI.
Pour créer et déployer votre application conteneur, vous ajoutez l’action azure/container-apps-deploy-action
à votre workflow GitHub Actions.
L’action prend en charge les scénarios suivants :
Voici quelques scénarios courants d’utilisation de l’action. Pour plus d’informations, consultez la page Place de marché GitHub de l’action.
L’extrait de code suivant montre comment créer une image conteneur à partir du code source et la déployer sur Container Apps.
steps:
- name: Log in to Azure
uses: azure/login@v1
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
- name: Build and deploy Container App
uses: azure/container-apps-deploy-action@v1
with:
appSourcePath: ${{ github.workspace }}/src
acrName: myregistry
containerAppName: my-container-app
resourceGroup: my-rg
L’action utilise le Dockerfile dans appSourcePath
pour générer l’image conteneur. Si aucun Dockerfile n’est trouvé, l’action tente de générer l’image conteneur à partir du code source dans appSourcePath
.
L’extrait de code suivant montre comment déployer une image conteneur existante dans Container Apps.
steps:
- name: Log in to Azure
uses: azure/login@v1
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
- name: Build and deploy Container App
uses: azure/container-apps-deploy-action@v1
with:
acrName: myregistry
containerAppName: my-container-app
resourceGroup: my-rg
imageToDeploy: myregistry.azurecr.io/app:${{ github.sha }}
Important
Si vous créez une image conteneur dans une étape distincte, assurez-vous d’utiliser une balise unique comme le SHA du commit au lieu d’une balise stable comme latest
. Pour plus d’informations, consultez Bonnes pratiques en matière de balise d’image.
L’action Azure Container Apps doit s’authentifier auprès de votre instance Azure Container Registry pour envoyer (push) l’image conteneur. L’application conteneur doit également s’authentifier auprès de votre instance Azure Container Registry pour tirer l’image conteneur.
Pour envoyer (push) des images, l’action s’authentifie automatiquement auprès du registre de conteneurs spécifié dans acrName
à l’aide des informations d’identification fournies à l’action azure/login
.
Pour extraire des images, Azure Container Apps utilise une identité managée (recommandé) ou des informations d’identification d’administrateur pour s’authentifier auprès de l’instance Azure Container Registry. Pour utiliser une identité managée, l’application conteneur que l’action déploie doit être configurée pour utiliser une identité managée. Pour s’authentifier avec les informations d’identification d’administrateur du registre, définissez les entrées acrUsername
et acrPassword
de l’action.
Vous effectuez les étapes suivantes pour configurer un workflow GitHub Actions à déployer sur Azure Container Apps.
AcrPull
pour Azure Container Registry à l’identité managée de l’application conteneurCondition requise | Instructions |
---|---|
Compte Azure | Si vous n’en avez pas un, créez un compte gratuitement. Vous avez besoin de l’autorisation Contributeur ou Propriétaire sur l’abonnement Azure pour continuer. Pour plus d’informations, consultez Attribuer des rôles Azure à l’aide du portail Azure. |
Compte GitHub | Inscrivez-vous gratuitement. |
Azure CLI | Installez Azure CLI. |
Avant de créer le workflow, le code source de votre application doit se trouver dans un référentiel GitHub.
Se connecter à Azure avec Azure CLI.
az login
Ensuite, installez l’extension Azure Container Apps la plus récente pour l’interface CLI.
az extension add --name containerapp --upgrade
Si vous n’avez pas votre propre référentiel GitHub, créez-en un à partir d’un exemple.
my-container-app
.Clonez le référentiel sur votre ordinateur local.
git clone https://github.com/<YOUR_GITHUB_ACCOUNT_NAME>/my-container-app.git
Créez votre application conteneur à l’aide de la commande az containerapp up
en effectuant les étapes suivantes. Cette commande crée des ressources Azure, génère l’image conteneur, stocke l’image dans un registre et la déploie dans une application conteneur.
Une fois votre application créée, vous pouvez ajouter une identité managée à l’application et lui attribuer le rôle AcrPull
pour permettre à l’identité de tirer des images du registre.
Passez au dossier src du référentiel cloné.
cd my-container-app
cd src
Créez des ressources Azure et déployez une application conteneur avec la commande az containerapp up
.
az containerapp up \
--name my-container-app \
--source . \
--ingress external
Dans la sortie de la commande, notez le nom de l’instance Azure Container Registry.
Récupérez l’ID de ressource complet du registre de conteneurs.
az acr show --name <ACR_NAME> --query id --output tsv
Remplacez <ACR_NAME>
par le nom de votre registre.
Activez l’identité managée pour l’application conteneur.
az containerapp identity assign \
--name my-container-app \
--resource-group my-container-app-rg \
--system-assigned
Notez l’ID principal de l’identité managée dans la sortie de la commande.
Attribuez le rôle AcrPull
de l’instance Azure Container Registry à l’identité managée de l’application conteneur.
az role assignment create \
--assignee <MANAGED_IDENTITY_PRINCIPAL_ID> \
--role AcrPull \
--scope <ACR_RESOURCE_ID>
Remplacez <MANAGED_IDENTITY_PRINCIPAL_ID>
par l’ID principal de l’identité managée et <ACR_RESOURCE_ID>
par l’ID de ressource d’Azure Container Registry.
Configurez l’application conteneur pour utiliser l’identité managée afin de tirer des images d’Azure Container Registry.
az containerapp registry set \
--name my-container-app \
--resource-group my-container-app-rg \
--server <ACR_NAME>.azurecr.io \
--identity system
Remplacer <ACR_NAME>
par le nom de votre registre Azure Container Registry.
Le workflow GitHub nécessite un secret nommé AZURE_CREDENTIALS
pour s’authentifier auprès d’Azure. Le secret contient les informations d’identification d’un principal de service doté du rôle Contributeur sur le groupe de ressources contenant l’application conteneur et le registre de conteneurs.
Créez un principal de service doté du rôle Contributeur sur le groupe de ressources qui contient l’application conteneur et le registre de conteneurs.
az ad sp create-for-rbac \
--name my-app-credentials \
--role contributor \
--scopes /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/my-container-app-rg \
--json-auth \
--output json
Remplacez <SUBSCRIPTION_ID>
par l’ID de votre abonnement Azure. Si votre registre de conteneurs se trouve dans un autre groupe de ressources, spécifiez les deux groupes de ressources dans le paramètre --scopes
.
Copiez la sortie JSON à partir de la commande.
Dans le dépôt GitHub, accédez à Settings (Paramètres)>Secrets>Actions, puis sélectionnez New repository secret (Nouveau secret de dépôt).
Entrez AZURE_CREDENTIALS
comme nom et collez le contenu de la sortie JSON comme valeur.
Sélectionnez Ajouter un secret.
Dans le dépôt GitHub, accédez à Actions et sélectionnez New workflow (Nouveau workflow).
Sélectionnez Configurer vous-même un workflow.
Collez le code YAML suivant dans l’éditeur.
name: Azure Container Apps Deploy
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Log in to Azure
uses: azure/login@v1
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
- name: Build and deploy Container App
uses: azure/container-apps-deploy-action@v1
with:
appSourcePath: ${{ github.workspace }}/src
acrName: <ACR_NAME>
containerAppName: my-container-app
resourceGroup: my-container-app-rg
Remplacer <ACR_NAME>
par le nom de votre registre Azure Container Registry. Vérifiez que le nom de la branche sous branches
et les valeurs de appSourcePath
, containerAppName
et resourceGroup
correspondent aux valeurs de votre dépôt et de vos ressources Azure.
Commitez les changements dans la branche primaire.
Une exécution de workflow GitHub Actions doit commencer à se générer et à déployer votre application conteneur. Pour vérifier sa progression, accédez à Actions.
Pour déployer une nouvelle révision de votre application, envoyez (push) un nouveau commit à la branche primaire.
Événements
Créer des applications intelligentes
17 mars, 23 h - 21 mars, 23 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantEntrainement
Module
Créer et déployer des applications sur Azure à l’aide de GitHub Actions - Training
Créez deux workflows de déploiement à l’aide de GitHub Actions et de Microsoft Azure. Découvrez comment déclencher un workflow CD et stocker des informations d’identification.
Certification
Microsoft Certified: Azure Developer Associate - Certifications
Générez des solutions de bout en bout dans Microsoft Azure pour créer des fonctions Azure Functions, implémenter et gérer des applications web, développer des solutions qui utilisent le Stockage Azure, et bien plus encore.