【Azure APIM】验证APIM删除后的恢复步骤

问题描述

在Azure门户中,误删除API Management资源后,怎么办?

问题解答

遇见误删除的第一反应就是:

进一步查看APIM软删除的资料,发现可以实现恢复在48小时以内的被删除的资源。

软删除行为 : https://docs.azure.cn/zh-cn/api-management/soft-delete#soft-delete-behavior

如果 Azure 门户、Azure REST API 或其他 Azure 工具使用 API 2020-06-01-preview 版本或更高版本,则在借助上述方式删除 API Management 实例时,系统会自动实施软删除。

在删除 API 管理实例时,该服务将处于已删除状态,任何正常的 API 管理操作都无法访问该服务。

在软删除状态下:

  1. 只能列出、恢复或清除(永久删除)API 管理实例。
  2. 在经过预先确定的保留期(48 小时)后,Azure 将指派系统永久删除 API 管理实例所对应的底层数据。
  3. 不能重复使用 API 管理实例的名称。
  4. 如果未在 48 小时内恢复或清除 API 管理实例,则系统会自动将其永久删除。

这是一个巨大的好消息。经过验证,成功恢复被删除的资源。在四年一次的2月29日(闰年)特地记录恢复的步骤:

1) 调用 " 列出已删除的 API 管理实例" 接口,查看被删除APIM资源的信息

使用 API 管理按订阅列出操作,将 {subscriptionId} 替换为你的订阅 ID:

GET https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/providers/Microsoft.ApiManagement/deletedservices?api-version=2021-08-01

使用 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

*** 注:**1,2步骤中的请求都需要获取Authorization Token,临时获取方式为 "在Azure APIM门户页面,通过F12(浏览器开发者工具), 查看Network中的请求,从任何一个请求中获取Authorzation Bearer Token即可"。

2) 调用"恢复软删除的实例 " 接口,设置 restore 属性设置为 true

使用 API 管理更新PUT操作,将 {subscriptionId}、{resourceGroup} 和 {apimServiceName} 替换为你的 Azure 订阅、资源组名称和 API 管理名称:

PUT
https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.ApiManagement/service/{apimServiceName}?api-version=2021-08-01

##Body JSON格式内容:

{
"properties": {
"restore": true
},
"location": "China North 3"
}

*** 注:**如果Body中缺少location参数,请求会返回错误提示:"error": {"code": "LocationRequired","message": "The location property is required for this definition."}

3) PUT接口发送成功后,等待恢复完成的时间大约在45分钟 ~ 1小时之间。

在恢复期间,APIM的状态显示为:Activating (Service is being activated ... )

误删除后的恢复APIM动画演示:

附录:在Azure APIM页面中的一键恢复 (Recover deleted API Management service)

参考资料

Azure API 管理软删除 : https://docs.azure.cn/zh-cn/api-management/soft-delete#soft-delete-behavior

【END】