You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Bicep将Azure DevOps Pipeline变量传递至Linux系统?

如何通过Bicep将Azure DevOps Pipeline变量传递到Linux虚拟机

你当前的问题核心是:Bicep运行时无法直接读取Azure DevOps Pipeline的变量上下文,代码里直接写的$USER1并没有被替换为Pipeline中的实际变量值,导致最终传到虚拟机的命令里$USER1为空,进而pat1变量无值。以下是具体解决步骤:

步骤1:在Bicep中定义参数接收Pipeline变量

先在Bicep文件中新增参数,用于接收从Pipeline传递过来的USER1变量,再在自定义脚本扩展中引用这个参数:

// 定义参数,接收Azure DevOps Pipeline传递的USER1变量
param user1 string

resource customScriptExtension 'Microsoft.Compute/virtualMachines/extensions@2023-07-01' = {
  parent: virtualMachine
  name: 'config-app-linux'
  location: location
  properties: {
    publisher: 'Microsoft.Azure.Extensions'
    type: 'CustomScript'
    typeHandlerVersion: '2.1'
    autoUpgradeMinorVersion: true
    settings: {
      skipDos2Unix: false
      timestamp: 123456789
    }
    protectedSettings: { 
      // 用Bicep插值语法引用参数,同时保留shell的变量赋值格式
      commandtoExecute: 'pat1="${user1}"'
    }
  }
}

步骤2:在Azure DevOps Pipeline中传递变量到Bicep参数

在Pipeline的部署任务中,将Pipeline的USER1变量映射到Bicep定义的user1参数,以下是两种常见任务的示例:

示例1:Azure CLI部署任务

- task: AzureCLI@2
  inputs:
    azureSubscription: '你的Azure服务连接名称'
    scriptType: 'bash'
    scriptLocation: 'inlineScript'
    inlineScript: |
      az deployment group create \
        --resource-group 你的资源组名称 \
        --template-file ./你的Bicep文件路径.bicep \
        --parameters user1=$(USER1)

示例2:ARM模板部署任务

- task: AzureResourceManagerTemplateDeployment@3
  inputs:
    deploymentScope: 'Resource Group'
    azureResourceManagerConnection: '你的Azure服务连接名称'
    subscriptionId: '你的订阅ID'
    resourceGroupName: '你的资源组名称'
    location: '部署区域'
    templateLocation: 'Linked artifact'
    csmFile: './你的Bicep文件路径.bicep'
    overrideParameters: '-user1 $(USER1)'

步骤3:验证变量生效(可选)

如果需要让变量在虚拟机的后续会话中持续生效,可以将变量写入shell配置文件,比如修改commandtoExecute:

commandtoExecute: 'echo "pat1=\"${user1}\"" >> ~/.bashrc && source ~/.bashrc'

部署完成后登录虚拟机,执行echo $pat1即可验证变量是否正确传递。

内容的提问来源于stack exchange,提问作者Hanscastor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 07:27:07