API 管理软删除(预览版)
适用于:所有 API 管理层级
利用 API 管理软删除,你可以恢复和还原最近删除的 API 管理实例。 此功能可避免意外删除 API 管理实例。
目前,该实例是由系统在保留期内实施软删除且可加以恢复还是被永久删除,要取决于你删除 API 管理实例的方式:
- 使用 Azure 门户或 REST API 版本
2020-06-01-preview
及更高版本删除 API 管理实例时,系统会实施软删除。 - 使用
2020-06-01-preview
之前的 REST API 版本删除 API 管理实例时,系统会将其永久删除。 - 在 Azure PowerShell 或 Azure CLI 中使用 API 管理命令删除 API 管理实例时,系统会将其软删除。
支持接口
针对软删除实例的恢复和其他操作可通过以下方式实现:使用 REST API2020-06-01-preview
及更高版本,或面向 .NET、Go 或 Python 的 Azure SDK。
提示
有关调用 Azure REST API 的提示和工具,请参阅 API Management REST 参考,有关特定于 API Management 的其他信息,请参阅 Azure Management REST。
操作 | 说明 | 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 或其他 Azure 工具使用 API 2020-06-01-preview
版本或更高版本,则在借助上述方式删除 API Management 实例时,系统会自动实施软删除。
在删除 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=2021-08-01
如果可以取消删除,Azure 将会返回该 APIM 管理实例的记录,显示其 deletionDate
和 scheduledPurgeDate
,例如:
{
"id": "subscriptions/########-####-####-####-############/providers/Microsoft.ApiManagement/locations/chinanorth/deletedservices/apimtest",
"name": "apimtest",
"type": "Microsoft.ApiManagement/deletedservices",
"location": "China North",
"properties": {
"serviceId": "/subscriptions/########-####-####-####-############/resourceGroups/apimtestgroup/providers/Microsoft.ApiManagement/service/apimtest",
"scheduledPurgeDate": "2021-11-26T19:40:26.3596893Z",
"deletionDate": "2021-11-24T19:40:50.1013572Z"
}
}
列出某个给定订阅的所有软删除实例
使用 API 管理按订阅列出操作,将 {subscriptionId}
替换为你的订阅 ID:
GET https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/providers/Microsoft.ApiManagement/deletedservices?api-version=2021-08-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=2021-08-01
。 。 。 并在请求正文中将 restore
属性设置为 true
。 (如果指定了此标志并将其设为 true,那么,所有其他属性都会被忽略。)例如:
{
"properties": {
"publisherEmail": "help@contoso.com",
"publisherName": "Contoso",
"restore": true
},
"sku": {
"name": "Developer",
"capacity": 1
},
"location": "China North"
}
清除软删除的实例
使用 API 管理清除操作,将 {subscriptionId}
、{location}
和 {serviceName}
替换为你的 Azure 订阅、资源位置和 API 管理名称。
注意
若要清除软删除的实例,除了对 API 管理实例的参与者访问权限外,你还必须在订阅范围内拥有以下 RBAC 权限:Microsoft.ApiManagement/locations/deletedservices/delete、Microsoft.ApiManagement/deletedservices/read.
DELETE https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/providers/Microsoft.ApiManagement/locations/{location}/deletedservices/{serviceName}?api-version=2021-08-01
这样将会从 Azure 永久删除你的 API 管理实例。
删除后重复使用 API 管理实例名称
可以在新部署中重复使用 API 管理实例的名称:
从 Azure 中永久删除(清除)实例后。
与原始实例位于同一订阅中。
不能在新部署中重复使用 API 管理实例的名称:
软删除实例后。
在用于部署原始实例的订阅之外的订阅中,即使从 Azure 中永久删除(清除)原始实例后也是如此。 无论使用的新订阅位于相同的还是不同的 Microsoft Entra 租户中,此限制都适用。 此限制在删除后的几天或更长时间内有效,具体取决于订阅类型。
此限制是因为 Azure 会将服务主机名在客户租户中保留一段预留期,以防止子域接管的威胁并阻止无关联的 DNS 项。 有关详细信息,请参阅阻止无关联的 DNS 项并避免子域接管。 若要查看 Microsoft Entra 租户中订阅的所有无关联 DNS 项,请参阅识别无关联的 DNS 项。
后续步骤
了解长期 API 管理备份和恢复选项: