Démarrage rapide : utiliser GitHub Actions pour se connecter à Azure Database pour MySQL – Serveur flexible
S'APPLIQUE À : Azure Database pour MySQL - Serveur unique Azure Database pour MySQL - Serveur flexible
Important
Le serveur unique Azure Database pour MySQL est en voie de mise hors service. Nous vous conseillons vivement de procéder à une mise à niveau vers Azure Database pour MySQL – Serveur flexible. Pour obtenir plus d’informations sur la migration vers Azure Database pour MySQL – Serveur flexible, consultez Qu’en est-il du Serveur unique Azure Database pour MySQL ?
Démarrez avec GitHub Actions en utilisant un workflow pour déployer des mises à jour de base de données sur serveur flexible Azure Database pour MySQL.
Prérequis
Vous devez disposer des éléments suivants :
Compte Azure avec un abonnement actif. Créez un compte gratuitement.
Un compte GitHub. Si vous n’avez pas de compte GitHub, inscrivez-vous gratuitement.
Un dépôt GitHub avec des exemples de données (
data.sql
).Important
Ce guide de démarrage rapide suppose que vous avez cloné un référentiel GitHub sur votre ordinateur afin de pouvoir ajouter l’adresse IP associée à une règle de pare-feu, si nécessaire.
Une instance de serveur flexible Azure Database pour MySQL.
Vue d’ensemble du fichier de workflow
Un workflow GitHub Actions est défini par un fichier YAML (.yml) dans le chemin /.github/workflows/
de votre dépôt. Cette définition contient les étapes et les paramètres qui composent le workflow.
Le fichier comporte deux sections :
Section | Tâches |
---|---|
Authentification | 1. Générer les informations d’identification du déploiement. |
Déployer | 1. Déployez la base de données. |
Générer les informations d’identification du déploiement
Créez un principal de service à l’aide de la commande az ad sp create-for-rbac dans Azure CLI. Exécutez cette commande en utilisant Azure Cloud Shell dans le portail Azure ou en sélectionnant le bouton Essayer.
az ad sp create-for-rbac --name "myML" --role contributor \
--scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> \
--json-auth
Le paramètre --json-auth
est disponible dans les versions d’Azure CLI >= 2.51.0. Les versions antérieures à celle-ci utilisent --sdk-auth
avec un avertissement de dépréciation.
Dans l’exemple ci-dessus, remplacez les espaces réservés par votre ID d’abonnement, le nom de votre groupe de ressources et le nom de votre application. La sortie correspond à un objet JSON avec les informations d’identification de l’attribution de rôle qui fournit l’accès à votre application App Service, similaire à ce qui suit. Copiez cet objet JSON pour une version ultérieure.
{
"clientId": "<GUID>",
"clientSecret": "<GUID>",
"subscriptionId": "<GUID>",
"tenantId": "<GUID>",
(...)
}
Copier la chaîne de connexion MySQL
Dans le portail Azure, accédez à votre instance de serveur flexible Azure Database pour MySQL, puis ouvrez Paramètres>Chaînes de connexion. Copiez la chaîne de connexion ADO.NET. Remplacez les valeurs d’espace réservé spécifiées pour your_database
et your_password
.
Important
- Pour un serveur unique Azure Database pour MySQL, utilisez Uid=adminusername@servername. Le nom du serveur (@servername) est obligatoire.
- Pour le serveur flexible Azure Database pour MySQL, utilisez Uid=adminusername sans le @servername.
Vous utiliserez la chaîne de connexion comme secret GitHub.
Configurer les secrets GitHub
Dans GitHub, accédez à votre dépôt.
Sélectionnez Paramètres dans le volet de navigation.
Sélectionnez Sécurité > Secrets et variables > Actions.
Sélectionnez New repository secret (Nouveau secret de dépôt).
Collez l’intégralité de la sortie JSON de la commande Azure CLI dans le champ de valeur du secret. Nommez le secret
AZURE_CREDENTIALS
.Sélectionnez Ajouter un secret.
Ajouter votre workflow
Accédez à Actions pour votre référentiel GitHub.
Sélectionnez Configurer vous-même un workflow.
Supprimez tous les éléments après la section
on:
de votre fichier de workflow. Par exemple, votre workflow restant peut ressembler à ce qui suit.name: CI on: push: branches: [ main ] pull_request: branches: [ main ]
Renommez votre workflow
MySQL for GitHub Actions
et ajoutez les actions d’extraction et de connexion. Ces actions extraient le code de votre site et vous authentifient auprès d’Azure en utilisant le secret GitHubAZURE_CREDENTIALS
que vous avez créé précédemment.name: MySQL for GitHub Actions on: push: branches: [ main ] pull_request: branches: [ main ] jobs: build: runs-on: windows-latest steps: - uses: actions/checkout@v1 - uses: azure/login@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }}
Utilisez l’action Déployer d’Azure MySQL pour vous connecter à votre instance MySQL. Remplacez
MYSQL_SERVER_NAME
par le nom de votre serveur. Vous devez disposer d’un fichier de données MySQLdata.sql
au niveau racine de votre dépôt.- uses: azure/mysql@v1 with: server-name: MYSQL_SERVER_NAME connection-string: ${{ secrets.AZURE_MYSQL_CONNECTION_STRING }} sql-file: './data.sql'
Terminez votre workflow en ajoutant une action permettant de vous déconnecter d’Azure. Voici le workflow terminé. Le fichier apparaît dans le dossier
.github/workflows
de votre dépôt.name: MySQL for GitHub Actions on: push: branches: [ main ] pull_request: branches: [ main ] jobs: build: runs-on: windows-latest steps: - uses: actions/checkout@v1 - uses: azure/login@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }} - uses: azure/mysql@v1 with: server-name: MYSQL_SERVER_NAME connection-string: ${{ secrets.AZURE_MYSQL_CONNECTION_STRING }} sql-file: './data.sql' # Azure logout - name: logout run: | az logout
Vérifier votre déploiement
Accédez à Actions pour votre référentiel GitHub.
Ouvrez le premier résultat pour afficher les journaux détaillés de l’exécution de votre workflow.
Nettoyer les ressources
Quand votre référentiel et votre base de données de serveur flexible Azure Database pour MySQL ne sont plus nécessaires, nettoyez les ressources que vous avez déployées en supprimant le groupe de ressources et votre référentiel GitHub.