我有两个CD /发布定义;一个是针对Application Insight的ARM,另一个是用于部署App的CD。
计划合并两个CD /版本定义并创建一张CD /版本定义。 创建Application Insight后,获取Instrumentation键并更新App的appsettings中的检测键。 从Github找到一个解决方案;这将通过ARM和PowerShell脚本中的“output”标记在部署完成后获取检测密钥。但它失败了 - https://github.com/MicrosoftDocs/azure-docs/blob/master/articles/azure-resource-manager/resource-manager-templates-outputs.md#define-and-use-output-values
Get-AzureRmResourceGroupDeployment : Run Login-AzureRmAccount to login.
At D:\a\_temp\ded99e61-d7aa-40d7-979a-dfff517ed558.ps1:7 char:1
+ Get-AzureRmResourceGroupDeployment "XXXXXX" "XXXXXXXXX"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Get-AzureRmResourceGroupDeployment], PSInvalidOperationException
+ FullyQualifiedErrorId : InvalidOperation,Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.GetAzur
eResourceGroupDeploymentCmdlet
CD在“PowerShell脚本”任务中失败。
请提供最佳方法。
答案 0 :(得分:0)
运行与Azure交互的脚本时,请使用Azure PowerShell
任务。
为Azure Resource Group Deployment
任务中的Deployment Outputs
参数指定变量,您将获得一个填充了输出的变量(IIRC应包含部署名称)。它是一个JSON对象,因此您可以使用ConvertFrom-JSON
对其进行解析。
如果指定名为Foo
的变量,则可以在下游脚本$env:Foo
中访问该变量。