你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Deployments - What If

返回部署将在资源组范围内执行的更改。

POST https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Resources/deployments/{deploymentName}/whatIf?api-version=2025-04-01

URI 参数

名称 必需 类型 说明
deploymentName
path True

string

minLength: 1
maxLength: 64
pattern: ^[-\w\._\(\)]+$

部署的名称。

resourceGroupName
path True

string

minLength: 1
maxLength: 90
pattern: ^[-\w\._\(\)]+$

模板将部署到的资源组的名称。 此名称不区分大小写。

subscriptionId
path True

string

Microsoft Azure 订阅 ID。

api-version
query True

string

用于此操作的 API 版本。

请求正文

名称 必需 类型 说明
properties True

DeploymentWhatIfProperties

部署属性。

location

string

用于存储部署数据的位置。

响应

名称 类型 说明
200 OK

WhatIfOperationResult

确定 - 返回 What-If作状态

202 Accepted

已接受 - 返回 Location 标头中的 URL 以查询长时间运行的作状态。

标头

  • Location: string
  • Retry-After: string
Other Status Codes

CloudError

描述作失败的原因的错误响应。

安全性

azure_auth

Azure Active Directory OAuth2 流

类型: oauth2
流向: implicit
授权 URL: https://login.microsoftonline.com/common/oauth2/authorize

作用域

名称 说明
user_impersonation 模拟用户帐户

示例

Predict template changes at resource group scope

示例请求

POST https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000001/resourcegroups/my-resource-group/providers/Microsoft.Resources/deployments/my-deployment/whatIf?api-version=2025-04-01

{
  "properties": {
    "templateLink": {
      "uri": "https://example.com/exampleTemplate.json"
    },
    "parameters": {},
    "mode": "Incremental"
  }
}

示例响应

{
  "status": "Succeeded",
  "properties": {
    "changes": [
      {
        "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000001/resourceGroups/my-resource-group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myExistingIdentity",
        "changeType": "Modify",
        "before": {
          "apiVersion": "2018-11-30",
          "id": "/subscriptions/00000000-0000-0000-0000-000000000001/resourceGroups/my-resource-group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myExistingIdentity",
          "type": "Microsoft.ManagedIdentity/userAssignedIdentities",
          "name": "myExistingIdentity",
          "location": "westus2"
        },
        "after": {
          "apiVersion": "2018-11-30",
          "id": "/subscriptions/00000000-0000-0000-0000-000000000001/resourceGroups/my-resource-group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myExistingIdentity",
          "type": "Microsoft.ManagedIdentity/userAssignedIdentities",
          "name": "myExistingIdentity",
          "location": "westus2",
          "tags": {
            "myNewTag": "my tag value"
          }
        },
        "delta": [
          {
            "path": "tags.myNewTag",
            "propertyChangeType": "Create",
            "after": "my tag value"
          }
        ]
      },
      {
        "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000001/resourceGroups/my-resource-group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myNewIdentity",
        "changeType": "Create",
        "after": {
          "apiVersion": "2018-11-30",
          "id": "/subscriptions/00000000-0000-0000-0000-000000000001/resourceGroups/my-resource-group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myNewIdentity",
          "type": "Microsoft.ManagedIdentity/userAssignedIdentities",
          "name": "myNewIdentity",
          "location": "eastus",
          "tags": {
            "myOtherNewTag": "another new tag value"
          }
        }
      }
    ]
  }
}
Location: /subscriptions/00000000-0000-0000-0000-000000000000/ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

定义

名称 说明
ChangeType

执行部署时对资源进行的更改类型。

CloudError

资源管理请求的错误响应。

DebugSetting

调试设置。

DeploymentDiagnosticsDefinition
DeploymentExtensionConfigItem
DeploymentExtensionDefinition
DeploymentExternalInput

部署外部输入以进行参数化。

DeploymentExternalInputDefinition

部署用于参数化的外部输入定义。

DeploymentMode

用于部署资源的模式。 此值可以是增量值,也可以是“完成”。 在增量模式下,部署资源而不删除模板中不包含的现有资源。 在“完成”模式下,将部署资源,并删除模板中不包含的资源组中的现有资源。 使用“完成”模式时请注意,因为可能会无意中删除资源。

