您能否在发布管理中将一个 PowerShell 任务的输出传输到另一个任务?
Can you pipe the output of one PowerShell task to another in release management?
这是一个示例场景:
- 部署 ARM 模板的 "Azure PowerShell" 任务。 ARM 模板所做的只是创建一个应用服务计划、一个 Web 应用程序和一个存储帐户。
- 部署 Web 应用程序的 "Azure Web App Deployment" 任务。
- “Azure PowerShell 任务更新 Web 应用的配置以包含对从 ARM 模板生成的存储密钥的引用。
如何将第一个任务的输出提供给第三个任务?还有其他方法可以解决这个问题吗?
可以通过 'output' 部分 'chain' ARM 模板将一个模板的状态共享到另一个模板。
因此您可以指定一个模板的输出,然后通过调用它的 Powershell 脚本选择该输出,或者您可以将模板链接在一起,这样它们都 运行 来自一个 [=19] =] 打电话。使用 Web 应用程序配置任务的模板直接获取部署模板的输出。
这里有一些很好的文档 - Sharing state in Azure Resource Manager templates
您可以在 VSTS 中使用任务日志记录命令 "output" 来自一个任务的变量并在另一个任务中读取它们。您的示例中的第一个 Azure PS 任务可以记录一个输出变量,稍后可以在最后一个任务中读取该变量。有关这些日志记录命令的格式,请参阅 https://github.com/Microsoft/vso-agent-tasks/blob/master/docs/authoring/commands.md。
Paul 完成此任务的另一种方法是在您的第一个任务 (Azure PowerShell) 中完成所有 3 个任务 - 您也可以将 1 和 3 组合起来,然后将 2 个分开,两者都应该适合您使用股票 "tasks" 在 VSTS 中。
因此,您工作流程中的第一步可以创建网络应用程序(等)、更新配置并部署网络应用程序。如果不希望在模板中部署 webapp,您可以在工作流程中合并步骤 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)
这是一个示例场景:
- 部署 ARM 模板的 "Azure PowerShell" 任务。 ARM 模板所做的只是创建一个应用服务计划、一个 Web 应用程序和一个存储帐户。
- 部署 Web 应用程序的 "Azure Web App Deployment" 任务。
- “Azure PowerShell 任务更新 Web 应用的配置以包含对从 ARM 模板生成的存储密钥的引用。
如何将第一个任务的输出提供给第三个任务?还有其他方法可以解决这个问题吗?
可以通过 'output' 部分 'chain' ARM 模板将一个模板的状态共享到另一个模板。
因此您可以指定一个模板的输出,然后通过调用它的 Powershell 脚本选择该输出,或者您可以将模板链接在一起,这样它们都 运行 来自一个 [=19] =] 打电话。使用 Web 应用程序配置任务的模板直接获取部署模板的输出。
这里有一些很好的文档 - Sharing state in Azure Resource Manager templates
您可以在 VSTS 中使用任务日志记录命令 "output" 来自一个任务的变量并在另一个任务中读取它们。您的示例中的第一个 Azure PS 任务可以记录一个输出变量,稍后可以在最后一个任务中读取该变量。有关这些日志记录命令的格式,请参阅 https://github.com/Microsoft/vso-agent-tasks/blob/master/docs/authoring/commands.md。
Paul 完成此任务的另一种方法是在您的第一个任务 (Azure PowerShell) 中完成所有 3 个任务 - 您也可以将 1 和 3 组合起来,然后将 2 个分开,两者都应该适合您使用股票 "tasks" 在 VSTS 中。
因此,您工作流程中的第一步可以创建网络应用程序(等)、更新配置并部署网络应用程序。如果不希望在模板中部署 webapp,您可以在工作流程中合并步骤 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)