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

使用 Azure DevOps 为流分析作业创建 CI/CD 管道

本文介绍如何使用 Azure 流分析 CI/CD 工具创建 Azure DevOps 生成发布管道。

提交流分析项目

在开始之前,请将完整的流分析项目作为源文件提交到 Azure DevOps 存储库。 可以在 Azure Pipelines 中引用此示例存储库流分析项目源代码

本文中的步骤使用流分析 Visual Studio Code 项目。 如果使用的是 Visual Studio 项目,请按照使用 CI/CD 工具自动执行 Azure 流分析作业的生成、测试和部署中的步骤操作。

创建生成管道

本部分介绍如何创建生成管道。

  1. 打开 Web 浏览器并导航 Azure DevOps 中的项目。

  2. 在左侧导航菜单中的“管道”下,选择“生成”。 然后,选择“新建管道”。

    创建新的 Azure 管道

  3. 选择“使用经典编辑器”在没有 YAML 的情况下创建一个管道。

  4. 选择源类型、团队项目和存储库。 然后选择“继续”。

    选择 Azure 流分析项目

  5. 在“选择模板”页上,选择“空作业”。

安装 npm 包

  1. 在“任务”页上,选择“代理作业 1”旁的加号。 在任务搜索中输入 npm,并选择“npm”。

    选择 npm 任务

  2. 为任务指定“显示名称”。 将“命令”选项更改为“自定义”,然后在“命令和参数”中输入以下命令。 保留其余默认选项。

    install -g azure-streamanalytics-cicd
    

    输入 npm 任务的配置

如果需要使用托管 Linux 代理,请执行以下步骤:

  1. 选择“代理规范”

    选择代理规范的屏幕截图。

  2. 在“任务”页上,选择“代理作业 1”旁的加号。 在任务搜索中输入命令行,然后选择“命令行”。

    搜索命令行任务的屏幕截图。

  3. 为任务指定“显示名称”。 在“脚本”中输入以下命令。 保留其余默认选项。

    sudo npm install -g azure-streamanalytics-cicd --unsafe-perm=true --allow-root
    

    为 cmd 任务输入脚本的屏幕截图。

添加生成任务

  1. 在“变量”页上,在“管道变量”中选择“+ 添加”。 添加以下变量。 根据你的偏好设置以下值:

    变量名称
    projectRootPath [YourProjectName]
    outputPath 输出
    deployPath 部署
  2. 在“任务”页上,选择“代理作业 1”旁的加号。 搜索“命令行”。

  3. 为任务指定“显示名称”,然后输入以下脚本。 用存储库名称和项目名称修改脚本。

    注意

    强烈建议使用 build --v2 生成用于部署的 ARM 模板。 新 ARM 模板的参数较少,同时保留与之前版本相同的功能。

    请注意,旧版 ARM 模板即将弃用,只有使用 build --v2 创建的模板才会收到更新和 bug 修复。

    azure-streamanalytics-cicd build --v2 -project $(projectRootPath)/asaproj.json -outputpath $(projectRootPath)/$(outputPath)/$(deployPath)
    

    此图使用流分析 Visual Studio Code 项目作为示例。

    为命令行任务 visual studio code 输入配置

添加测试任务

  1. 在“变量”页上,在“管道变量”中选择“+ 添加”。 添加以下变量。 使用输出路径和存储库名称修改这些值。

    变量名称
    testPath 测试

    添加管道变量

  2. 在“任务”页上,选择“代理作业 1”旁的加号。 搜索“命令行”。

  3. 为任务指定“显示名称”,然后输入以下脚本。 用项目文件名和测试配置文件的路径来修改脚本。

    有关如何添加和配置测试用例的详细信息,请参阅自动测试说明

    azure-streamanalytics-cicd test -project $(projectRootPath)/asaproj.json -outputpath $(projectRootPath)/$(outputPath)/$(testPath) -testConfigPath $(projectRootPath)/test/testConfig.json 
    

    输入命令行任务的配置

添加复制文件任务

需要添加复制文件任务,以将测试摘要文件和 Azure 资源管理器模板文件复制到项目文件夹。

  1. 在“任务”页上,选择“代理作业 1”旁的 +。 搜索“复制文件”。 然后输入以下配置。 通过将 ** 分配给“内容”,将复制测试结果的所有文件。

    参数 输入
    显示名称 将文件复制到:$(build.artifactstagingdirectory)
    源文件夹 $(system.defaultworkingdirectory)/$(outputPath)/
    目录 **
    目标文件夹 $(build.artifactstagingdirectory)
  2. 展开“控制选项”。 在“运行此任务”中选择“即使上一任务失败,除非已取消生成”。

    输入复制任务的配置

添加发布生成项目任务

  1. 在“任务”页上,选择“代理作业 1”旁的加号。 搜索“发布生成项目”,然后选择带有黑色箭头图标的选项。

  2. 展开“控制选项”。 在“运行此任务”中选择“即使上一任务失败,除非已取消生成”。

    输入发布任务的配置

“保存”和“运行”

完成添加 npm 包、命令行、复制文件和发布生成项目任务后,请选择“保存并排队”。 出现提示时,请输入保存注释,然后选择“保存并运行”。 可以从管道的“摘要”页下载测试结果。

检查生成和测试结果

可在“已发布”文件夹中找到测试摘要文件和 Azure 资源管理器模板文件。

检查生成和测试结果

检查项目

使用 Azure Pipelines 发布

本部分介绍如何创建发布管道。

打开 Web 浏览器并导航到 Azure 流分析 Visual Studio Code 项目。

  1. 在左侧导航菜单中的“管道”下,选择“发布”。 然后选择“新建管道”。

  2. 选择“从空作业开始”。

  3. 在“项目”框中,选择“+ 添加项目”。 在“源”下,选择创建的生成管道,然后选择“添加”。

    输入生成管道项目

  4. 将“阶段 1”的名称更改为“将作业部署到测试环境”。

  5. 添加新阶段并将其命名为“将作业部署到生产环境”。

添加部署任务

注意

由于参数是作为对象传递的,因此 Override template parameters 不适用于 ARM v2 版本。 若要解决此问题,建议在管道中包含 PowerShell 脚本,从而将参数文件读取为 JSON 并进行必要的参数修改。

有关添加 PowerShell 脚本的更多指南,请参阅 ConvertFrom-Json更新 JSON 文件中的对象

  1. 从“任务”下拉列表中,选择“将作业部署到测试环境”。

  2. 选择“代理作业”旁的 +,搜索“ARM 模板部署”。 输入以下参数:

    参数
    显示名称 部署 myASAProject
    Azure 订阅 选择订阅。
    操作 创建或更新资源组
    资源组 选择将包含流分析作业的测试资源组的名称。
    位置 选择测试资源组的位置。
    模板位置 链接的项目
    模板 $(System.DefaultWorkingDirectory)/_azure-streamanalytics-cicd-demo-CI-Deploy/drop/myASAProject.JobTemplate.json
    模板参数 $(System.DefaultWorkingDirectory)/_azure-streamanalytics-cicd-demo-CI-Deploy/drop/myASAProject.JobTemplate.parameters.json
    重写模板参数 -<arm_template_parameter> "your value"。 可以使用“变量”定义参数。
    部署模式 增量
  3. 从“任务”下拉列表中,选择“将作业部署到生产环境”。

  4. 选择“代理作业”旁的 +,搜索“ARM 模板部署”。 输入以下参数:

    参数
    显示名称 部署 myASAProject
    Azure 订阅 选择订阅。
    操作 创建或更新资源组
    资源组 选择将包含流分析作业的生产资源组的名称。
    位置 选择生产资源组的位置。
    模板位置 链接的项目
    模板 $(System.DefaultWorkingDirectory)/_azure-streamanalytics-cicd-demo-CI-Deploy/drop/myASAProject.JobTemplate.json
    模板参数 $(System.DefaultWorkingDirectory)/_azure-streamanalytics-cicd-demo-CI-Deploy/drop/myASAProject.JobTemplate.parameters.json
    重写模板参数 -<arm_template_parameter> "your value"
    部署模式 增量

创建发布

若要创建发布,请在右上角选择“创建发布”。

使用 Azure Pipelines 创建发布