你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于:所有 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 (如果尚未安装)。
| 操作 | Description | API 管理命名空间 | 最低 API 版本 |
|---|---|---|---|
| 创建或更新 | 创建或更新 API 管理服务。 | API 管理服务 | 任意 |
创建或更新时将restore属性设置为true |
恢复(取消删除)API 管理服务(如果之前实施的是软删除)。 如果 restore 指定并设置为 true,则忽略所有其他属性。 |
API 管理服务 | 2020-06-01-preview |
| 删除 | 删除现有的 API 管理服务。 | API 管理服务 | 2020-06-01-preview |
| 按名称获取 | 按名称获取已软删除的 API 管理服务。 | 已删除的服务 | 2020-06-01-preview |
| 按订阅列出 | 列出对于给定的订阅可以取消删除的所有已软删除的服务。 | 已删除的服务 | 2020-06-01-preview |
| 清除 | 清除 API 管理服务(永久删除它,无需取消删除)。 | 已删除的服务 | 2020-06-01-preview |
软删除行为
可以使用任何 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.azure.com/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/southcentralus/deletedservices/apimtest",
"name": "apimtest",
"type": "Microsoft.ApiManagement/deletedservices",
"location": "South Central US",
"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.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.ApiManagement/deletedservices?api-version=2024-05-01
此命令返回在给定订阅下可以恢复的所有软删除服务的列表。 它显示每个服务的 deletionDate 和 scheduledPurgeDate。
恢复软删除的实例
使用 API 管理创建或更新操作,并将{subscriptionId}、{resourceGroup}和{apimServiceName}替换为您的 Azure 订阅、资源组名称和 API 管理名称:
PUT
https://management.azure.com/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": "South Central US"
}
清除已软删除的实例
注释
若要清除软删除的实例,除了对 API 管理实例的参与者访问权限外,你还必须在订阅范围内拥有以下基于角色的访问控制 (RBAC) 权限:Microsoft.ApiManagement/locations/deletedservices/delete、Microsoft.ApiManagement/deletedservices/read。
使用 API 管理清除操作,并用您的 Azure 订阅、资源位置和 API 管理名称替换{subscriptionId}、{location} 和 {serviceName}。
DELETE https://management.azure.com/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 管理备份和恢复选项: