Azure 资源提供程序和类型

部署资源时,经常需要检索有关资源提供程序和类型的信息。 例如,若要存储密钥和机密,请使用 Microsoft.KeyVault 资源提供程序。 此资源提供程序提供名为“保管库”的资源类型,用于创建密钥保管库。

资源类型的名称采用以下格式:{resource-provider}/{resource-type} 。 Key Vault 的资源类型为 Microsoft.KeyVault/vaults

在本文中,学习如何:

  • 查看 Azure 中的所有资源提供程序
  • 检查资源提供程序的注册状态
  • 注册资源提供程序
  • 查看资源提供程序的资源类型
  • 查看资源类型的有效位置
  • 查看资源类型的有效 API 版本

可以通过 Azure 门户、Azure PowerShell 或 Azure CLI 执行这些步骤。

有关将资源提供程序映射到 Azure 服务的列表,请参阅 Azure 服务的资源提供程序

注册资源提供程序

使用资源提供程序之前,必须为资源提供程序注册 Azure 订阅。 注册会配置你的订阅,使之与资源提供程序配合工作。 某些资源提供程序在默认情况下已注册。 有关默认情况下注册的资源提供程序的列表,请参阅 Azure 服务的资源提供程序

当你执行某些操作时,其他资源提供程序会自动注册。 部署 Azure 资源管理器模板时,会自动注册任何所需的资源提供程序。 当你通过门户创建资源时,系统通常会为你注册资源提供程序。 对于其他方案,你可能需要手动注册资源提供程序。

本文介绍了如何检查资源提供程序的注册状态,并根据需要将其注册。 你必须具备为资源提供程序执行 /register/action 操作的权限。 此权限包含在“参与者”和“所有者”角色中。

重要

仅在准备好使用资源提供程序时注册该程序。 注册步骤使你能够在订阅中保留最小特权。 恶意用户无法使用未注册的资源提供程序。

你的应用程序代码不应阻止为处于“正在注册”状态的资源提供程序创建资源的操作。 注册资源提供程序时,将针对每个受支持的区域单独执行该操作。 若要在某个区域中创建资源,只需在该区域中完成注册即可。 如果不阻止处于正在注册状态的资源提供程序,则你的应用程序可以以快得多的速度继续执行,不需要等待所有区域完成。

当订阅中仍有某个资源提供程序的资源类型时,不能注销该资源提供程序。

Azure 门户

注册资源提供程序

查看所有资源提供程序和订阅的注册状态:

  1. 登录 Azure 门户

  2. 在 Azure 门户菜单上,搜索“订阅”。 从可用选项中选择它。

    搜索订阅

  3. 选择要查看的订阅。

    选择订阅

  4. 在左侧菜单中的“设置”下,选择“资源提供程序”。

    选择资源提供程序

  5. 找到要注册的资源提供程序,然后选择“注册”。 若要在订阅中保留最小特权,请仅注册准备好使用的资源提供程序。

    注册资源提供程序

查看资源提供程序

查看特定资源提供程序的信息:

  1. 登录 Azure 门户

  2. 在 Azure 门户菜单中,选择“所有服务” 。

  3. 在“所有服务” 框中,输入“资源浏览器” ,然后选择“资源浏览器” 。

    选择“所有服务”

  4. 通过选择向右箭头来展开“提供程序” 。

    选择提供程序

  5. 展开要查看的资源提供程序和资源类型。

    选择资源类型

  6. 所有区域都支持 Resource Manager,但部署的资源可能无法在所有区域中受到支持。 此外,订阅可能存在一些限制,以防止用户使用某些支持该资源的区域。 资源浏览器显示资源类型的有效位置。

    显示位置

  7. API 版本对应于资源提供程序发布的 REST API 操作版本。 资源提供程序启用新功能时,会发布 REST API 的新版本。 资源浏览器显示资源类型的有效 API 版本。

    显示 API 版本

Azure PowerShell

若要查看 Azure 中的所有资源提供程序和订阅的注册状态,请使用:

Get-AzResourceProvider -ListAvailable | Select-Object ProviderNamespace, RegistrationState

这会返回类似于以下的结果:

ProviderNamespace                RegistrationState
-------------------------------- ------------------
Microsoft.ClassicCompute         Registered
Microsoft.ClassicNetwork         Registered
Microsoft.ClassicStorage         Registered
Microsoft.CognitiveServices      Registered
...

