问题描述
使用Azure APIM服务,在删除旧资源准备新建相同名称的新APIM服务时,尝试多次都是出现“指定的服务名称已正在使用”错误。但实际上同名称的服务已经被删除。为什么多次重建还是提示正在使用呢?
问题解答
这是因为APIM服务自动启用了软删除(Soft-Delete)功能。 在删除 API 管理实例时,APIM服务将处于已删除状态,任何正常的 API 管理操作都无法访问该服务。
在软删除状态下:
- 只能列出、恢复或清除(永久删除)API 管理实例。
- 在经过预先确定的保留期(48 小时)后,Azure 将指派系统永久删除 API 管理实例所对应的底层数据。
- 不能重复使用 API 管理实例的名称。
如果未在 48 小时内恢复或清除 API 管理实例,则系统会自动将其永久删除。
所以,如果要重新创建同名的APIM服务,可以等待48小时后,或者是通过清除方法( Purge a soft-deleted instance ) 来实现清除APIM服务。
Purge a soft-deleted Instance:
DELETE https://management.chinacloudapi.cn/ subscriptions/{subscriptionId}/providers/Microsoft.ApiManagement/ locations/{location}/ deletedservices/{serviceName}?api-version=2021-08-01
PS: Authorization 可以通过 Azure 门户上 F12 (开发者模式) 下抓取操作APIM服务的请求所使用Authrozation值也可以! 或参考文档 : https://www.cnblogs.com/lulight/p/14978216.html
参考资料
APIM Soft-delete behavior : https://docs.microsoft.com/en-us/azure/api-management/soft-delete#soft-delete-behavior
Deleted Services - Purge :https://docs.microsoft.com/en-us/rest/api/apimanagement/current-ga/deleted-services/purge?tabs=HTTP