適用於:所有 API 管理層級
使用 API 管理的軟刪除功能,您可以還原最近刪除的 API 管理實例。 這項功能可防止意外刪除 API 管理 執行個體。
支援介面
你可以使用版本 2020-06-01-preview 或更新版本的REST API、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 Management 實例時,該實例會自動被軟刪除。
當你軟刪除 API Management 實例時,該服務會進入被刪除狀態,無法進行一般的 API 管理操作。
在虛刪除狀態下:
- 你只能 列出、 還原或 清除 (永久刪除)API Management 實例。
- Azure 會在預先設定的 48 小時保留期限後,排程永久刪除 API Management 實例的底層資料。
- 您無法重複使用 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 管理清除作業,將 {subscriptionId}、{location} 和 {serviceName} 分別替換為您的 Azure 訂用帳戶、資源位置和 API Management 名稱。
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 管理 備份和復原選項: