这是一个示例场景:
部署ARM模板的"Azure PowerShell"任务 . 所有ARM模板都是创建应用服务计划,Web应用程序和存储帐户 .
用于部署Web应用程序的"Azure Web App Deployment"任务 .
“Azure PowerShell任务,用于更新Web应用程序的配置,以包含对从ARM模板生成的存储密钥的引用 .
如何为第三个任务提供第一个任务的输出?还有另一种方法来解决这个问题吗?
可以通过“输出”部分将ARM模板“链接”在一起,以便将状态从一个模板共享到另一个模板 .
因此,您可以从一个模板指定输出,并通过调用它的Powershell脚本选择该输出,或者您可以将模板链接在一起,以便它们都从单个New-AzureRmResourceGroupDeployment调用运行 . 使用Web应用程序配置任务的模板直接获取部署模板的输出 .
这里有一些很好的文档 - Sharing state in Azure Resource Manager templates
保罗另一种可以实现此目的的方法是在第一个任务中完成所有3个任务(Azure PowerShell) - 您还可以将1和3组合在一起并保持2个独立,或者应该使用VSTS中的库存“任务” .
因此,您工作流程的第一步可以创建Web应用程序(等),更新配置并部署Web应用程序 . 如果不希望在模板中部署Web应用程序,则可以在工作流程中组合步骤1和3,并单独进行站点部署 . 看看这些例子,结合他们做你想做的事情(我找不到一个快速的例子):
https://github.com/davidebbo/AzureWebsitesSamples/blob/master/ARMTemplates/WebAppDeployment.json(这显示了如何进行应用配置)
您可以在创建存储帐户的同一部署中引用存储密钥,请参阅:https://github.com/rjmax/ArmExamples/blob/fa4359bd393692bbb07b4460636c5b754191e42d/listKeysSample.json)
https://github.com/davidebbo/AzureWebsitesSamples/blob/master/ARMTemplates/WordpressTemplateWebDeployDependency.json(这显示了如何在模板中执行webdeploy)
您可以将VSTS中的任务记录命令用于一个任务的"output"变量,并在另一个任务中读取它们 . 示例中的第一个Azure PS任务可以记录一个输出变量,该变量稍后可以在最后一个中读取 . 有关这些日志记录命令的格式,请参阅https://github.com/Microsoft/vso-agent-tasks/blob/master/docs/authoring/commands.md .
3 回答
可以通过“输出”部分将ARM模板“链接”在一起,以便将状态从一个模板共享到另一个模板 .
因此,您可以从一个模板指定输出,并通过调用它的Powershell脚本选择该输出,或者您可以将模板链接在一起,以便它们都从单个New-AzureRmResourceGroupDeployment调用运行 . 使用Web应用程序配置任务的模板直接获取部署模板的输出 .
这里有一些很好的文档 - Sharing state in Azure Resource Manager templates
保罗另一种可以实现此目的的方法是在第一个任务中完成所有3个任务(Azure PowerShell) - 您还可以将1和3组合在一起并保持2个独立,或者应该使用VSTS中的库存“任务” .
因此,您工作流程的第一步可以创建Web应用程序(等),更新配置并部署Web应用程序 . 如果不希望在模板中部署Web应用程序,则可以在工作流程中组合步骤1和3,并单独进行站点部署 . 看看这些例子,结合他们做你想做的事情(我找不到一个快速的例子):
https://github.com/davidebbo/AzureWebsitesSamples/blob/master/ARMTemplates/WebAppDeployment.json(这显示了如何进行应用配置)
您可以在创建存储帐户的同一部署中引用存储密钥,请参阅:https://github.com/rjmax/ArmExamples/blob/fa4359bd393692bbb07b4460636c5b754191e42d/listKeysSample.json)
https://github.com/davidebbo/AzureWebsitesSamples/blob/master/ARMTemplates/WordpressTemplateWebDeployDependency.json(这显示了如何在模板中执行webdeploy)
您可以将VSTS中的任务记录命令用于一个任务的"output"变量,并在另一个任务中读取它们 . 示例中的第一个Azure PS任务可以记录一个输出变量,该变量稍后可以在最后一个中读取 . 有关这些日志记录命令的格式,请参阅https://github.com/Microsoft/vso-agent-tasks/blob/master/docs/authoring/commands.md .