适用于:所有 API 管理层级
利用 API 管理软删除,你可以恢复和还原最近删除的 API 管理实例。 此功能可避免意外删除 API 管理实例。
支持接口
可以通过 REST API 版本 2020-06-01-preview 或更高版本、 Azure CLI 或用于 .NET、Go 或 Python 的 Azure SDK 在软删除实例上恢复和执行其他作。
提示
- 有关调用 Azure REST API 的提示和工具的详细信息,请参阅 Azure REST API 参考。 有关特定于 API 管理的信息,请参阅 API 管理 REST。
- 若要使用 Azure CLI,请参阅 安装 Azure CLI (如果尚未安装)。
| 操作 | 说明 | API 管理命名空间 | 最低 API 版本 |
|---|---|---|---|
| 创建或更新 | 创建或更新 API 管理服务。 | API 管理服务 | 任意 |
属性设置为 true 的restore |
恢复(取消删除)API 管理服务(如果之前实施的是软删除)。 如果 restore 指定并设置为 true,则忽略所有其他属性。 |
API 管理服务 | 2020-06-01-预览版 |
| 删除 | 删除现有的 API 管理服务。 | API 管理服务 | 2020-06-01-预览版 |
| 按名称获取 | 按名称获取软删除的 API 管理服务。 | 已删除的服务 | 2020-06-01-预览版 |
| 按订阅列出 | 列出对于给定的订阅可以取消删除的所有已软删除的服务。 | 已删除的服务 | 2020-06-01-预览版 |
| 清除 | 清除 API 管理服务(将其永久删除,没有取消删除的选项)。 | 已删除的服务 | 2020-06-01-预览版 |
软删除行为
可以使用任何 API 版本来创建 API 管理实例。 使用 Azure 门户、Azure REST API 或其他具有 API 版本 2020-06-01-preview 或更高版本的 Azure 工具删除 API 管理实例时,会自动软删除该实例。
软删除 API 管理实例时,服务将进入已删除状态,并且无法正常执行 API 管理作。
在软删除状态下:
如果在 48 小时内未恢复或清除 API 管理实例,则会永久删除该实例。
列出已删除的 API 管理实例
您可以使用“已删除服务按名称获取”操作或“按订阅列表”操作来验证被软删除的 API 管理实例是否可以还原。
按名称获取已软删除的实例
使用 API 管理按名称获取操作,将 {subscriptionId}、{location} 和 {serviceName} 替换为你的 Azure 订阅、资源位置名称和 API 管理实例名称:
GET https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/providers/Microsoft.ApiManagement/locations/{location}/deletedservices/{serviceName}?api-version=2024-05-01
如果 API 管理实例可用于取消删除,Azure 将返回显示其 deletionDate 和 scheduledPurgeDate的实例的记录。 例如,REST API 返回如下所示的输出:
{
"id": "subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/providers/Microsoft.ApiManagement/locations/chinanorth/deletedservices/apimtest",
"name": "apimtest",
"type": "Microsoft.ApiManagement/deletedservices",
"location": "China North",
"properties": {
"serviceId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/apimtestgroup/providers/Microsoft.ApiManagement/service/apimtest",
"scheduledPurgeDate": "2024-11-26T19:40:26.3596893Z",
"deletionDate": "2024-11-24T19:40:50.1013572Z"
}
}
列出某个给定订阅的所有软删除实例
使用 API 管理按订阅列出操作,将 {subscriptionId} 替换为你的订阅 ID:
GET https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/providers/Microsoft.ApiManagement/deletedservices?api-version=2024-05-01
此命令返回在给定订阅下可以恢复的所有软删除服务的列表。 它显示每个服务的 deletionDate 和 scheduledPurgeDate。
恢复软删除的实例
使用 API 管理 创建或更新操作,将 {subscriptionId}、{resourceGroup} 和 {apimServiceName} 替换为你的 Azure 订阅、资源组名称和 API 管理名称:
PUT
https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.ApiManagement/service/{apimServiceName}?api-version=2024-05-01
在请求正文中,将 restore 属性设置为 true. (指定此标志并设置为 true 时,将忽略所有其他属性。例如:
{
"properties": {
"publisherEmail": "help@contoso.com",
"publisherName": "Contoso",
"restore": true
},
"sku": {
"name": "Developer",
"capacity": 1
},
"location": "China North"
}
清除软删除的实例
注意
若要清除软删除的实例,除了对 API 管理实例的参与者访问权限外,还必须在订阅范围内拥有以下基于角色的访问控制(RBAC)权限:Microsoft.ApiManagement/locations/deletedservices/deletedservices/delete,Microsoft.ApiManagement/deletedservices/read。
使用 API 管理清除操作,将 {subscriptionId}、{location} 和 {serviceName} 替换为你的 Azure 订阅、资源位置和 API 管理名称。
DELETE https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/providers/Microsoft.ApiManagement/locations/{location}/deletedservices/{serviceName}?api-version=2024-05-01
此命令从 Azure 永久删除 API 管理实例。
删除后重复使用 API 管理实例名称
可以在新部署中重复使用 API 管理实例的名称:
从 Azure 中被永久删除(彻底清除)实例后。
与原始实例位于同一订阅中。
不能在新部署中重复使用 API 管理实例的名称:
软删除实例后。
在与用于部署原始实例的订阅不同的其他订阅中,即使原始实例已从 Azure 中永久删除(清除)后,情况依然如此。 此限制适用于新订阅位于相同或不同的 Microsoft Entra 租户中。 此限制在删除后的几天或更长时间内有效,具体取决于订阅类型。
存在此限制,是因为 Azure 在一段预定时间内将服务主机名保留给客户的租户,以防止由于悬空域名系统 (DNS) 条目导致的子域接管威胁。 有关详细信息,请参阅阻止无关联的 DNS 项并避免子域接管。 若要查看 Microsoft Entra 租户中订阅的所有无关联 DNS 项,请参阅识别无关联的 DNS 项。
相关内容
了解长期 API 管理备份和恢复选项: