了解 Azure 资源
所有 Azure 资源都是通过特定类型部署的。 此类型标识资源的类型。 资源 ID 是 Azure 标识资源的特定实例的方式。 请务必了解资源类型和资源 ID 的结构化方式,因为它们为编写 Bicep 模板提供了重要信息。
资源提供程序
Azure 资源管理器的设计目的是,可以通过资源管理器 API 和 ARM 模板管理更多不同的资源提供程序。 资源提供程序是资源类型的逻辑分组,通常与一个或少量 Azure 服务相关。 资源提供程序的示例包括:
Microsoft.Compute
,用于虚拟机。Microsoft.Network
,用于虚拟网络、网络安全组和路由表等网络资源。Microsoft.Cache
,用于 Azure Cache for Redis。Microsoft.Sql
,用于 Azure SQL。Microsoft.Web
,用于 Azure 应用服务和 Azure Functions。Microsoft.DocumentDB
,用于 Azure Cosmos DB。
注意
资源提供程序名称和资源类型名称有时与它们所针对的 Azure 服务的名称不匹配,或者可能是旧的产品或资源名称。 例如,Log Analytics 工作区的资源提供程序为 Microsoft.OperationalInsights
。
每个资源类型的 ARM 模板语法的文档都按照资源提供程序进行组织。
必须先为订阅注册资源提供程序,然后才能使用它们公开的资源类型。 注册通常是一个一次性的过程。 提交 Bicep 部署时,资源管理器会自动注册文件中使用的资源提供程序。 还可以通过使用 Azure 门户、Azure CLI 或 Azure PowerShell 注册资源提供程序。
资源类型
资源提供程序公开多种不同类型的资源。 每个资源类型都有自己的一组属性和行为,用于定义资源及其可以执行的操作。 例如,在 Microsoft.Web
资源提供程序中,有几个资源类型,包括:
sites
:定义应用服务应用程序或 Azure Functions 应用程序。 属性包括应用程序使用的环境变量,以及访问应用程序的受支持的协议(HTTP 和 HTTPS)。serverFarms
:定义应用服务计划,即运行应用程序的基础结构。 属性包括服务器的大小和 SKU,以及要部署的计划的实例数。
在 Bicep 中定义资源时,必须指定其资源类型和希望 Bicep 用于资源的资源提供程序的 API 版本。 此信息可帮助 Bicep 工具和资源管理器了解资源定义应提供哪些属性。
提示
最好对每个资源使用最新的 API 版本。 Azure 服务中的新增功能有时仅在更新的 API 版本中可用。
将资源提供程序和类型名称组合在一起以生成完全限定的资源类型名称。 完全限定的类型名称由资源提供程序名称、斜杠 (/
) 和资源类型组成。 例如,存储帐户的完全限定类型名称为 Microsoft.Storage/storageAccounts
。 在此实例中,其资源提供程序名称为 Microsoft.Storage
,资源类型为 storageAccounts
。
资源 ID
每个 Azure 资源都具有唯一资源 ID。 此 ID 包含的信息有助于消除资源与任何其他同类型资源,甚至与可能共享同一名称的不同资源之间的歧义。 存储帐户的资源 ID 如下所示:
/subscriptions/A123b4567c-1234-1a2b-2b1a-1234abc12345/resourceGroups/ToyDevelopment/providers/Microsoft.Storage/storageAccounts/secrettoys
让我们看看相同信息的可视化表示形式:
你可以看到资源 ID 交叉提供有关资源类型和你部署的特定资源的信息。 让我们将此示例资源 ID 拆分为各个组件:
subscriptions/A123b4567c-1234-1a2b-2b1a-1234abc12345
指示此资源位于 ID 如下的 Azure 订阅中:A123b4567c-1234-1a2b-2b1a-1234abc12345
。resourceGroups/ToyDevelopment
指示资源位于名为ToyDevelopment
的资源组中。providers/Microsoft.Storage
指示资源正在使用Microsoft.Storage
资源提供程序中的类型。storageAccounts
是资源类型。secrettoys
是存储帐户的名称。
提示
可以使用符号名称和 id
属性访问 Bicep 中任何资源的 ID。 例如,如果使用符号名 toyDesignDocumentsStorageAccount
定义存储帐户,则可以使用表达式 toyDesignDocumentsStorageAccount.id
来访问其资源 ID。
现在,你已了解资源类型和资源 ID 的基本信息,让我们来看看子资源。