DeploymentParameter

模板的部署参数。

DeploymentWhatIf

部署 What-if作参数。

DeploymentWhatIfProperties

部署 What-if 属性。

DeploymentWhatIfSettings

部署 What-If作设置。

ErrorAdditionalInfo

资源管理错误附加信息。

ErrorResponse

错误响应

ExpressionEvaluationOptions

指定模板表达式是在父模板或嵌套模板的范围内计算的。

ExpressionEvaluationOptionsScopeType

用于计算嵌套模板中的参数、变量和函数的范围。

ExtensionConfigPropertyType
KeyVaultParameterReference

Azure Key Vault 参数引用。

KeyVaultReference

Azure Key Vault 参考。

Level

表示附加响应级别。

OnErrorDeployment

针对错误行为进行部署。

OnErrorDeploymentType

错误行为类型的部署。 可能的值为 LastSuccessful 和 SpecificDeployment。

ParametersLink

表示对部署参数的引用的实体。

PropertyChangeType

属性更改的类型。

TemplateLink

表示对模板的引用的实体。

ValidationLevel

对部署执行的验证级别。

WhatIfChange

有关 What-If作预测的单个资源更改的信息。

WhatIfOperationResult

What-If作的结果。 包含预测的更改列表和 URL 链接,用于获取下一组结果。

WhatIfPropertyChange

对资源属性的预测更改。

WhatIfResultFormat

What-If 结果的格式

ChangeType

执行部署时对资源进行的更改类型。

说明
Create

资源不存在于当前状态,但处于所需状态。 执行部署时,将创建资源。

Delete

资源存在于当前状态中,并且缺少所需状态。 执行部署时,将删除资源。

Ignore

资源存在于当前状态中,并且缺少所需状态。 执行部署时,不会部署或修改资源。

Deploy

资源存在于当前状态和所需状态中,在执行部署时将重新部署。 资源的属性可能会更改,也可能不会更改。

NoChange

资源存在于当前状态和所需状态中,在执行部署时将重新部署。 资源的属性不会更改。

Modify

资源存在于当前状态和所需状态中,在执行部署时将重新部署。 资源的属性将发生更改。

Unsupported

What-If 不支持资源。

CloudError

资源管理请求的错误响应。

名称 类型 说明
error

ErrorResponse

错误响应
所有 Azure 资源管理器 API 的常见错误响应,以返回失败操作的错误详细信息。 (这也遵循 OData 错误响应格式。)

DebugSetting

调试设置。

名称 类型 说明
detailLevel

string

指定要记录以供调试的信息的类型。 允许的值不为 none、requestContent、responseContent,或两者均用逗号分隔的 requestContent 和 responseContent。 默认值为 none。 设置此值时,请仔细考虑在部署期间传入的信息类型。 通过记录有关请求或响应的信息,可能会公开通过部署作检索的敏感数据。

DeploymentDiagnosticsDefinition

名称 类型 说明
additionalInfo

ErrorAdditionalInfo[]

错误附加信息。

code

string

错误代码。

level

Level

表示附加响应级别。

message

string

错误消息。

target

string

错误目标。

DeploymentExtensionConfigItem

名称 类型 说明
keyVaultReference

KeyVaultParameterReference

用于检索扩展配置属性的机密值的 Azure Key Vault 引用。

type

ExtensionConfigPropertyType

扩展配置属性的值类型。

value

扩展配置属性的值。

DeploymentExtensionDefinition

名称 类型 说明
alias

string

部署模板中定义的扩展的别名。

config

<string,  DeploymentExtensionConfigItem>

扩展配置。

configId

string

扩展配置 ID。 它唯一标识扩展中的部署控制平面。

name

string

扩展名称。

version

string

扩展版本。

DeploymentExternalInput

部署外部输入以进行参数化。

名称 类型 说明
value

外部输入值。

DeploymentExternalInputDefinition

部署用于参数化的外部输入定义。

名称 类型 说明
config

外部输入的配置。

kind

string

外部输入的类型。

DeploymentMode

