Deployments - What If At Subscription Scope
返回部署将在订阅范围内执行的更改。
POST https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Resources/deployments/{deploymentName}/whatIf?api-version=2025-04-01URI 参数
| 名称 | 在 | 必需 | 类型 | 说明 | 
|---|---|---|---|---|
| deployment | path | True | stringminLength: 1 maxLength: 64 pattern: ^[-\w\._\(\)]+$ | 部署的名称。 | 
| subscription | path | True | string | Microsoft Azure 订阅 ID。 | 
| api-version | query | True | string | 用于此操作的 API 版本。 | 
请求正文
| 名称 | 必需 | 类型 | 说明 | 
|---|---|---|---|
| properties | True | 部署属性。 | |
| location | string | 用于存储部署数据的位置。 | 
响应
| 名称 | 类型 | 说明 | 
|---|---|---|
| 200 OK | 确定 - 返回 What-If作状态 | |
| 202 Accepted | 已接受 - 返回 Location 标头中的 URL 以查询长时间运行的作状态。 标头 
 | |
| Other Status Codes | 描述作失败的原因的错误响应。 | 
安全性
azure_auth
Azure Active Directory OAuth2 流
					类型: 
					oauth2
					流向: 
					implicit
					授权 URL: 
					https://login.microsoftonline.com/common/oauth2/authorize
			
作用域
| 名称 | 说明 | 
|---|---|
| user_impersonation | 模拟用户帐户 | 
示例
Predict template changes at subscription scope
示例请求
POST https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000001/providers/Microsoft.Resources/deployments/my-deployment/whatIf?api-version=2025-04-01
{
  "location": "westus",
  "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"
          }
        }
      },
      {
        "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000001/resourceGroups/my-resource-group2",
        "changeType": "Create",
        "after": {
          "apiVersion": "2019-03-01",
          "id": "/subscriptions/00000000-0000-0000-0000-000000000001/resourceGroups/my-resource-group2",
          "type": "Microsoft.Resources/resourceGroups",
          "name": "my-resource-group2",
          "location": "{location3}"
        }
      }
    ]
  }
}Location: /subscriptions/00000000-0000-0000-0000-000000000000/ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ定义
ChangeType 
			
			执行部署时对资源进行的更改类型。
| 值 | 说明 | 
|---|---|
| Create | 资源不存在于当前状态,但处于所需状态。 执行部署时,将创建资源。 | 
| Delete | 资源存在于当前状态中,并且缺少所需状态。 执行部署时,将删除资源。 | 
| Ignore | 资源存在于当前状态中,并且缺少所需状态。 执行部署时,不会部署或修改资源。 | 
| Deploy | 资源存在于当前状态和所需状态中,在执行部署时将重新部署。 资源的属性可能会更改,也可能不会更改。 | 
| NoChange | 资源存在于当前状态和所需状态中,在执行部署时将重新部署。 资源的属性不会更改。 | 
| Modify | 资源存在于当前状态和所需状态中,在执行部署时将重新部署。 资源的属性将发生更改。 | 
| Unsupported | What-If 不支持资源。 | 
CloudError 
			
			资源管理请求的错误响应。
| 名称 | 类型 | 说明 | 
|---|---|---|
| error | 错误响应 | 
DebugSetting 
			
			调试设置。
| 名称 | 类型 | 说明 | 
|---|---|---|
| detailLevel | string | 指定要记录以供调试的信息的类型。 允许的值不为 none、requestContent、responseContent,或两者均用逗号分隔的 requestContent 和 responseContent。 默认值为 none。 设置此值时,请仔细考虑在部署期间传入的信息类型。 通过记录有关请求或响应的信息,可能会公开通过部署作检索的敏感数据。 | 
DeploymentDiagnosticsDefinition  
			
			
				| 名称 | 类型 | 说明 | 
|---|---|---|
| additionalInfo | 错误附加信息。 | |
| code | string | 错误代码。 | 
| level | 表示附加响应级别。 | |
| message | string | 错误消息。 | 
| target | string | 错误目标。 | 
DeploymentExtensionConfigItem   
			
			
				| 名称 | 类型 | 说明 | 
|---|---|---|
| keyVaultReference | 用于检索扩展配置属性的机密值的 Azure Key Vault 引用。 | |
| type | 扩展配置属性的值类型。 | |
| value | 扩展配置属性的值。 | 
DeploymentExtensionDefinition  
			
			
				| 名称 | 类型 | 说明 | 
|---|---|---|
| alias | string | 部署模板中定义的扩展的别名。 | 
| config | 
				
		<string, 
		Deployment | 扩展配置。 | 
| configId | string | 扩展配置 ID。 它唯一标识扩展中的部署控制平面。 | 
| name | string | 扩展名称。 | 
| version | string | 扩展版本。 | 
DeploymentExternalInput  
			
			部署外部输入以进行参数化。
| 名称 | 类型 | 说明 | 
|---|---|---|
| value | 外部输入值。 | 
DeploymentExternalInputDefinition   
			
			部署用于参数化的外部输入定义。
| 名称 | 类型 | 说明 | 
|---|---|---|
| config | 外部输入的配置。 | |
| kind | string | 外部输入的类型。 | 
DeploymentMode 
			
			用于部署资源的模式。 此值可以是增量值,也可以是“完成”。 在增量模式下,部署资源而不删除模板中不包含的现有资源。 在“完成”模式下,将部署资源,并删除模板中不包含的资源组中的现有资源。 使用“完成”模式时请注意,因为可能会无意中删除资源。
| 值 | 说明 | 
|---|---|
| Incremental | |
| Complete | 
DeploymentParameter 
			
			模板的部署参数。
| 名称 | 类型 | 说明 | 
|---|---|---|
| expression | string | 参数的 input expression。 | 
| reference | Azure Key Vault 参数引用。 | |
| value | 参数的输入值。 | 
DeploymentWhatIf  
			
			部署 What-if作参数。
| 名称 | 类型 | 说明 | 
|---|---|---|
| location | string | 用于存储部署数据的位置。 | 
| properties | 部署属性。 | 
DeploymentWhatIfProperties  
			
			部署 What-if 属性。
| 名称 | 类型 | 说明 | 
|---|---|---|
| debugSetting | 部署的调试设置。 | |
| expressionEvaluationOptions | 指定模板表达式是在父模板或嵌套模板的范围内计算的。 仅适用于嵌套模板。 如果未指定,则默认值为外部值。 | |
| extensionConfigs | object | 用于部署扩展的配置。 此对象的键是部署模板中定义的部署扩展别名。 | 
| externalInputDefinitions | 
				
		<string, 
		Deployment | 外部输入定义,由外部工具用于定义预期的外部输入值。 | 
| externalInputs | 
				
		<string, 
		Deployment | 外部输入值,由外部工具用于参数评估。 | 
| mode | 用于部署资源的模式。 此值可以是增量值,也可以是“完成”。 在增量模式下,部署资源而不删除模板中不包含的现有资源。 在“完成”模式下,将部署资源,并删除模板中不包含的资源组中的现有资源。 使用“完成”模式时请注意,因为可能会无意中删除资源。 | |
| onErrorDeployment | 错误行为的部署。 | |
| parameters | 
				
		<string, 
		Deployment | 定义模板部署参数的名称和值对。 如果要直接在请求中提供参数值,而不是链接到现有参数文件,请使用此元素。 使用 parametersLink 属性或 parameters 属性,但不能同时使用两者。 它可以是 JObject 或格式良好的 JSON 字符串。 | 
| parametersLink | 参数文件的 URI。 使用此元素链接到现有参数文件。 使用 parametersLink 属性或 parameters 属性,但不能同时使用两者。 | |
| template | object | 模板内容。 如果要直接在请求中传递模板语法,而不是链接到现有模板,请使用此元素。 它可以是 JObject 或格式正确的 JSON 字符串。 使用 templateLink 属性或模板属性,但不能同时使用这两者。 | 
| templateLink | 模板的 URI。 使用 templateLink 属性或模板属性,但不能同时使用这两者。 | |
| validationLevel | 部署的验证级别 | |
| whatIfSettings | 可选 What-If作设置。 | 
DeploymentWhatIfSettings  
			
			部署 What-If作设置。
| 名称 | 类型 | 说明 | 
|---|---|---|
| resultFormat | What-If 结果的格式 | 
ErrorAdditionalInfo  
			
			资源管理错误附加信息。
| 名称 | 类型 | 说明 | 
|---|---|---|
| info | object | 其他信息。 | 
| type | string | 其他信息类型。 | 
ErrorResponse 
			
			错误响应
| 名称 | 类型 | 说明 | 
|---|---|---|
| additionalInfo | 错误附加信息。 | |
| code | string | 错误代码。 | 
| details | 错误详细信息。 | |
| message | string | 错误消息。 | 
| target | string | 错误目标。 | 
ExpressionEvaluationOptions  
			
			指定模板表达式是在父模板或嵌套模板的范围内计算的。
| 名称 | 类型 | 说明 | 
|---|---|---|
| scope | 用于计算嵌套模板中的参数、变量和函数的范围。 | 
ExpressionEvaluationOptionsScopeType    
			
			用于计算嵌套模板中的参数、变量和函数的范围。
| 值 | 说明 | 
|---|---|
| NotSpecified | |
| Outer | |
| Inner | 
ExtensionConfigPropertyType   
			
			
				| 值 | 说明 | 
|---|---|
| String | 表示字符串值的属性类型。 | 
| Int | 表示整数值的属性类型。 | 
| Bool | Property 类型表示布尔值。 | 
| Array | 属性类型。 | 
| Object | 表示对象值的属性类型。 | 
| SecureString | 表示安全字符串值的属性类型。 | 
| SecureObject | 表示安全对象值的属性类型。 | 
KeyVaultParameterReference   
			
			Azure Key Vault 参数引用。
| 名称 | 类型 | 说明 | 
|---|---|---|
| keyVault | 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 | 错误行为类型的部署。 可能的值为 LastSuccessful 和 SpecificDeployment。 | 
OnErrorDeploymentType   
			
			错误行为类型的部署。 可能的值为 LastSuccessful 和 SpecificDeployment。
| 值 | 说明 | 
|---|---|
| LastSuccessful | |
| SpecificDeployment | 
ParametersLink 
			
			表示对部署参数的引用的实体。
| 名称 | 类型 | 说明 | 
|---|---|---|
| contentVersion | string | 如果包含,则必须匹配模板中的 ContentVersion。 | 
| uri | string | 参数文件的 URI。 | 
PropertyChangeType  
			
			属性更改的类型。
| 值 | 说明 | 
|---|---|
| Create | 该属性不存在于当前状态,但处于所需状态。 执行部署时将创建该属性。 | 
| Delete | 该属性存在于当前状态中,并且缺少所需状态。 执行部署时,将删除该部署。 | 
| Modify | 该属性同时存在于当前状态和所需状态中,并且不同。 执行部署时,属性的值将更改。 | 
| Array | 该属性是一个数组,包含嵌套更改。 | 
| NoEffect | 不会设置或更新该属性。 | 
TemplateLink 
			
			表示对模板的引用的实体。
| 名称 | 类型 | 说明 | 
|---|---|---|
| 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 | 执行部署时对资源进行的更改类型。 | |
| delta | 对资源属性的预测更改。 | |
| deploymentId | string | 负责此更改的部署的资源 ID。 | 
| extension | 部署资源时使用的扩展。 | |
| identifiers | object | 唯一标识 Bicep 可扩展资源的属性子集,因为它缺少像 Azure 资源那样的资源 ID。 | 
| resourceId | string | 资源标识符 | 
| symbolicName | string | 负责此更改的资源的符号名称。 | 
| unsupportedReason | string | 关于 What-If 不支持资源的原因的说明。 | 
WhatIfOperationResult  
			
			What-If作的结果。 包含预测的更改列表和 URL 链接,用于获取下一组结果。
| 名称 | 类型 | 说明 | 
|---|---|---|
| error | 错误响应 | |
| properties.changes | What-If作预测的资源更改列表。 | |
| properties.diagnostics | What-If作检测到的资源诊断列表。 | |
| properties.potentialChanges | What-If作预测的资源更改列表。 | |
| status | string | What-If作的状态。 | 
WhatIfPropertyChange  
			
			对资源属性的预测更改。
| 名称 | 类型 | 说明 | 
|---|---|---|
| after | object | 执行部署后属性的值。 | 
| before | object | 执行部署前的属性的值。 | 
| children | 嵌套属性更改。 | |
| path | string | 属性的路径。 | 
| propertyChangeType | 属性更改的类型。 | 
WhatIfResultFormat  
			
			What-If 结果的格式
| 值 | 说明 | 
|---|---|
| ResourceIdOnly | |
| FullResourcePayloads |