AzureResourceGroupDeployment@2 - Azure 资源组部署 v2 任务
将 Azure 资源管理器 (ARM) 模板部署到资源组并管理虚拟机。
将 Azure 资源管理器 (ARM) 模板部署到资源组。 还可以启动、停止、删除和解除分配资源组中的所有虚拟机(VM)。
语法
# Azure resource group deployment v2
# Deploy an Azure Resource Manager (ARM) template to a resource group and manage virtual machines.
- task: AzureResourceGroupDeployment@2
inputs:
# Azure Details
azureSubscription: # string. Alias: ConnectedServiceName. Required. Azure subscription.
action: 'Create Or Update Resource Group' # 'Create Or Update Resource Group' | 'Select Resource Group' | 'Start' | 'Stop' | 'StopWithDeallocate' | 'Restart' | 'Delete' | 'DeleteRG'. Required. Action. Default: Create Or Update Resource Group.
resourceGroupName: # string. Required. Resource group.
#location: # string. Required when action = Create Or Update Resource Group. Location.
# Template
#templateLocation: 'Linked artifact' # 'Linked artifact' | 'URL of the file'. Required when action = Create Or Update Resource Group. Template location. Default: Linked artifact.
#csmFileLink: # string. Required when templateLocation = URL of the file && action = Create Or Update Resource Group. Template link.
#csmParametersFileLink: # string. Optional. Use when templateLocation = URL of the file && action = Create Or Update Resource Group. Template parameters link.
#csmFile: # string. Required when templateLocation = Linked artifact && action = Create Or Update Resource Group. Template.
#csmParametersFile: # string. Optional. Use when templateLocation = Linked artifact && action = Create Or Update Resource Group. Template parameters.
#overrideParameters: # string. Optional. Use when action = Create Or Update Resource Group. Override template parameters.
#deploymentMode: 'Incremental' # 'Incremental' | 'Complete' | 'Validation'. Required when action = Create Or Update Resource Group. Deployment mode. Default: Incremental.
# Advanced deployment options for virtual machines
#enableDeploymentPrerequisites: 'None' # 'None' | 'ConfigureVMwithWinRM' | 'ConfigureVMWithDGAgent'. Optional. Use when action = Create Or Update Resource Group || action = Select Resource Group. Enable prerequisites. Default: None.
#teamServicesConnection: # string. Alias: deploymentGroupEndpoint. Required when (action = Create Or Update Resource Group || action = Select Resource Group) && enableDeploymentPrerequisites = ConfigureVMWithDGAgent. Azure Pipelines service connection.
#teamProject: # string. Alias: project. Required when (action = Create Or Update Resource Group || action = Select Resource Group) && enableDeploymentPrerequisites = ConfigureVMWithDGAgent. Team project.
#deploymentGroupName: # string. Required when (action = Create Or Update Resource Group || action = Select Resource Group) && enableDeploymentPrerequisites = ConfigureVMWithDGAgent. Deployment Group.
#copyAzureVMTags: true # boolean. Optional. Use when (action = Create Or Update Resource Group || action = Select Resource Group) && enableDeploymentPrerequisites = ConfigureVMWithDGAgent. Copy Azure VM tags to agents. Default: true.
#runAgentServiceAsUser: false # boolean. Optional. Use when (action = Create Or Update Resource Group || action = Select Resource Group) && enableDeploymentPrerequisites = ConfigureVMWithDGAgent. Run agent service as a user. Default: false.
#userName: # string. Required when enableDeploymentPrerequisites = ConfigureVMWithDGAgent && runAgentServiceAsUser = true. User name.
#password: # string. Optional. Use when enableDeploymentPrerequisites = ConfigureVMWithDGAgent && runAgentServiceAsUser = true. Password.
#outputVariable: # string. Optional. Use when (action = Create Or Update Resource Group || action = Select Resource Group) && (enableDeploymentPrerequisites = ConfigureVMwithWinRM || enableDeploymentPrerequisites = None). VM details for WinRM.
# Advanced
#deploymentName: # string. Optional. Use when action = Create Or Update Resource Group. Deployment name.
#deploymentOutputs: # string. Optional. Use when action = Create Or Update Resource Group. Deployment outputs.
#addSpnToEnvironment: false # boolean. Optional. Use when action = Create Or Update Resource Group. Access service principal details in override parameters. Default: false.
#useWithoutJSON: false # boolean. Optional. Use when action = Create Or Update Resource Group. Use individual output values without JSON.Stringify applied. Default: false.
# Azure resource group deployment v2
# Deploy an Azure Resource Manager (ARM) template to a resource group and manage virtual machines.
- task: AzureResourceGroupDeployment@2
inputs:
# Azure Details
azureSubscription: # string. Alias: ConnectedServiceName. Required. Azure subscription.
action: 'Create Or Update Resource Group' # 'Create Or Update Resource Group' | 'Select Resource Group' | 'Start' | 'Stop' | 'StopWithDeallocate' | 'Restart' | 'Delete' | 'DeleteRG'. Required. Action. Default: Create Or Update Resource Group.
resourceGroupName: # string. Required. Resource group.
#location: # string. Required when action = Create Or Update Resource Group. Location.
# Template
#templateLocation: 'Linked artifact' # 'Linked artifact' | 'URL of the file'. Required when action = Create Or Update Resource Group. Template location. Default: Linked artifact.
#csmFileLink: # string. Required when templateLocation = URL of the file && action = Create Or Update Resource Group. Template link.
#csmParametersFileLink: # string. Optional. Use when templateLocation = URL of the file && action = Create Or Update Resource Group. Template parameters link.
#csmFile: # string. Required when templateLocation = Linked artifact && action = Create Or Update Resource Group. Template.
#csmParametersFile: # string. Optional. Use when templateLocation = Linked artifact && action = Create Or Update Resource Group. Template parameters.
#overrideParameters: # string. Optional. Use when action = Create Or Update Resource Group. Override template parameters.
#deploymentMode: 'Incremental' # 'Incremental' | 'Complete' | 'Validation'. Required when action = Create Or Update Resource Group. Deployment mode. Default: Incremental.
# Advanced deployment options for virtual machines
#enableDeploymentPrerequisites: 'None' # 'None' | 'ConfigureVMwithWinRM' | 'ConfigureVMWithDGAgent'. Optional. Use when action = Create Or Update Resource Group || action = Select Resource Group. Enable prerequisites. Default: None.
#teamServicesConnection: # string. Alias: deploymentGroupEndpoint. Required when (action = Create Or Update Resource Group || action = Select Resource Group) && enableDeploymentPrerequisites = ConfigureVMWithDGAgent. Azure Pipelines service connection.
#teamProject: # string. Alias: project. Required when (action = Create Or Update Resource Group || action = Select Resource Group) && enableDeploymentPrerequisites = ConfigureVMWithDGAgent. Team project.
#deploymentGroupName: # string. Required when (action = Create Or Update Resource Group || action = Select Resource Group) && enableDeploymentPrerequisites = ConfigureVMWithDGAgent. Deployment Group.
#copyAzureVMTags: true # boolean. Optional. Use when (action = Create Or Update Resource Group || action = Select Resource Group) && enableDeploymentPrerequisites = ConfigureVMWithDGAgent. Copy Azure VM tags to agents. Default: true.
#runAgentServiceAsUser: false # boolean. Optional. Use when (action = Create Or Update Resource Group || action = Select Resource Group) && enableDeploymentPrerequisites = ConfigureVMWithDGAgent. Run agent service as a user. Default: false.
#userName: # string. Required when enableDeploymentPrerequisites = ConfigureVMWithDGAgent && runAgentServiceAsUser = true. User name.
#password: # string. Optional. Use when enableDeploymentPrerequisites = ConfigureVMWithDGAgent && runAgentServiceAsUser = true. Password.
#outputVariable: # string. Optional. Use when (action = Create Or Update Resource Group || action = Select Resource Group) && (enableDeploymentPrerequisites = ConfigureVMwithWinRM || enableDeploymentPrerequisites = None). VM details for WinRM.
# Advanced
#deploymentName: # string. Optional. Use when action = Create Or Update Resource Group. Deployment name.
#deploymentOutputs: # string. Optional. Use when action = Create Or Update Resource Group. Deployment outputs.
#addSpnToEnvironment: false # boolean. Optional. Use when action = Create Or Update Resource Group. Access service principal details in override parameters. Default: false.
# Azure Resource Group Deployment v2
# Deploy an Azure resource manager (ARM) template to a resource group. You can also start, stop, delete, deallocate all Virtual Machines (VM) in a resource group.
- task: AzureResourceGroupDeployment@2
inputs:
# Azure Details
azureSubscription: # string. Alias: ConnectedServiceName. Required. Azure subscription.
action: 'Create Or Update Resource Group' # 'Create Or Update Resource Group' | 'Select Resource Group' | 'Start' | 'Stop' | 'StopWithDeallocate' | 'Restart' | 'Delete' | 'DeleteRG'. Required. Action. Default: Create Or Update Resource Group.
resourceGroupName: # string. Required. Resource group.
#location: # string. Required when action = Create Or Update Resource Group. Location.
# Template
#templateLocation: 'Linked artifact' # 'Linked artifact' | 'URL of the file'. Required when action = Create Or Update Resource Group. Template location. Default: Linked artifact.
#csmFileLink: # string. Required when templateLocation = URL of the file && action = Create Or Update Resource Group. Template link.
#csmParametersFileLink: # string. Optional. Use when templateLocation = URL of the file && action = Create Or Update Resource Group. Template parameters link.
#csmFile: # string. Required when templateLocation = Linked artifact && action = Create Or Update Resource Group. Template.
#csmParametersFile: # string. Optional. Use when templateLocation = Linked artifact && action = Create Or Update Resource Group. Template parameters.
#overrideParameters: # string. Optional. Use when action = Create Or Update Resource Group. Override template parameters.
#deploymentMode: 'Incremental' # 'Incremental' | 'Complete' | 'Validation'. Required when action = Create Or Update Resource Group. Deployment mode. Default: Incremental.
# Advanced deployment options for virtual machines
#enableDeploymentPrerequisites: 'None' # 'None' | 'ConfigureVMwithWinRM' | 'ConfigureVMWithDGAgent'. Optional. Use when action = Create Or Update Resource Group || action = Select Resource Group. Enable prerequisites. Default: None.
#teamServicesConnection: # string. Alias: deploymentGroupEndpoint. Required when (action = Create Or Update Resource Group || action = Select Resource Group) && enableDeploymentPrerequisites = ConfigureVMWithDGAgent. Azure Pipelines/TFS service connection.
#teamProject: # string. Alias: project. Required when (action = Create Or Update Resource Group || action = Select Resource Group) && enableDeploymentPrerequisites = ConfigureVMWithDGAgent. Team project.
#deploymentGroupName: # string. Required when (action = Create Or Update Resource Group || action = Select Resource Group) && enableDeploymentPrerequisites = ConfigureVMWithDGAgent. Deployment Group.
#copyAzureVMTags: true # boolean. Optional. Use when (action = Create Or Update Resource Group || action = Select Resource Group) && enableDeploymentPrerequisites = ConfigureVMWithDGAgent. Copy Azure VM tags to agents. Default: true.
#runAgentServiceAsUser: false # boolean. Optional. Use when (action = Create Or Update Resource Group || action = Select Resource Group) && enableDeploymentPrerequisites = ConfigureVMWithDGAgent. Run agent service as a user. Default: false.
#userName: # string. Required when enableDeploymentPrerequisites = ConfigureVMWithDGAgent && runAgentServiceAsUser = true. User name.
#password: # string. Optional. Use when enableDeploymentPrerequisites = ConfigureVMWithDGAgent && runAgentServiceAsUser = true. Password.
#outputVariable: # string. Optional. Use when (action = Create Or Update Resource Group || action = Select Resource Group) && (enableDeploymentPrerequisites = ConfigureVMwithWinRM || enableDeploymentPrerequisites = None). VM details for WinRM.
# Outputs
#deploymentOutputs: # string. Optional. Use when action = Create Or Update Resource Group. Deployment outputs.
输入
azureSubscription
-
Azure 订阅
输入别名:ConnectedServiceName
。
string
。 必填。
选择包含部署的 Azure 订阅的服务连接。
action
-
操作
string
。 必填。 允许的值:Create Or Update Resource Group
、Select Resource Group
(配置虚拟机部署选项)、Start
(启动虚拟机)、Stop
(停止虚拟机)、StopWithDeallocate
(停止和解除分配虚拟机)、Restart
(重启虚拟机)、Delete
(删除虚拟机)、DeleteRG
(删除资源组)。 默认值:Create Or Update Resource Group
。
要对 Azure 资源或资源组执行的操作。
resourceGroupName
-
资源组
string
。 必填。
提供资源组的名称。
location
-
位置
string
。
action = Create Or Update Resource Group
时是必需的。
部署资源组的位置。 如果订阅中已存在资源组,则将忽略此值。
templateLocation
-
模板位置
string
。
action = Create Or Update Resource Group
时是必需的。 允许的值:Linked artifact
、URL of the file
。 默认值:Linked artifact
。
选择 链接项目 或文件 的URL。
csmFileLink
-
模板链接
string
。
templateLocation = URL of the file && action = Create Or Update 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 文件复制 任务,或使用 PowerShell 或 Azure CLI执行步骤。
若要查看网格中的模板参数,请单击替代模板参数文本框旁边的 ...
。 此功能要求在源中启用 CORS 规则。 如果模板位于 Azure 存储 blob 中,请参阅 了解 CORS 请求 以启用 CORS。
csmParametersFileLink
-
模板参数链接
string
。 自选。 当 templateLocation = URL of the file && action = Create Or Update Resource Group
时使用。
指定参数文件的 URL。 示例:https://raw.githubusercontent.com/Azure/...
若要使用存储在专用存储帐户中的文件,请在模板的 URL 中检索和包含共享访问签名 (SAS) 令牌。 示例:<blob_storage_url>/template.json?<SAStoken>
若要将参数文件上传到存储帐户并生成 SAS 令牌,可以使用 Azure 文件复制 任务,或使用 PowerShell 或 Azure CLI执行步骤。
若要查看网格中的模板参数,请单击替代模板参数文本框旁边的 ...
。 此功能要求在源中启用 CORS 规则。 如果模板位于 Azure 存储 blob 中,请参阅 了解 CORS 请求 以启用 CORS。
csmFile
-
模板
string
。
templateLocation = Linked artifact && action = Create Or Update Resource Group
时是必需的。
指定指向 Azure 资源管理器模板的路径或模式。 详细了解 Azure 资源管理器模板。 若要立即开始,请使用此示例模板 。
csmParametersFile
-
模板参数
string
。 自选。 当 templateLocation = Linked artifact && action = Create Or Update 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 文件复制 任务,或使用 PowerShell 或 Azure CLI执行步骤。
若要查看网格中的模板参数,请单击替代模板参数文本框旁边的 ...
。 此功能要求在源中启用 CORS 规则。 如果模板位于 Azure 存储 blob 中,请参阅 了解 CORS 请求 以启用 CORS。
overrideParameters
-
替代模板参数
string
。 自选。 当 action = Create Or Update 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
时是必需的。 允许的值:Incremental
、Complete
、Validation
(仅验证)。 默认值:Incremental
。
Incremental
模式将部署作为对资源组的增量更新进行处理。 它保留资源组中存在但未在模板中指定的未更改的资源。
Complete
模式将删除不在模板中的资源。 完整模式所需的时间比增量模式要长。 如果任务超时,请考虑增加超时或更改为 Incremental
模式。
警告
完整模式将删除未在模板中指定的资源组中的所有现有资源。 请检查要部署到的资源组是否不包含模板中未指定的任何必要资源。
通过 Validate
模式,可以在创建实际资源之前查找模板的问题。
注意
即使未部署任何资源,Validate
模式也会始终创建资源组。
详细了解 部署模式。
enableDeploymentPrerequisites
-
启用先决条件
string
。 自选。 当 action = Create Or Update Resource Group || action = Select Resource Group
时使用。 允许的值:None
、ConfigureVMwithWinRM
(使用 WinRM 代理配置)、ConfigureVMWithDGAgent
(使用部署组代理进行配置)。 默认值:None
。
仅当资源组包含虚拟机时适用。
选择“部署组”选项可在每个虚拟机上配置部署组代理。
选择 WinRM 选项会使用自签名证书通过端口 5986 上的 HTTPS 协议配置 Windows 远程管理(WinRM)侦听器。 在 Azure 计算机上执行部署操作需要此配置。 如果目标虚拟机由负载均衡器提供支持,请确保为目标端口(5986)配置入站 NAT 规则。
teamServicesConnection
-
Azure Pipelines 服务连接
输入别名:deploymentGroupEndpoint
。
string
。
(action = Create Or Update Resource Group || action = Select Resource Group) && enableDeploymentPrerequisites = ConfigureVMWithDGAgent
时是必需的。
指定要连接到 Azure DevOps 组织或用于代理注册的集合的服务连接。
可以使用 +New
创建服务连接,然后选择 Token-based authentication
。 需要 个人访问令牌(PAT) 来设置服务连接。 单击 Manage
更新服务连接详细信息。
teamServicesConnection
-
Azure Pipelines/TFS 服务连接
输入别名:deploymentGroupEndpoint
。
string
。
(action = Create Or Update Resource Group || action = Select Resource Group) && enableDeploymentPrerequisites = ConfigureVMWithDGAgent
时是必需的。
指定要连接到 Azure DevOps 组织或用于代理注册的集合的服务连接。
可以使用 +New
创建服务连接,然后选择 Token-based authentication
。 需要 个人访问令牌(PAT) 来设置服务连接。 单击 Manage
更新服务连接详细信息。
teamProject
-
团队项目
输入别名:project
。
string
。
(action = Create Or Update Resource Group || action = Select Resource Group) && enableDeploymentPrerequisites = ConfigureVMWithDGAgent
时是必需的。
指定定义部署组的团队项目。
deploymentGroupName
-
部署组
string
。
(action = Create Or Update Resource Group || action = Select Resource Group) && enableDeploymentPrerequisites = ConfigureVMWithDGAgent
时是必需的。
指定将对其注册代理的部署组。 详细了解 部署组。
copyAzureVMTags
-
将 Azure VM 标记复制到代理
boolean
。 自选。 当 (action = Create Or Update Resource Group || action = Select Resource Group) && enableDeploymentPrerequisites = ConfigureVMWithDGAgent
时使用。 默认值:true
。
选择是否需要将 Azure VM 上配置的标记复制到相应的部署组代理。
默认情况下,所有 Azure 标记都按以下格式复制:Key: Value
。 示例:Role : Web
Azure 标记 as-is 复制到代理计算机。
以用户身份 runAgentServiceAsUser
- 运行代理服务
boolean
。 自选。 当 (action = Create Or Update Resource Group || action = Select Resource Group) && enableDeploymentPrerequisites = ConfigureVMWithDGAgent
时使用。 默认值:false
。
如果值设置为 true
,则以默认用户以外的用户身份运行代理服务。
默认用户在 Windows 中 NT AUTHORITY\\SYSTEM
,在 Linux 中 root
。
userName
-
用户名
string
。
enableDeploymentPrerequisites = ConfigureVMWithDGAgent && runAgentServiceAsUser = true
时是必需的。
要在虚拟机上运行代理服务的用户名。
对于域用户,请将值指定为 domain\username
或 username@domain.com
。 对于本地用户,请指定 username
。
假定资源组中的所有虚拟机上都存在同一个域用户或同名的本地用户。
password
-
密码
string
。 自选。 当 enableDeploymentPrerequisites = ConfigureVMWithDGAgent && runAgentServiceAsUser = true
时使用。
用户在 Windows VM 上运行代理服务的密码。
假定所有 VM 上指定用户的密码相同。
它可以接受在生成或发布管道中定义的变量作为 $(passwordVariable)
。 可以将变量标记为 secret
来保护它。
对于 Linux VM,不需要密码,将被忽略。
WinRMoutputVariable
- VM 详细信息
string
。 自选。 当 (action = Create Or Update Resource Group || action = Select Resource Group) && (enableDeploymentPrerequisites = ConfigureVMwithWinRM || enableDeploymentPrerequisites = None)
时使用。
选择现有资源组时是必需的。 提供资源组变量的名称。 该变量可用作 $(variableName)
来引用后续任务中的资源组,例如用于部署应用程序的 PowerShell 中的 PowerShell。
仅在所选操作 Create
、Update
或 Select
时才有效。
deploymentName
-
部署名称
string
。 自选。 当 action = Create Or Update Resource Group
时使用。
指定要创建的资源组部署的名称。
deploymentOutputs
-
部署输出
string
。 自选。 当 action = Create Or Update Resource Group
时使用。
提供输出变量的名称,该变量包含当前部署对象的 outputs 节(采用字符串格式)。 使用 ConvertFrom-Json
PowerShell cmdlet 分析 JSON 对象并访问单个输出值。
addSpnToEnvironment
-
替代参数中的 Access 服务主体详细信息
boolean
。 自选。 当 action = Create Or Update Resource Group
时使用。 默认值:false
。
添加选择为脚本执行环境的 Azure 终结点的服务主体 ID 和密钥。 变量 $servicePrincipalId
和 $servicePrincipalKey
可以采用替代参数,例如 -key $servicePrincipalKey
。
useWithoutJSON
-
不使用 JSON 使用单个输出值。已应用字符串化
boolean
。 自选。 当 action = Create Or Update Resource Group
时使用。 默认值:false
。
通过 JSON 转换单个输出值。默认情况下,Stringify。 如果要使用输出值,因为它不通过 JSON 转换它们。Stringify,启用此选项。 有关更多详细信息,请参阅此 。
任务控制选项
除任务输入之外,所有任务都具有控制选项。 有关详细信息,请参阅 控件选项和常见任务属性。
输出变量
没有。
言论
AzureResourceManagerTemplateDeployment@3 - ARM 模板部署 v3 任务提供了此任务的新版本。
任务版本 2 中的新增功能
- 适用于跨平台代理(Linux、macOS 或 Windows)
- 支持位于任何可公开访问的 http/https URL 上的模板 JSON。
- 增强的替代参数的 UX,现在可以在网格中查看/编辑这些参数。
- 负载均衡器支持的 VM 的 NAT 规则映射。
- “资源组”字段现已重命名为“WinRM 的 VM 详细信息”,并包含在“虚拟机的高级部署选项”部分中。
- 局限性:
- 不支持经典订阅。 仅支持 ARM 订阅。
- 由于任务现在基于 node.js,因此不支持 PowerShell 语法。 重写模板参数时,请确保参数名称的区分大小写。 此外,从版本 1.0 迁移到版本 2.0 时,请删除 PowerShell cmdlet,例如“ConvertTo-SecureString”。
故障 排除
错误:内部服务器错误
这些问题本质上大多是暂时性的。 原因有多种:
- 要部署的 Azure 服务之一是在尝试部署到的区域进行维护。 请留意
https://status.azure.com/
,检查 Azure 服务的停机时间。 - Azure Pipelines 服务本身正在进行维护。 请留意
https://status.dev.azure.com/
停机时间。
但是,我们看到了一些实例,其中 ARM 模板中存在错误,例如尝试部署的 Azure 服务不支持为资源选择的区域。
错误:超时
超时问题可能来自两个位置:
- Azure Pipelines 代理
- 门户部署
可以通过检查将位于任务日志中的门户部署链接来确定超时是否来自门户。 如果没有链接,这可能是由于 Azure Pipelines 代理造成的。 如果有链接,请按照链接查看门户部署中是否发生了超时。
错误:重写参数时要启用的 CORS 规则
如果在管道中重写参数时从 BLOB 引用模板文件,可能会看到以下警告消息:
Warning: Failed to download the file from template path.
此功能要求在源中启用 CORS 规则。 如果模板位于 Azure 存储 blob 中,请参阅 跨域资源共享支持 启用 CORS。
除了启用 CORS,请确保模板链接中指定的 SAS 令牌为“srt-sco”。 需要此令牌才能下载文件并继续。
Azure Pipelines 代理
如果问题来自 Azure Pipelines 代理,可以通过将 timeoutInMinutes 设置为 YAML 中的密钥设置为 0 来增加超时。 有关详细信息,请参阅 在管道中指定作业。
门户部署
请查看此文档,了解如何确定错误是否来自 Azure 门户:使用 Azure 资源管理器查看部署历史记录。
对于门户部署,请尝试将 ARM 模板中的“timeoutInMinutes”设置为“0”。 如果未指定,则假定值为 60 分钟。 0 确保部署能够成功运行。
这可能是由于系统中的暂时性问题而发生的。 请留意 https://status.dev.azure.com/
,检查 Azure Pipelines 服务中是否存在停机。
错误:Azure 资源管理器 (ARM) 模板验证失败
此问题主要是因为 ARM 模板中的参数无效,例如不支持的 SKU 或区域。 如果验证失败,请检查错误消息。 它应指向无效的资源和参数。
此问题也可能因为多行字符串而发生。 目前,Azure 资源组部署任务不支持 ARM 模板或参数 JSON 文件中的多行字符串。
此外,请参阅本文,了解 ARM 模板的结构和语法:了解 ARM 模板的结构和语法。