用于部署资源的模式。 此值可以是增量值,也可以是“完成”。 在增量模式下,部署资源而不删除模板中不包含的现有资源。 在“完成”模式下,将部署资源,并删除模板中不包含的资源组中的现有资源。 使用“完成”模式时请注意,因为可能会无意中删除资源。

说明
Incremental
Complete

DeploymentParameter

模板的部署参数。

名称 类型 说明
expression

string

参数的 input expression。

reference

KeyVaultParameterReference

Azure Key Vault 参数引用。

value

参数的输入值。

DeploymentWhatIf

部署 What-if作参数。

名称 类型 说明
location

string

用于存储部署数据的位置。

properties

DeploymentWhatIfProperties

部署属性。

DeploymentWhatIfProperties

部署 What-if 属性。

名称 类型 说明
debugSetting

DebugSetting

部署的调试设置。

expressionEvaluationOptions

ExpressionEvaluationOptions

指定模板表达式是在父模板或嵌套模板的范围内计算的。 仅适用于嵌套模板。 如果未指定,则默认值为外部值。

extensionConfigs

object

用于部署扩展的配置。 此对象的键是部署模板中定义的部署扩展别名。

externalInputDefinitions

<string,  DeploymentExternalInputDefinition>

外部输入定义,由外部工具用于定义预期的外部输入值。

externalInputs

<string,  DeploymentExternalInput>

外部输入值,由外部工具用于参数评估。

mode

DeploymentMode

用于部署资源的模式。 此值可以是增量值,也可以是“完成”。 在增量模式下,部署资源而不删除模板中不包含的现有资源。 在“完成”模式下,将部署资源,并删除模板中不包含的资源组中的现有资源。 使用“完成”模式时请注意,因为可能会无意中删除资源。

onErrorDeployment

OnErrorDeployment

错误行为的部署。

parameters

<string,  DeploymentParameter>

定义模板部署参数的名称和值对。 如果要直接在请求中提供参数值,而不是链接到现有参数文件,请使用此元素。 使用 parametersLink 属性或 parameters 属性,但不能同时使用两者。 它可以是 JObject 或格式良好的 JSON 字符串。

parametersLink

ParametersLink

参数文件的 URI。 使用此元素链接到现有参数文件。 使用 parametersLink 属性或 parameters 属性,但不能同时使用两者。

template

object

模板内容。 如果要直接在请求中传递模板语法,而不是链接到现有模板,请使用此元素。 它可以是 JObject 或格式正确的 JSON 字符串。 使用 templateLink 属性或模板属性,但不能同时使用这两者。

templateLink

TemplateLink

模板的 URI。 使用 templateLink 属性或模板属性,但不能同时使用这两者。

validationLevel

ValidationLevel

部署的验证级别

whatIfSettings

DeploymentWhatIfSettings

可选 What-If作设置。

DeploymentWhatIfSettings

部署 What-If作设置。

名称 类型 说明
resultFormat

WhatIfResultFormat

What-If 结果的格式

ErrorAdditionalInfo

资源管理错误附加信息。

名称 类型 说明
info

object

其他信息。

type

string

其他信息类型。

ErrorResponse

错误响应

名称 类型 说明
additionalInfo

ErrorAdditionalInfo[]

错误附加信息。

code

string

错误代码。

details

ErrorResponse[]

错误详细信息。

message

string

错误消息。

target

string

错误目标。

ExpressionEvaluationOptions

指定模板表达式是在父模板或嵌套模板的范围内计算的。

名称 类型 说明
scope

ExpressionEvaluationOptionsScopeType

用于计算嵌套模板中的参数、变量和函数的范围。

ExpressionEvaluationOptionsScopeType

用于计算嵌套模板中的参数、变量和函数的范围。

说明
NotSpecified
Outer
Inner

ExtensionConfigPropertyType

说明
String

表示字符串值的属性类型。

Int

表示整数值的属性类型。

Bool

Property 类型表示布尔值。

Array

属性类型。

Object

表示对象值的属性类型。

SecureString

表示安全字符串值的属性类型。

SecureObject

表示安全对象值的属性类型。

KeyVaultParameterReference

Azure Key Vault 参数引用。

名称 类型 说明
keyVault

KeyVaultReference

Azure Key Vault 参考。

secretName

string

Azure Key Vault 机密名称。

secretVersion

