Interaction avec GitHub Actions

GitHub Actions est une fonctionnalité sur GitHub qui vous permet d’automatiser vos workflows de développement de logiciels. Si votre code source est stocké dans un référentiel GitHub, vous pouvez créer un workflow personnalisé dans GitHub Actions pour générer, tester, empaqueter, mettre en production ou déployer n’importe quel projet de code.

Dans cet article, vous allez apprendre à utiliser GitHub Actions pour créer un workflow CI/CD et déployer un travail Stream Analytics sur Azure. Ainsi, la prochaine fois que vous apporterez des modifications à votre référentiel GitHub, cela déclenchera automatiquement le workflow et déploiera votre projet Stream Analytics sur Azure.

Prérequis

Avant de commencer, vous devez disposer des prérequis suivants :

  • Un compte Azure avec un abonnement actif.
  • Un compte GitHub pour configurer des référentiels GitHub, créer des workflows et configurer des secrets GitHub.
  • Exécutez la commande az dans PowerShell. Suivez ce guide pour installer ou mettre à jour l’interface de ligne de commande (CLI) Azure sur votre ordinateur local.

Étape 1 : Envoyer (push) le projet Stream Analytics vers le référentiel GitHub

Nous utilisons l’extension Azure Stream Analytics pour Visual Studio Code (VS Code) pour gérer votre projet Stream Analytics. Suivez ce guide si vous ne l’avez pas installée.

  1. Accédez à l’éditeur de requête dans le Portail Azure et sélectionnez Ouvrir dans VS Code.

    Capture d’écran du portail Azure utilisant la fonction Ouvrir dans VS Code dans le fichier de requête.

  2. Une fois l’opération terminée, vous devriez voir votre projet Stream Analytics dans l’espace de travail VS Code.

    Capture d’écran de l’espace de travail VS Code après le travail d’exportation.

  3. Appuyez sur Ctrl+J pour ouvrir le terminal dans VS Code. Entrez la commande git pour envoyer (push) le projet vers votre référentiel GitHub.

    Capture d’écran du terminal VS Code.

Étape 2 : Configurer des secrets dans GitHub

Vous devez créer au moins 3 secrets GitHub pour déployer un travail Stream Analytics. Un secret pour vos informations d’identification Azure et d’autres pour vos ressources Azure d’entrée/sortie.

  1. Accédez à votre référentiel GitHub et sélectionnez l’onglet Paramètres. Sélectionnez Secrets et variables > Actions dans le menu de gauche, puis sélectionnez Nouveau secret de référentiel pour créer un secret. Capture d’écran de GitHub mettant en place un secret pour le référentiel.

  2. Créez un secret pour les informations d’identification Azure. Ouvrez PowerShell et exécutez la commande suivante. Copiez ensuite le JSON de sortie dans la valeur de secret.

    1. Remplacez {subscription-id} et {resource-group} par votre ressource Azure. Assurez-vous que vous disposez de la version la plus récente d’Azure CLI.

      az login 
      az ad sp create-for-rbac --name "myApp" --role contributor --scopes /subscriptions/{subscription-id}/resourceGroups/{resource-group} --json-auth 
      

      Capture d’écran de PowerShell exécutant la commande az.

    2. Entrez un nom de secret tel que AZURE_CREDENTIALS et copiez le JSON de sortie vers la valeur de secret. Sélectionnez ensuite Ajouter un secret.

      Capture d’écran de GitHub créant un secret pour les Informations d’identification Azure.

    3. Pour en savoir plus sur l’utilisation de l’action de connexion Azure avec un secret de principal de service, consultez ceci.

  3. Créez des secrets pour les ressources d’entrée et de sortie. Pour plusieurs ressources d’entrée/sortie, vous devez créer des secrets pour chaque ressource Azure, respectivement.

    1. Par exemple, pour créer un secret pour un Event Hub, accédez à Event Hubs dans le Portail Azure et copiez la clé primaire à partir de la stratégie d’accès partagé.

      Capture d’écran d’Event Hub ouvrant la clé d’accès.

    2. Copiez la clé d’accès dans la valeur du secret.

      Capture d’écran montrant Event Hub ouvrant la clé d’accès.

Une fois que vous avez terminé, vous devriez avoir au moins trois secrets créés pour le référentiel GitHub.

Capture d’écran de GitHub terminant la configuration des trois secrets.

Étape 3 : Créer un workflow à l’aide de GitHub Actions

  1. Accédez à l’onglet Actions, puis sélectionnez Nouveau workflow>Configurer un workflow vous-même.

    Capture d’écran de GitHub créant un workflow.

  2. Copiez ce modèle dans le fichier YAML et modifiez les paramètres.

    1. PROJECT_NAME : nom de votre travail Stream Analytics.

    2. OUTPUT_PATH : laissez tel quel.

    3. TARGET_RESOURCE_GROUP : votre groupe de ressources Azure.

    4. EMPLACEMENT : région Azure pour le déploiement. Vous trouverez les régions disponibles ici.

    5. OVERRIDE_PARAMETERS : informations d’identification pour la ressource Azure. Pour analyser correctement les informations d’identification, le paramètre doit être défini comme une paire clé-valeur au format suivant :

      #               Inputs_ehinput_DataSource_SharedAccessPolicyKey
      #               \____/ \_____/ \________/ \__________________/
      #                  |      |                        |
      #          input/output  name                credential name
      

      Par exemple, pour une entrée Event Hubs et une sortie de Stockage Blob, la clé doit être :

      Inputs_ClickStream_DataSource_SharedAccessPolicyKey=${{ secrets.ASA_INPUT }} Outputs_BlobOutput_DataSource_AccountKey=${{ secrets.ASA_OUTPUT }}
      
      

      Voici un mappage du type de ressource Azure à son nom d’informations d’identification :

      Types de ressource Credential name (Nom des informations d’identification)
      Azure Event Hubs, Azure IoT Hub, Azure Service Bus SharedAccessPolicyKey
      Stockage Blob Azure, Azure Cosmos DB, Stockage Table Azure AccountKey
      Fonction Azure ApiKey
      Azure SQL Database, Azure Synapse Analytics Mot de passe
  3. Enregistrez et validez les changements dans la branche primaire. Accédez ensuite à Actions et sélectionnez Exécuter le workflow. Vous pouvez surveiller la progression du workflow.

    Capture d’écran de GitHub exécutant le workflow.

  4. Une fois l’opération terminée, vous pouvez remarquer que le travail Stream Analytics a commencé à s’exécuter dans le Portail Azure. Le workflow dans GitHub Actions se déclenche automatiquement la prochaine fois que vous pousserez les modifications vers la branche main.

    Capture d’écran du portail Azure montrant que le travail Stream Analytics est en cours d’exécution.

Félicitations ! Vous avez correctement créé un workflow dans GitHub et déployé votre projet Stream Analytics sur Azure. Avec ce workflow, votre projet Stream Analytics peut générer, tester, publier et déployer automatiquement sur Azure chaque fois que des modifications sont envoyées à la branche main de votre référentiel GitHub.