你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 Azure 流分析 CI/CD NuGet 包进行集成和开发
本文介绍如何使用 Azure 流分析 CI/CD NuGet 包设置持续集成和部署过程。
使用版本 2.3.0000.0 或更高版本的适用于 Visual Studio 的流分析工具以获得对 MSBuild 的支持。
有 NuGet 包可用:Microsoft.Azure.Stream Analytics.CICD。 它提供了 MSBuild、本地运行和部署工具,用于支持流分析 Visual Studio 项目的持续集成和部署进程。
注意
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 项目中的设置。 如果要部署到其他环境,请相应地替换参数。
注意
对于所有凭据,默认值均设置为 null。 部署到云之前,必须先设置这些值。
"Input_EntryStream_sharedAccessPolicyKey": {
"value": null
},
深入了解如何使用资源管理器模板文件和 Azure PowerShell 进行部署。 深入了解如何 use an object as a parameter in a Resource Manager template(将对象用作资源管理器模板中的参数)。
若要将 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 命令将通过内部版本生成的作业模板和作业模板参数文件视为输入。 然后将其合并为可与流分析 PowerShell API 配合使用的作业定义 JSON 文件。
arm -JobTemplate <templateFilePath> -JobParameterFile <jobParameterFilePath> [-OutputFile <asaArmFilePath>]
示例:
./tools/SA.exe arm -JobTemplate "ProjectA.JobTemplate.json" -JobParameterFile "ProjectA.JobTemplate.parameters.json" -OutputFile "JobDefinition.json"