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

如何将 Azure Pipelines 与 Apache Flink® on HDInsight on AKS 配合使用

注意

我们将于 2025 年 1 月 31 日停用 Azure HDInsight on AKS。 在 2025 年 1 月 31 日之前,你需要将工作负荷迁移到 Microsoft Fabric 或同等的 Azure 产品,以避免工作负荷突然终止。 订阅上的剩余群集会被停止并从主机中移除。

在停用日期之前,仅提供基本支持。

重要

此功能目前以预览版提供。 Microsoft Azure 预览版的补充使用条款包含适用于 beta 版、预览版或其他尚未正式发布的 Azure 功能的更多法律条款。 有关此特定预览版的信息,请参阅 Azure HDInsight on AKS 预览版信息。 如有疑问或功能建议,请在 AskHDInsight 上提交请求并附上详细信息,并关注我们以获取 Azure HDInsight Community 的更多更新。

本文介绍如何将 Azure Pipelines 与 HDInsight on AKS 配合使用,以通过群集的 REST API 提交 Flink 作业。 我们将使用示例 YAML 管道和 PowerShell 脚本来指导你完成整个过程,该管道和脚本都可以简化 REST API 交互的自动化。

先决条件

  • Azure 订阅。 如果你没有 Azure 订阅,请创建一个免费帐户。

  • GitHub 帐户,可在其中创建存储库。 免费创建一个

  • 创建 .pipeline 目录,并复制 flink-azure-pipelines.ymlflink-job-azure-pipeline.ps1

  • Azure DevOps 组织。 免费创建一个。 如果你的团队已有一个项目,请确保你是要使用的 Azure DevOps 项目的管理员。

  • 能够在 Microsoft 托管的代理上运行管道。 若要使用 Microsoft 托管代理,Azure DevOps 组织必须有权访问 Microsoft 托管并行作业。 可以购买并行作业,也可以请求免费授予。

  • Flink 群集。 如果没有群集,请在 HDInsight on AKS 中创建一个 Flink 群集

  • 在群集存储帐户中创建一个目录用于复制作业 jar。 稍后需要在管道 YAML 中配置此目录以获取作业 jar 位置 (<JOB_JAR_STORAGE_PATH>)。

设置管道的步骤

为 Azure Pipelines 创建服务主体

创建 Microsoft Entra 服务主体以访问 Azure - 授予使用参与者角色访问 HDInsight on AKS 群集的权限,记下响应中的 appId、密码和租户。

az ad sp create-for-rbac -n <service_principal_name> --role Contributor --scopes <Flink Cluster Resource ID>`

示例:

az ad sp create-for-rbac -n azure-flink-pipeline --role Contributor --scopes /subscriptions/abdc-1234-abcd-1234-abcd-1234/resourceGroups/myResourceGroupName/providers/Microsoft.HDInsight/clusterpools/hiloclusterpool/clusters/flinkcluster`

参考

注意

Apache、Apache Flink、Flink 和关联的开源项目名称是 Apache Software Foundation (ASF) 的商标

创建 key vault

  1. 创建 Azure 密钥保管库,可以按照此教程创建新的 Azure 密钥保管库。

  2. 创建三个机密

    • 为存储密钥创建 cluster-storage-key

    • 为主体 clientId 或 appId 创建 service-principal-key

    • 为主体机密创建 service -principal-secret

    显示如何创建密钥保管库的屏幕截图。

  3. 向服务主体授予使用“密钥保管库机密主管”角色访问 Azure 密钥保管库的权限。

设置管道

  1. 导航到你的项目并单击“项目设置”。

  2. 向下滚动并选择“服务连接”,然后选择“新建服务连接”。

  3. 选择“Azure 资源管理器”。

    显示如何选择新服务连接的屏幕截图。

  4. 在身份验证方法中,选择“服务主体(手动)”。

    显示新的服务连接的屏幕截图。

  5. 编辑服务连接属性。 选择最近创建的服务主体。

    显示如何编辑服务连接的屏幕截图。

  6. 单击“验证”以检查连接是否正确设置。 如果遇到以下错误:

    显示服务连接错误消息的屏幕截图。

  7. 则需要将读取者角色分配到订阅。

  8. 之后,验证应会成功。

  9. 保存服务连接。

    显示如何查看输出的屏幕截图。

  10. 导航到管道并单击“新建管道”。

    显示如何创建新管道的屏幕截图。

  11. 选择 GitHub 作为代码的位置。

  12. 选择 存储库。 请参阅 GitHub 中的如何创建存储库。 select-github-repo 映像。

    显示如何搜索代码的屏幕截图。

  13. 选择 存储库。 有关详细信息,请参阅如何在 GitHub 中创建存储库

    显示如何选择 GitHub 存储库的屏幕截图。

  14. 在“配置管道”选项中,可以选择“现有的 Azure Pipelines YAML 文件”。 选择之前复制的分支和管道脚本。 (.pipeline/flink-azure-pipelines.yml)

    显示如何配置管道的屏幕截图。

  15. 替换变量节中的值。

    显示如何替换值的屏幕截图。

  16. 根据要求更正代码生成部分,并在作业 jar 本地路径的变量节中配置 <JOB_JAR_LOCAL_PATH>。

    显示代码生成部分的屏幕截图。

  17. 添加管道变量“action”并配置值“RUN”。

    显示如何添加管道变量的屏幕截图。

    可以在运行管道之前更改变量的值。

    • NEW:此值是默认值。 它启动新作业,如果该作业已经运行,则它会使用最新的 jar 更新正在运行的作业。

    • SAVEPOINT:此值采用正在运行的作业的保存点。

    • DELETE:取消或删除正在运行的作业。

  18. 保存并运行管道。 可以在门户上的“Flink 作业”部分查看正在运行的作业。

    显示如何保存和运行管道的屏幕截图。

注意

这是使用管道提交作业的一个示例。 你可以按照 Flink REST API 文档编写自己的代码来提交作业。