gpt4 book ai didi

azure - 在 Azure Pipelines 的 ARM 部署上使用 overrideParameters 时出现 InvalidDeploymentParameterKey

转载 作者:行者123 更新时间:2023-12-02 23:59:22 25 4
gpt4 key购买 nike

以下是 Azure DevOps 中 YAML 管道的摘录:

  - task: AzureCLI@2
name: GetAppInsightsConnString
displayName: 'Get AppInsights ConnectionString'
inputs:
azureSubscription: ${{ parameters.TelemetryAzureSubscription }}
scriptType: 'pscore'
scriptLocation: 'inlineScript'
inlineScript: |
az extension add -n application-insights
az feature register --name AIWorkspacePreview --namespace microsoft.insights
$resourceInfo = az monitor app-insights component show --app ${{ parameters.AppInsightsResourceName }} --resource-group ${{ parameters.AppInsightsResourceGroupName }}
$instrumentationKey = ($resourceInfo | ConvertFrom-Json).InstrumentationKey
echo "##vso[task.setvariable variable=ApplicationInsightsInstrumentationKey]$instrumentationKey"
- task: FileTransform@2
displayName: "Replace Parameters From Variables"
inputs:
folderPath: '$(Pipeline.Workspace)'
xmlTransformationRules: ''
jsonTargetFiles: '**/${{ parameters.ArmTemplateParameters }}'
- powershell: 'Get-Content $(Pipeline.Workspace)/${{ parameters.ArtifactName }}-provisioning/${{ parameters.ArmTemplateParameters }}'
displayName: 'Preview Arm Template Parameters File'
- task: PowerShell@2
displayName: "TEMP: Test new variable values"
inputs:
targetType: 'inline'
script: |
Write-Host "ApplicationInsightsInstrumentationKey: $(ApplicationInsightsInstrumentationKey)"
- task: AzureResourceManagerTemplateDeployment@3
inputs:
deploymentScope: 'Resource Group'
ConnectedServiceName: ${{ parameters.AzureSubscription }}
action: 'Create Or Update Resource Group'
resourceGroupName: ${{ parameters.ResourceGroupName }}
location: $(locationLong)
templateLocation: 'Linked artifact'
csmFile: '$(Pipeline.Workspace)/${{ parameters.ArtifactName }}-provisioning/${{ parameters.ArmTemplate }}'
csmParametersFile: '$(Pipeline.Workspace)/${{ parameters.ArtifactName }}-provisioning/${{ parameters.ArmTemplateParameters }}'
overrideParameters: '–applicationInsightsInstrumentationKey "$(ApplicationInsightsInstrumentationKey)"'
deploymentMode: 'Incremental'

这是连接到 App Insights 实例,获取检测 key ,然后在预览和部署之前对 ARM 参数文件进行变量替换。

检测 key 写入 ApplicationInsightsInstrumentationKey 管道变量,您可以看到稍后的任务,该任务在管道日志中预览此变量,以便我可以确认该变量是否按预期设置。

在最后一个任务中,我使用 overrideParameters 选项将此 key 作为 applicationInsightsInstrumentationKey 参数的值提供给部署。这是管道失败的地方,并出现错误:

##[error]One of the deployment parameters has an empty key. Please see https://aka.ms/resource-manager-parameter-files for details.

我的网络搜索告诉我,当值包含空格且未用双引号引起来时,可能会发生这种情况,但这里的情况都不是这样。事实上,我什至可以用硬编码值替换该行,但仍然遇到同样的问题。

如果我删除该 overrideParameters 行,部署就会成功,但显然不包含我想要的参数。

有人知道如何解决这个问题吗?

最佳答案

如ARM模板部署帮助对话框所示ADO task :

enter image description here

由于 applicationInsightsInstrumentationKey 不会有多个单词,请尝试更改如下行:

overrideParameters: '–applicationInsightsInstrumentationKey $(ApplicationInsightsInstrumentationKey)'

关于azure - 在 Azure Pipelines 的 ARM 部署上使用 overrideParameters 时出现 InvalidDeploymentParameterKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66652919/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com