共用方式為


API 管理 軟刪除

適用於:所有 API 管理層級

使用 API 管理的軟刪除功能,您可以還原最近刪除的 API 管理實例。 這項功能可防止意外刪除 API 管理 執行個體。

支援介面

你可以使用版本 2020-06-01-preview 或更新版本的REST APIAzure CLI,或適用於 .NET、Go 或 Python 的 Azure SDK,來恢復軟刪除的實例並執行其他操作。

小提示

作業 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 會傳回該執行個體的記錄,顯示其 deletionDatescheduledPurgeDate。 例如,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

此命令會傳回在該訂用帳戶下可以還原的所有虛刪除服務的清單。 它會顯示每個服務的 deletionDatescheduledPurgeDate

恢復軟刪除的實例

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

在請求主體中,將屬性設 restoretrue。 (當指定此旗標並設定為 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 管理 備份和復原選項: