通过 Release/CD 导入 AppInsight Instrumentation Key 并在应用程序的 appsettings 中更新 Instrumentation key

Import AppInsight Instrumentation Key through Release/CD and Update Instrumentation key in appsettings of an Application

我有两个CD/Release定义;一张是用于 Application Insight 的 ARM,另一张是用于部署应用程序的 CD。

计划合并两个 CD/Release 定义并创建一个 CD/Release 定义。 创建 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 Script" 任务中失败。

请提供执行此操作的最佳方法。

当运行一个与Azure交互的脚本时,使用Azure PowerShell任务。

Azure Resource Group Deployment 任务中的 Deployment Outputs 参数指定一个变量,您将获得一个填充有输出的变量(IIRC 应该包含部署名称)。它是一个 JSON 对象,所以你可以用 ConvertFrom-JSON 解析它。

如果您指定一个名为 Foo 的变量,您可以在下游脚本中以 $env:Foo 访问它。