你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
重要
自定义资源提供程序目前以公共预览版提供。 此预览版在提供时没有附带服务级别协议,不建议将其用于生产工作负荷。 某些功能可能不受支持或者受限。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款。
2026 年,Azure 资源管理器将弃用自定义资源提供程序 (CuRP) 服务。
我们将在 2026 年 10 月 31 日停用该功能。 作为此次弃用过程的一部分,我们将于 2026 年 2 月 24 日进行一次 scream 测试。 2026年7月31日,将阻止自定义资源和资源提供程序的创建、更新、补丁及操作。 只能读取和删除您自己的自定义资源和资源提供者。
我们知道,这种弃用可能会给你和你的团队带来不便。 下面是一些可用于支持现有工作流的潜在 CuRP 替代项。
如果您的 CuRP 场景是这样的:
- 仅涉及触发终结点而无需持久资源管理,请考虑 部署脚本。
- 若仅涉及触发终结点且无需进行持久资源管理,并且使用 Bicep,请考虑使用 Bicep 扩展。
- 如果解决方案涉及触发多个不同的终结点或服务,请考虑使用 Azure Functions。
如有任何问题,请要求Microsoft客户经理通过电子邮件 curpdeprecation@microsoft.com 发送姓名、公司名称、电子邮件联系人和订阅 ID。
Azure 自定义资源提供程序是 Azure 的扩展性平台。 它允许定义可用于丰富默认 Azure 体验的自定义 API。 本文档介绍:
- 如何生成和部署 Azure 自定义资源提供程序。
- 如何使用 Azure 自定义资源提供程序扩展现有工作流。
- 在何处查找入门指南和代码示例。
自定义资源提供程序可以执行哪些操作
下面是可以使用 Azure 自定义资源提供程序实现的一些示例:
- 扩展 Azure 资源管理器 REST API 以包括内部和外部服务。
- 在现有 Azure 工作流的基础上启用自定义方案。
- 自定义 Azure 资源管理器模板控件和效果。
什么是自定义资源提供程序
Azure 自定义资源提供程序是通过在 Azure 与终结点之间创建协定进行的。 此合同通过新的资源类型 Microsoft.CustomProviders/resourceProviders 定义新的资源和动作的列表。 然后,自定义资源提供程序将在 Azure 中公开这些新 API。 Azure 自定义资源提供程序由三个部分组成:自定义资源提供程序、 终结点和自定义资源。
如何生成自定义资源提供程序
自定义资源提供程序是 Azure 与终结点之间的协定列表。 这些协定描述 Azure 应如何与其终结点交互。 资源提供程序的行为类似于代理,负责在其指定的终结点之间转发请求和响应。 资源提供程序可以指定两种类型的协定:资源类型 和 操作。 这些是通过终结点定义启用的。 终结点定义由三个字段组成: 名称、 routingType 和 终结点。
示例终结点:
{
"name": "{endpointDefinitionName}",
"routingType": "Proxy",
"endpoint": "https://{endpointURL}/"
}
| 资产 | 必选 | Description |
|---|---|---|
| 姓名 | 是的 | 终结点定义的名称。 Azure 将通过其 API 在“/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/”下公开此名称 resourceProviders/{resourceProviderName}/{endpointDefinitionName}' |
| routingType | 否 | 确定与终结点相关的合同类型。 如果未指定,则默认为“代理”。 |
| 终结点 | 是的 | 要将请求路由到的端点。 此项将处理响应以及请求的任何附带作用。 |
生成自定义资源
ResourceTypes 描述添加到 Azure 的新自定义资源。 这些资源公开基本的 RESTful CRUD 方法。 详细了解如何创建自定义资源
包含 resourceTypes 的自定义资源提供程序示例:
{
"properties": {
"resourceTypes": [
{
"name": "myCustomResources",
"routingType": "Proxy",
"endpoint": "https://{endpointURL}/"
}
]
},
"location": "eastus"
}
Azure 中为上述示例添加的 API:
| HttpMethod | 示例 URI | Description |
|---|---|---|
| PUT | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/ providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/ myCustomResources/{customResourceName}?api-version=2018-09-01-preview |
用于创建新资源的 Azure REST API 调用。 |
| DELETE | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/ providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/ myCustomResources/{customResourceName}?api-version=2018-09-01-preview |
用于删除现有资源的 Azure REST API 调用。 |
| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/ providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/ myCustomResources/{customResourceName}?api-version=2018-09-01-preview |
用于检索现有资源的 Azure REST API 调用。 |
| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/ providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/ myCustomResources?api-version=2018-09-01-preview |
用于检索现有资源列表的 Azure REST API 调用。 |
构建自定义动作
动作 描述新增到 Azure 的新动作。 这些操作可以在资源提供程序的基础之上公开,也可以嵌套在 resourceType下。 详细了解如何创建自定义操作
带有 操作 的自定义资源提供程序示例:
{
"properties": {
"actions": [
{
"name": "myCustomAction",
"routingType": "Proxy",
"endpoint": "https://{endpointURL}/"
}
]
},
"location": "eastus"
}
Azure 中为上述示例添加的 API:
| HttpMethod | 示例 URI | Description |
|---|---|---|
| POST | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/ providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/ myCustomAction?api-version=2018-09-01-preview |
用于激活操作的 Azure REST API 调用。 |
寻找帮助
如果对 Azure 自定义资源提供程序开发有疑问,请尝试在 Stack Overflow 上提问。 类似的问题可能已经提出并回答过,因此请在发布之前先检查。 添加标记 azure-custom-providers 以获取快速响应!
后续步骤
本文中,您学习了关于自定义资源提供程序的内容。 转到下一篇文章,创建自定义资源提供程序。