Skip to main content
NetApp Backup and Recovery
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

利用 REST API 自動化 NetApp Backup and Recovery

貢獻者 netapp-mwallis

使用 NetApp Backup and Recovery REST API 來自動化 Web UI 中提供的備份與恢復任務。

NetApp Backup and Recovery 定義了十個端點類別:

  • backup - 管理雲端和內部部署資源的備份作業,並擷取備份資料詳細資訊

  • catalog - 管理基於查詢的索引目錄檔案搜尋(搜尋與還原)

  • cloud- 從NetApp Console檢索有關各種雲端提供者資源的信息

  • job - 管理 NetApp Console 資料庫中的作業詳細資料條目

  • license - 從 NetApp Console 擷取系統授權狀態

  • ransomware scan- 對特定備份檔案啟動勒索軟體掃描

  • restore- 使您能夠執行磁碟區、檔案和資料夾層級的還原作業

  • sfr- 從備份檔案中擷取檔案以進行單一檔案層級復原作業(瀏覽和還原)

  • storagegrid - 擷取有關 StorageGRID 伺服器的詳細資訊,並讓您能夠探索 StorageGRID 伺服器

  • system - 管理備份原則並設定與系統關聯的目的地物件存放區

API 參考

每個NetApp Backup and RecoveryAPI 的文件均可從以下位置取得 "NetApp Console自動化,用於NetApp Backup and Recovery"

入門

若要開始使用 NetApp Backup and Recovery API,請取得使用者權杖、您的 NetApp Console 帳戶 ID 和 Console 代理程式 ID。

進行 API 呼叫時,請在 `Authorization`標頭中包含使用者權杖,並在 `x-agent-id`標頭中包含 Console 代理程式 ID。在 API 請求中包含 NetApp Console 帳戶 ID。

註 如果您使用服務帳戶,請使用服務存取權杖而非使用者權杖。 client_id (Mu0V1ywgYteI6w1MbD15fKfVIUrNXGWC) 的值是固定的,無法變更。在此情況下,請依照此處的說明操作: "建立服務存取權令牌"
步驟
  1. 從 NetApp Console 網站取得使用者權杖。

    curl --location --request POST 'https://netapp-cloud-account.auth0.com/oauth/token?=' \
    --header 'Content-Type: application/json' \
    -d '{
        "grant_type": "refresh_token",
        "refresh_token": "JxaVHn9cGkX92aPVCkhat3zxxxxxwsC9qMl_pLHkZtsVA",
        "client_id": "Mu0V1ywgYteI6w1MbD15fKfVIUrNXGWC"
    }'
    註 來自 NetApp Console 網站的使用者權杖已過期。API 回應包含一個 `expires_in`欄位,用於指示權杖的過期時間。若要重新整理權杖,請再次呼叫此 API。
  2. 取得您的NetApp Console帳戶 ID。

    GET 'https://api.bluexp.netapp.com/tenancy/account' -H 'authority: api.bluexp.netapp.com'
    Header:
    -H 'accept: application/json'
    -H 'accept-language: en-GB,en;q=0.9'
    -H 'authorization: Bearer eyJhbGciOiJSUzI1NiIsInR

    此 API 傳回如下回應。從 [0].[accountPublicId] 中擷取帳戶 ID。

    {
      "accountPublicId": "account-i6vJXvZW",
      "accountName": "rashidn",
      "isSaas": true,
      "isGov": false,
      "isPrivatePreviewEnabled": false,
      "is3rdPartyServicesEnabled": false,
      "accountSerial": "96064469711530003565",
      "userRole": "Role-1"
    }
  3. 取得 `x-agent-id`標頭值,其中包含 Console 代理程式 ID。

    GET 'https://api.services.cloud.netapp.com/occm/list-occms/account-OOnAR4ZS?excludeStandalone=true&source=saas' \
    Header:
      -H 'authority: api.services.cloud.netapp.com' \
      -H 'accept: application/json' \
      -H 'accept-language: en-GB,en;q=0.9' \
      -H 'authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5…………

    透過解析 occm.[0].[agent].[agentId] 從回應中擷取代理程式 ID。

使用 API 的範例

以下範例展示了一個 API 呼叫,該呼叫使用新原則在系統上啟動 NetApp Backup and Recovery。該原則包含每日、每小時和每週標籤,並在 East US 2 Azure 區域中,於 180 天後進行歸檔。此請求啟用系統上的備份,但不會備份任何 Volume。

API 請求

您會看到我們使用NetApp Console帳號 ID account-DpTFcxN3 、控制台代理 ID `iZwFFeVCZjWnzGlw8RgD0QQNANZvpP7Iclients`和用戶令牌 `Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5rSXlPVFUzUWpZek1E…y6nyhBjwkeMwHc4ValobjUmju2x0xUH48g`在此命令中。

curl --location --request POST 'https://api.bluexp.netapp.com/account/account-DpTFcxN3/providers/cloudmanager_cbs/api/v3/backup/working-environment/VsaWorkingEnvironment-99hPYEgk' \
--header 'x-agent-id: iZwFFeVCZjWnzGlw8RgD0QQNANZvpP7Iclients' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5rSXlPVFUzUWpZek1E…y6nyhBjwkeMwHc4ValobjUmju2x0xUH48g' \
--data-raw '{
    "provider":"AZURE",
    "backup-policy": {
      "archive-after-days": 180,
      "rule": [
        {
          "label": "hourly",
          "retention": "2"
        },
        {
          "label": "daily",
          "retention": "30"
        },
        {
          "label": "weekly",
          "retention": "52"
        }
      ]
    },
    "ip-space": "Default",
    "region": "eastus2",
    "azure": {
      "resource-group": "rn-test-backup-rg",
      "subscription": "3beb4dd0-25d4-464f-9bb0-303d7cf5c0c2"
    }
  }
回應中包含一個您可以監控的作業 ID:
{
 "job-id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a"
}
監控作業狀態:
curl --location --request GET 'https://api.bluexp.netapp.com/account/account-DpTFcxN3/providers/cloudmanager_cbs/api/v1/job/1b34b6f6-8f43-40fb-9a52-485b0dfe893a' \
--header 'x-agent-id: iZwFFeVCZjWnzGlw8RgD0QQNANZvpP7Iclients' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5rSXlPVFUzUWpZek1E…hE9ss2NubK6wZRHUdSaORI7JvcOorUhJ8srqdiUiW6MvuGIFAQIh668of2M3dLbhVDBe8BBMtsa939UGnJx7Qz6Eg'
回覆:
{
  "job": [
    {
      "id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a",
      "type": "backup-working-environment",
      "status": "PENDING",
      "error": "",
      "time": 1651852160000
    }
  ]
}
監控至<code>狀態</code>變為<code>COMPLETED</code>:
{
  "job": [
    {
      "id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a",
      "type": "backup-working-environment",
      "status": "COMPLETED",
      "error": "",
      "time": 1651852160000
    }
  ]
}