你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。

与 GitHub Actions 集成

GitHub Actions 是 GitHub 中有助于自动执行软件开发工作流的一项功能。 如果源代码存储在 GitHub 存储库中,可以在 GitHub Actions 中创建自定义工作流来生成、测试、打包、发布或部署任何代码项目。

本文介绍如何使用 GitHub Actions 创建 CI/CD 工作流并将流分析作业部署到 Azure。 因此,下次对 GitHub 存储库进行更改时,它将自动触发工作流并将流分析项目部署到 Azure。

先决条件

开始之前,必须满足以下先决条件:

  • 具有活动订阅的 Azure 帐户。
  • 用于配置 GitHub 存储库、创建工作流以及配置 GitHub 机密的 GitHub 帐户。
  • 在 PowerShell 中运行 az 命令。 按照本指南在本地计算机上安装或更新 Azure 命令行接口 (CLI)。

步骤 1:将流分析项目推送到 GitHub 存储库

我们要使用适用于 Visual Studio Code (VS Code) 的 Azure 流分析扩展来管理流分析项目。 如果尚未安装此扩展,请按照本指南安装。

  1. 转到 Azure 门户中的查询编辑器,然后选择“在 VS Code 中打开”。

    在查询文件中使用“在 VS Code 中打开”功能的 Azure 门户的屏幕截图。

  2. 完成后,应该会在 VS Code 工作区中看到流分析项目。

    导出作业后 VS Code 工作区的屏幕截图。

  3. 按“Ctrl+J”,在 VS Code 中打开终端。 输入 git 命令,将项目推送到 GitHub 存储库。

    VS Code 终端的屏幕截图。

步骤 2:在 GitHub 中设置机密

至少需要创建 3 个 GitHub 机密来部署流分析作业。 一个机密用于 Azure 凭据,其他机密用于输入/输出 Azure 资源。

  1. 转到 GitHub 存储库,然后选择“设置”选项卡。在左侧菜单中选择“机密和变量 > 操作”,然后选择“新建存储库机密”来创建新机密。 GitHub 为存储库设置机密的屏幕截图。

  2. 为“Azure 凭据”创建机密。 打开 PowerShell 并运行以下命令。 然后将输出 JSON 复制到机密值。

    1. 将 {subscription-id} 和 {resource-group} 替换为 Azure 资源。 确保安装了最新版本的 Azure CLI。

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

      PowerShell 运行 az 命令的屏幕截图。

    2. 输入机密名称,例如 AZURE_CREDENTIALS,并将输出 JSON 复制到机密值。 然后选择“添加机密”。

      GitHub 为 Azure 凭据创建机密的屏幕截图。

    3. 若要详细了解如何将 Azure 登录操作与服务主体机密配合使用,请参阅此处。

  3. 为输入和输出资源创建机密。 对于多个输入/输出资源,需要分别为每个 Azure 资源创建机密。

    1. 例如,若要为事件中心创建机密,请转到 Azure 门户中的事件中心,然后从共享访问策略复制主键。

      事件中心打开访问密钥的屏幕截图。

    2. 将访问密钥复制到机密值。

      显示事件中心打开访问密钥的屏幕截图。

完成后,应至少为 GitHub 存储库创建三个机密。

GitHub 完成设置三个机密的屏幕截图。

步骤 3:使用 GitHub Actions 创建工作流

  1. 转到“操作”选项卡,选择“新建工作流”>“自行设置工作流”。

    GitHub 创建工作流的屏幕截图。

  2. 将此模板复制到 YAML 文件并编辑参数。

    1. PROJECT_NAME:流分析作业的名称。

    2. OUTPUT_PATH:让其保留原样。

    3. TARGET_RESOURCE_GROUP:Azure 资源组。

    4. LOCATION:用于部署的 Azure 区域。 可在此处找到可用区域。

    5. OVERRIDE_PARAMETERS:Azure 资源的凭据。 若要正确分析凭据,必须将参数设置为以下格式的键值对:

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

      例如,对于事件中心输入和 Blob 存储输出,键应为:

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

      以下是从 Azure 资源类型到其凭据名称的映射:

      资源类型 凭据名称
      Azure 事件中心、Azure IoT 中心、Azure 服务总线 SharedAccessPolicyKey
      Azure Blob 存储、Azure Cosmos DB、Azure 表存储 AccountKey
      Azure 函数 ApiKey
      Azure SQL 数据库、Azure Synapse Analytics 密码
  3. 保存并提交对主分支的更改。 然后转到“操作”并选择“运行工作流”。 可以监视工作流进度。

    GitHub 运行工作流的屏幕截图。

  4. 完成后,你会发现流分析作业已开始在 Azure 门户中运行。 下次将更改推送到主分支时,GitHub Actions 中的工作流将自动触发。

    显示流分析作业处于运行状态的 Azure 门户的屏幕截图。

恭喜! 你已在 GitHub 中成功创建工作流,并将流分析项目部署到 Azure。 使用此工作流,每当将更改推送到 GitHub 存储库的主分支时,流分析项目都可以自动生成、测试、发布和部署到 Azure。