gpt4 book ai didi

azure - 在 AzurePowerShellV5 内联脚本中引用 yaml 变量

转载 作者:行者123 更新时间:2023-12-02 07:55:38 25 4
gpt4 key购买 nike

我有一个 Azure DevOps yaml 管道,看起来(有点像)像这样:

variables:
MyVar: Test

Steps:
- task: AzurePowerShell@5
displayName: 'Test variables from yml file'
inputs:
azureSubscription: MyServiceConnection
ScriptType: InLineScript
InLine: |
Write-Host "I really want to see the values from the variables in the yml file here"
Write-Host "parameters from the yml file would be great too"
Write-Host "But what would I write to do that?"
Write-Host "$(MyVar) <- Nothing here"
Write-Host "$(variables.MyVar) <- Nothing here"
Write-Host "$DoesThisWork <- Nothing here"
Write-Host "$OrThis <- Nothing here"
env:
DoesThisWork: $(MyVar)
OrThis: $(variables.MyVar)

如何在 InLine 脚本中使用 MyVar?

最佳答案

我将其精简为最简单的,它工作得很好:

pool: 
vmImage: 'windows-latest'

variables:
myVar: test value

steps:
- powershell: Write-Host "$(myVar)"

生成:

Run result

我修改了您的示例以删除未编译的 env block ,并删除了不正确的变量引用:

pool: 
vmImage: 'windows-latest'

variables:
myVar: test value

steps:
- task: AzurePowerShell@5
inputs:
azureSubscription: 'My Service Connection Name'
ScriptType: 'InlineScript'
Inline: |
Write-Host "I really want to see the values from the variables in the yml file here"
Write-Host "parameters from the yml file would be great too"
Write-Host "But what would I write to do that?"
Write-Host "$(MyVar) <- Nothing here"
azurePowerShellVersion: 'LatestVersion'

得到:

Corrected result

它没有通过第一个,因为语法 $(variables.MyVar) 无效。语法的工作原理如下:

  • 编译时(仅在声明变量的文件中可用,不能用于模板等嵌套文件):${{variables.MyVar }}
  • 运行时(任务执行之前):$(MyVar) - 如果为空,则扩展为“$(MyVar)”
  • 运行时(针对特定条件或默认值导致问题的情况而设计):$[variables.MyVar] - 如果为空,则扩展为空字符串

我想知道缺少 Azure Powershell 版本是否是您的问题的一部分?

关于azure - 在 AzurePowerShellV5 内联脚本中引用 yaml 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66288762/

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