string

Azure Key Vault 机密版本。

KeyVaultReference

Azure Key Vault 参考。

名称 类型 说明
id

string

Azure Key Vault 资源 ID。

Level

表示附加响应级别。

说明
Warning
Info
Error

OnErrorDeployment

针对错误行为进行部署。

名称 类型 说明
deploymentName

string

要用于错误案例的部署。

type

OnErrorDeploymentType

错误行为类型的部署。 可能的值为 LastSuccessful 和 SpecificDeployment。

OnErrorDeploymentType

错误行为类型的部署。 可能的值为 LastSuccessful 和 SpecificDeployment。

说明
LastSuccessful
SpecificDeployment

表示对部署参数的引用的实体。

名称 类型 说明
contentVersion

string

如果包含,则必须匹配模板中的 ContentVersion。

uri

string

参数文件的 URI。

PropertyChangeType

属性更改的类型。

说明
Create

该属性不存在于当前状态,但处于所需状态。 执行部署时将创建该属性。

Delete

该属性存在于当前状态中,并且缺少所需状态。 执行部署时,将删除该部署。

Modify

该属性同时存在于当前状态和所需状态中,并且不同。 执行部署时,属性的值将更改。

Array

该属性是一个数组,包含嵌套更改。

NoEffect

不会设置或更新该属性。

表示对模板的引用的实体。

名称 类型 说明
contentVersion

string

如果包含,则必须匹配模板中的 ContentVersion。

id

string

模板规格的资源 ID。请使用 ID 或 uri 属性,但不能同时使用这两个属性。

queryString

string

要与 templateLink URI 一起使用的查询字符串(例如 SAS 令牌)。

relativePath

string

relativePath 属性可用于在相对于父级的位置部署链接模板。 如果父模板与 TemplateSpec 链接,则会引用 TemplateSpec 中的项目。 如果父级已链接到 URI,则子部署将是父 URI 和 relativePath URI 的组合

uri

string

要部署的模板的 URI。 使用 URI 或 ID 属性,但不能同时使用这两个属性。

ValidationLevel

对部署执行的验证级别。

说明
Template

对模板进行静态分析。

Provider

对模板进行静态分析,并将资源声明发送到资源提供程序进行语义验证。 验证调用方是否对每个资源具有 RBAC 写入权限。

ProviderNoRbac

对模板进行静态分析,并将资源声明发送到资源提供程序进行语义验证。 跳过验证调用方是否对每个资源具有 RBAC 写入权限。

WhatIfChange

有关 What-If作预测的单个资源更改的信息。

名称 类型 说明
after

object

执行部署后资源的预测快照。

before

object

执行部署之前资源的快照。

changeType

ChangeType

执行部署时对资源进行的更改类型。

delta

WhatIfPropertyChange[]

对资源属性的预测更改。

deploymentId

string

负责此更改的部署的资源 ID。

extension

DeploymentExtensionDefinition

部署资源时使用的扩展。

identifiers

object

唯一标识 Bicep 可扩展资源的属性子集,因为它缺少像 Azure 资源那样的资源 ID。

resourceId

string

资源标识符

symbolicName

string

负责此更改的资源的符号名称。

unsupportedReason

string

关于 What-If 不支持资源的原因的说明。

WhatIfOperationResult

What-If作的结果。 包含预测的更改列表和 URL 链接,用于获取下一组结果。

名称 类型 说明
error

ErrorResponse

错误响应
What-If作失败时出错。

properties.changes

WhatIfChange[]

What-If作预测的资源更改列表。

properties.diagnostics

DeploymentDiagnosticsDefinition[]

What-If作检测到的资源诊断列表。

properties.potentialChanges

WhatIfChange[]

What-If作预测的资源更改列表。

status

string

What-If作的状态。

WhatIfPropertyChange

对资源属性的预测更改。

名称 类型 说明
after

object

执行部署后属性的值。

before

object

执行部署前的属性的值。

children

WhatIfPropertyChange[]

嵌套属性更改。

path

string

属性的路径。

propertyChangeType

PropertyChangeType

属性更改的类型。

WhatIfResultFormat

What-If 结果的格式

说明
ResourceIdOnly
FullResourcePayloads