AzureResourceManagerTemplateDeployment@3 - ARM 模板部署 v3 任务

使用此任务将 Azure 资源管理器 (ARM) 模板部署到所有部署范围。

语法

# ARM template deployment v3
# Deploy an Azure Resource Manager (ARM) template to all the deployment scopes.
- task: AzureResourceManagerTemplateDeployment@3
  inputs:
  # Azure Details
    deploymentScope: 'Resource Group' # 'Management Group' | 'Subscription' | 'Resource Group'. Required. Deployment scope. Default: Resource Group.
    azureResourceManagerConnection: # string. Alias: ConnectedServiceName. Required. Azure Resource Manager connection. 
    #subscriptionId: # string. Alias: subscriptionName. Required when deploymentScope != Management Group. Subscription. 
    #action: 'Create Or Update Resource Group' # 'Create Or Update Resource Group' | 'DeleteRG'. Required when deploymentScope = Resource Group. Action. Default: Create Or Update Resource Group.
    #resourceGroupName: # string. Required when deploymentScope = Resource Group. Resource group. 
    #location: # string. Required when action = Create Or Update Resource Group || deploymentScope != Resource Group. Location. 
  # Template
    #templateLocation: 'Linked artifact' # 'Linked artifact' | 'URL of the file'. Required when action = Create Or Update Resource Group || deploymentScope != Resource Group. Template location. Default: Linked artifact.
    #csmFileLink: # string. Required when templateLocation = URL of the file && action = Create Or Update Resource Group || deploymentScope != Resource Group. Template link. 
    #csmParametersFileLink: # string. Optional. Use when templateLocation = URL of the file && action = Create Or Update Resource Group || deploymentScope != Resource Group. Template parameters link. 
    #csmFile: # string. Required when templateLocation = Linked artifact && action = Create Or Update Resource Group || deploymentScope != Resource Group. Template. 
    #csmParametersFile: # string. Optional. Use when templateLocation = Linked artifact && action = Create Or Update Resource Group || deploymentScope != Resource Group. Template parameters. 
    #overrideParameters: # string. Optional. Use when action = Create Or Update Resource Group || deploymentScope != Resource Group. Override template parameters. 
    #deploymentMode: 'Incremental' # 'Incremental' | 'Complete' | 'Validation'. Required when action = Create Or Update Resource Group || deploymentScope != Resource Group. Deployment mode. Default: Incremental.
  # Advanced
    #deploymentName: # string. Optional. Use when action = Create Or Update Resource Group || deploymentScope != Resource Group. Deployment name. 
    #deploymentOutputs: # string. Optional. Use when action = Create Or Update Resource Group || deploymentScope != Resource Group. Deployment outputs. 
    #addSpnToEnvironment: false # boolean. Optional. Use when action = Create Or Update Resource Group || deploymentScope != Resource Group. Access service principal details in override parameters. Default: false.
    #useWithoutJSON: false # boolean. Optional. Use when action = Create Or Update Resource Group || deploymentScope != Resource Group. Use individual output values without JSON.Stringify applied. Default: false.
# ARM template deployment v3
# Deploy an Azure Resource Manager (ARM) template to all the deployment scopes.
- task: AzureResourceManagerTemplateDeployment@3
  inputs:
  # Azure Details
    deploymentScope: 'Resource Group' # 'Management Group' | 'Subscription' | 'Resource Group'. Required. Deployment scope. Default: Resource Group.
    azureResourceManagerConnection: # string. Alias: ConnectedServiceName. Required. Azure Resource Manager connection. 
    #subscriptionId: # string. Alias: subscriptionName. Required when deploymentScope != Management Group. Subscription. 
    #action: 'Create Or Update Resource Group' # 'Create Or Update Resource Group' | 'DeleteRG'. Required when deploymentScope = Resource Group. Action. Default: Create Or Update Resource Group.
    #resourceGroupName: # string. Required when deploymentScope = Resource Group. Resource group. 
    #location: # string. Required when action = Create Or Update Resource Group || deploymentScope != Resource Group. Location. 
  # Template
    #templateLocation: 'Linked artifact' # 'Linked artifact' | 'URL of the file'. Required when action = Create Or Update Resource Group || deploymentScope != Resource Group. Template location. Default: Linked artifact.
    #csmFileLink: # string. Required when templateLocation = URL of the file && action = Create Or Update Resource Group || deploymentScope != Resource Group. Template link. 
    #csmParametersFileLink: # string. Optional. Use when templateLocation = URL of the file && action = Create Or Update Resource Group || deploymentScope != Resource Group. Template parameters link. 
    #csmFile: # string. Required when templateLocation = Linked artifact && action = Create Or Update Resource Group || deploymentScope != Resource Group. Template. 
    #csmParametersFile: # string. Optional. Use when templateLocation = Linked artifact && action = Create Or Update Resource Group || deploymentScope != Resource Group. Template parameters. 
    #overrideParameters: # string. Optional. Use when action = Create Or Update Resource Group || deploymentScope != Resource Group. Override template parameters. 
    #deploymentMode: 'Incremental' # 'Incremental' | 'Complete' | 'Validation'. Required when action = Create Or Update Resource Group || deploymentScope != Resource Group. Deployment mode. Default: Incremental.
  # Advanced
    #deploymentName: # string. Optional. Use when action = Create Or Update Resource Group || deploymentScope != Resource Group. Deployment name. 
    #deploymentOutputs: # string. Optional. Use when action = Create Or Update Resource Group || deploymentScope != Resource Group. Deployment outputs. 
    #addSpnToEnvironment: false # boolean. Optional. Use when action = Create Or Update Resource Group || deploymentScope != Resource Group. Access service principal details in override parameters. Default: false.

输入

deploymentScope - 部署范围
string. 必需。 允许的值:Management GroupSubscriptionResource Group。 默认值:Resource Group

部署的范围。 详细了解 部署范围


azureResourceManagerConnection - Azure 资源管理器连接
输入别名: ConnectedServiceNamestring. 必需。

指定有权访问所选部署范围的 Azure 资源管理器 服务连接。


subscriptionId - 订阅
输入别名: subscriptionNamestring. 当 deploymentScope != Management Group 时,需要此选项。

指定 Azure 订阅。

重要

指定的值必须是订阅 ID,而不是订阅名称。


action - 行动
string. 当 deploymentScope = Resource Group 时,需要此选项。 允许的值: Create Or Update Resource GroupDeleteRG (删除资源组) 。 默认值:Create Or Update Resource Group

要对 Azure 资源或资源组执行的操作。


resourceGroupName - 资源组
string. 当 deploymentScope = Resource Group 时,需要此选项。

提供资源组的名称。


location - 位置
string. 当 action = Create Or Update Resource Group || deploymentScope != Resource Group 时,需要此选项。

资源组部署范围:要部署资源组的位置。 如果 Azure 订阅中已存在资源组,则将忽略此值。 其他部署范围:用于存储部署元数据的位置。


templateLocation - 模板位置
string. 当 action = Create Or Update Resource Group || deploymentScope != Resource Group 时,需要此选项。 允许的值:Linked artifactURL of the file。 默认值:Linked artifact

模板和参数 JSON 文件的位置。 如果文件是 链接的代码 /生成项目的一部分,请选择“链接的项目”。 对于链接的项目,还可以指定 Bicep 文件的路径。 如果 JSON 文件位于任何可公开访问 http/https URL,请选择文件的 URL。 若要使用存储在专用存储帐户中的文件,请在模板的 URL 中检索并包含共享访问签名 (SAS) 令牌。 示例:<blob_storage_url>/template.json?。 若要将参数文件上传到存储帐户并生成 SAS 令牌,可以使用 Azure 文件复制任务 或使用 PowerShellAzure CLI 执行步骤。


csmFileLink - 模板链接
string. 当 templateLocation = URL of the file && action = Create Or Update Resource Group || deploymentScope != Resource Group 时,需要此选项。

指定模板文件的 URL。 示例 URL: https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.json

若要部署存储在专用存储帐户中的模板,请在模板的 URL 中检索并包含共享访问签名 (SAS) 令牌。 示例:<blob_storage_url>/template.json?<SAStoken>。 若要将模板文件 (或链接模板) 上传到存储帐户并生成 SAS 令牌,请使用 Azure 文件复制 任务或使用 PowerShellAzure CLI 执行步骤。

若要查看网格中的模板参数,请单击“替代模板参数”文本框旁边的 。... 此功能需要在源中启用 CORS 规则。 如果模板位于 Azure 存储 Blob 中,请参阅 跨域资源共享 以启用 CORS。


csmParametersFileLink - 模板参数链接
string. 可选。 在 时 templateLocation = URL of the file && action = Create Or Update Resource Group || deploymentScope != Resource Group使用 。

指定参数文件的 URL。 示例 URL: https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.parameters.json

若要使用存储在专用存储帐户中的文件,请在模板的 URL 中检索并包含共享访问签名 (SAS) 令牌。 示例:<blob_storage_url>/template.json?<SAStoken>。 若要将模板文件 (或链接模板) 上传到存储帐户并生成 SAS 令牌,请使用 Azure 文件复制 任务或使用 PowerShellAzure CLI 执行步骤。

若要查看网格中的模板参数,请单击“ ... 替代模板参数”文本框旁边的。 此功能需要在源中启用 CORS 规则。 如果模板位于 Azure 存储 Blob 中,请参阅 跨域资源共享 以启用 CORS。


csmFile - 模板
string. 当 templateLocation = Linked artifact && action = Create Or Update Resource Group || deploymentScope != Resource Group 时,需要此选项。

指定指向 Azure 资源管理器模板的路径或模式。 详细了解 Azure 资源管理器模板。 若要立即开始,请使用 此示例模板。 在 Azure CLI 版本 > 2.20.0 时支持 Bicep 文件。


csmParametersFile - 模板参数
string. 可选。 在 时 templateLocation = Linked artifact && action = Create Or Update Resource Group || deploymentScope != Resource Group使用 。

指定 Azure 资源管理器模板的参数文件的路径或模式。 在 Azure CLI 版本 > 2.47.0 时支持 Bicep Param 文件。


overrideParameters - 替代模板参数
string. 可选。 在 时 action = Create Or Update Resource Group || deploymentScope != Resource Group使用 。

指定要替代的模板参数。

若要查看网格中的模板参数,请单击“ ... 替代参数”文本框旁边的。 此功能需要在源中启用 CORS 规则。 如果模板位于 Azure 存储 Blob 中,请引用此字符串以启用 CORS,或在文本框中键入要替代的模板参数。

示例:-storageName fabrikam -adminUsername $(vmusername) -adminPassword (ConvertTo-SecureString -String '$(password)' -AsPlainText -Force) -azureKeyVaultName $(fabrikamFibre)

如果参数值有多个单词,请将单词括在引号中,即使使用变量传递值也是如此。 例如 -name "parameter value" -name2 "$(var)"。 若要替代对象类型参数,请使用字符串化的 JSON 对象。 例如 -options ["option1"] -map {"key1": "value1" }


deploymentMode - 部署模式
string. 当 action = Create Or Update Resource Group || deploymentScope != Resource Group 时,需要此选项。 允许的值: IncrementalCompleteValidation (仅验证) 。 默认值:Incremental

模式 Incremental 将部署作为对资源组的增量更新进行处理。 它保留资源组中存在但未在模板中指定的未更改资源。

Complete mode 会删除不在模板中的资源。 与增量模式相比,完整模式花费的时间相对较多。 如果任务超时,请考虑增加超时或更改模式 Incremental

警告

完成模式将删除资源组中未在模板中指定的所有现有资源。 请检查要部署到的资源组是否不包含模板中未指定的任何必要资源。 Validate 模式使你能够在创建实际资源之前发现模板问题。

注意

Validate 模式始终创建资源组,即使未部署任何资源。 详细了解 部署模式


deploymentName - 部署名称
string. 可选。 在 时 action = Create Or Update Resource Group || deploymentScope != Resource Group使用 。

指定要创建的资源组部署的名称。


deploymentOutputs - 部署输出
string. 可选。 在 时 action = Create Or Update Resource Group || deploymentScope != Resource Group使用 。

为输出变量提供变量的名称,该变量包含字符串格式的当前部署对象的 outputs 部分。 可以使用 ConvertFrom-Json PowerShell cmdlet 分析 JSON 对象并访问单个输出值。 详细了解 部署输出


addSpnToEnvironment - 替代参数中的访问服务主体详细信息
boolean. 可选。 在 时 action = Create Or Update Resource Group || deploymentScope != Resource Group使用 。 默认值:false

添加选择作为脚本执行环境的 Azure 终结点的服务主体 ID 和密钥。 变量 $servicePrincipalId$servicePrincipalKey 可以位于替代参数中,例如 -key $servicePrincipalKey


useWithoutJSON - 使用不带 JSON 的单个输出值。已应用 Stringify
boolean. 可选。 在 时 action = Create Or Update Resource Group || deploymentScope != Resource Group使用 。 默认值:false

通过 JSON 转换单个输出值。默认情况下,字符串化。 如果想要按原样使用输出值,而无需通过 JSON 转换它们。字符串化,启用此选项。 有关更多详细信息,请参阅 此文


任务控制选项

除了任务输入,所有任务都有控制选项。 有关详细信息,请参阅 控制选项和常见任务属性

输出变量

无。

备注

注意

Azure CLI 版本 > 2.20.0 时,此任务支持 Bicep 文件。

  • 在所有部署范围内添加了对部署的支持。
    • 删除了所有与 VM 相关的操作。

要求

要求 说明
管道类型 YAML、经典版本、经典版本
运行平台 Agent、DeploymentGroup
需求
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任意
可设置变量 任意
代理版本 2.119.1 或更高版本
任务类别 部署