使用 Azure 流分析 CI/CD NuGet 包进行集成和开发

本文介绍如何使用 Azure 流分析 CI/CD NuGet 包设置持续集成和部署过程。

使用 2.3.0000.0 或更高版本的 适用于 Visual Studio 的流分析工具,以获得对 MSBuild 的支持。

现已提供 NuGet 包:Microsoft.Azure.Stream Analytics.CICD。 它提供 MSBuild、本地运行和部署工具,这些工具支持流分析Visual Studio项目的持续集成和部署过程。

Note

NuGet 包仅可用于 2.3.0000.0 或更高版本的适用于 Visual Studio 的流分析工具。 如果已在早期版本的 Visual Studio 工具中创建项目,只需使用 2.3.0000.0 或更高版本打开项目并保存。 然后启用新功能。

有关详细信息,请参阅适用于Visual Studio的流分析工具

MSBuild

与标准Visual Studio MSBuild 体验一样,若要生成项目,有两个选项。 可以右键单击该项目,然后选择“ 生成”。 还可以从命令行在 NuGet 包中使用 MSBuild

./build/msbuild /t:build [Your Project Full Path] /p:CompilerTaskAssemblyFile=Microsoft.WindowsAzure.StreamAnalytics.Common.CompileService.dll  /p:ASATargetsFilePath="[NuGet Package Local Path]\build\StreamAnalytics.targets"

当流分析Visual Studio项目成功生成时,它会在 bin/[Debug/Retail]/Deploy 文件夹下生成以下两个Azure 资源管理器模板文件:

  • 资源管理器模板文件

    [ProjectName].JobTemplate.json

  • 资源管理器参数文件

    [ProjectName].JobTemplate.parameters.json

parameters.json 文件中的默认参数来自Visual Studio项目中的设置。 如果要部署到另一个环境,请相应地替换参数。

Note

对于所有凭据,默认值设置为 null。 您必须在部署到云端之前设置这些值。

"Input_EntryStream_sharedAccessPolicyKey": {
      "value": null
    },

详细了解如何使用资源管理器模板文件和Azure PowerShell进行部署。 详细了解如何在资源管理器模板中使用对象作为参数

若要将托管标识用于 Azure Data Lake Store Gen2 作为输出接收器,需要在部署到 Azure 之前使用 PowerShell 提供对服务主体的访问权限。 详细了解如何通过 资源管理器 模板使用托管标识部署 ADLS Gen2

命令行工具

构建项目

NuGet 包有一个名为 SA.exe的命令行工具。 它支持在任意计算机上进行项目生成和本地测试,可以在持续集成和持续交付过程中使用它。

默认情况下,部署文件位于当前目录下。 可以使用以下 -OutputPath 参数指定输出路径:

./tools/SA.exe build -Project [Your Project Full Path] [-OutputPath <outputPath>] 

在本地测试脚本

如果项目已在 Visual Studio 中指定了本地输入文件,则可以使用 localrun 命令运行自动化脚本测试。 输出结果放置在当前目录下。

localrun -Project [ProjectFullPath]

生成用于流分析 PowerShell API 的作业定义文件

arm 命令以通过 build 生成的作业模板和作业模板参数文件作为输入。 然后将它们合并到可与流分析 PowerShell API 一起使用的作业定义 JSON 文件。

arm -JobTemplate <templateFilePath> -JobParameterFile <jobParameterFilePath> [-OutputFile <asaArmFilePath>]

Example:

./tools/SA.exe arm -JobTemplate "ProjectA.JobTemplate.json" -JobParameterFile "ProjectA.JobTemplate.parameters.json" -OutputFile "JobDefinition.json" 

后续步骤