若要查看订阅的所有已注册资源提供程序,请使用:

 Get-AzResourceProvider -ListAvailable | Where-Object RegistrationState -eq "Registered" | Select-Object ProviderNamespace, RegistrationState | Sort-Object ProviderNamespace

若要在订阅中保留最小特权,请仅注册准备好使用的资源提供程序。 若要注册资源提供程序,请使用:

Register-AzResourceProvider -ProviderNamespace Microsoft.Batch

这会返回类似于以下的结果:

ProviderNamespace : Microsoft.Batch
RegistrationState : Registering
ResourceTypes     : {batchAccounts, operations, locations, locations/quotas}
Locations         : {China East, China North, China East 2, China North 2}

若要查看特定资源提供程序的信息,请使用:

Get-AzResourceProvider -ProviderNamespace Microsoft.Batch

这会返回类似于以下的结果:

{ProviderNamespace : Microsoft.Batch
RegistrationState : Registered
ResourceTypes     : {batchAccounts}
Locations         : {China East, China North, China East 2, China North 2}

...

若要查看资源提供程序的资源类型,请使用:

(Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes.ResourceTypeName

将返回:

batchAccounts
operations
locations
locations/quotas

API 版本对应于资源提供程序发布的 REST API 操作版本。 资源提供程序启用新功能时,会发布 REST API 的新版本。

若要获取资源类型可用的 API 版本,请使用:

((Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes | Where-Object ResourceTypeName -eq batchAccounts).ApiVersions

将返回:

2017-05-01
2017-01-01
2015-12-01
2015-09-01
2015-07-01

所有区域都支持 Resource Manager,但部署的资源可能无法在所有区域中受到支持。 此外,订阅可能存在一些限制,以防止用户使用某些支持该资源的区域。

若要获取某一资源类型的受支持位置,请使用。

((Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes | Where-Object ResourceTypeName -eq batchAccounts).Locations

将返回:

China East
China North
China East 2
China North 2

Azure CLI

若要查看 Azure 中的所有资源提供程序和订阅的注册状态,请使用:

az provider list --query "[].{Provider:namespace, Status:registrationState}" --out table

这会返回类似于以下的结果:

Provider                         Status
-------------------------------- ----------------
Microsoft.ClassicCompute         Registered
Microsoft.ClassicNetwork         Registered
Microsoft.ClassicStorage         Registered
Microsoft.CognitiveServices      Registered
...

若要查看订阅的所有已注册资源提供程序,请使用:

az provider list --query "sort_by([?registrationState=='Registered'].{Provider:namespace, Status:registrationState}, &Provider)" --out table

若要在订阅中保留最小特权,请仅注册准备好使用的资源提供程序。 若要注册资源提供程序,请使用:

az provider register --namespace Microsoft.Batch

这将返回“注册正在进行中”的信息。

若要查看特定资源提供程序的信息,请使用:

az provider show --namespace Microsoft.Batch

这会返回类似于以下的结果:

{
    "id": "/subscriptions/####-####/providers/Microsoft.Batch",
    "namespace": "Microsoft.Batch",
    "registrationsState": "Registering",
    "resourceTypes:" [
        ...
    ]
}

若要查看资源提供程序的资源类型,请使用:

az provider show --namespace Microsoft.Batch --query "resourceTypes[*].resourceType" --out table

将返回:

Result
---------------
batchAccounts
operations
locations
locations/quotas

API 版本对应于资源提供程序发布的 REST API 操作版本。 资源提供程序启用新功能时,会发布 REST API 的新版本。

若要获取资源类型可用的 API 版本,请使用:

az provider show --namespace Microsoft.Batch --query "resourceTypes[?resourceType=='batchAccounts'].apiVersions | [0]" --out table

将返回:

Result
---------------
2017-05-01
2017-01-01
2015-12-01
2015-09-01
2015-07-01

所有区域都支持 Resource Manager,但部署的资源可能无法在所有区域中受到支持。 此外,订阅可能存在一些限制,以防止用户使用某些支持该资源的区域。

若要获取某一资源类型的受支持位置,请使用。

az provider show --namespace Microsoft.Batch --query "resourceTypes[?resourceType=='batchAccounts'].locations | [0]" --out table

将返回:

Result
---------------
China East
China North
China East 2
China North 2
...

后续步骤