Skip to main content
NetApp Backup and Recovery
所有雲端提供者
  • 亞馬遜網路服務
  • Google雲
  • 微軟 Azure
  • 所有雲端提供者
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

使用NetApp備份和還原 REST API 實現自動化

貢獻者 netapp-mwallis

可透過 Web UI 使用的NetApp備份和復原功能也可透過 RESTful API 使用。

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

  • 備份 - 管理雲端和本地資源的備份操作,並檢索備份資料的詳細信息

  • 目錄 - 根據查詢管理文件的索引目錄搜尋(搜尋和復原)

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

  • job - 管理NetApp控制台資料庫上的作業詳細資料條目

  • 許可證 - 從NetApp控制台檢索系統的許可證有效性

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

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

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

  • storagegrid - 檢索有關StorageGRID伺服器的詳細信息,並使您能夠發現StorageGRID伺服器

  • 系統 - 管理備份策略,並配置與系統關聯的目標物件存儲

API 參考

每個NetApp備份和還原 API 的文件均可從以下位置取得 "NetApp控制台自動化,用於NetApp備份與復原"

入門

要開始使用NetApp備份和還原 API,您需要取得使用者令牌、 NetApp控制台帳戶 ID 和控制台代理 ID。

進行 API 呼叫時,您將在授權標頭中新增使用者令牌,並在 x-agent-id 標頭中新增控制台代理 ID。您應該在 API 中使用NetApp控制台帳戶 ID。

註 如果您使用服務帳戶,則應使用服務存取令牌而不是使用者令牌。「client_id」的值(「Mu0V1ywgYteI6w1MbD15fKfVIUrNXGWC」)是固定值,無法變更。在這種情況下,請按照此處的說明進行操作: "建立服務存取權令牌"
步驟
  1. 從NetApp 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控制台網站上的使用者令牌有一個到期日。 API 回應包含一個「expires_in」字段,用於說明令牌何時過期。若要刷新令牌,您需要再次呼叫此 API。
  2. 取得您的NetApp控制台帳戶 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"}………
    . 取得包含控制台代理 ID 的 x-agent-id。
    GET curl '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…………

    此 API 將傳回以下回應。您可以透過解析 occm.[0].[agent].[agentId] 的輸出來檢索代理 ID。

    {"occms":[{"account":"account-OOnAR4ZS","accountName":"cbs","occm":"imEdsEW4HyYTFbt8ZcNKTKDF05jMIe6Z","agentId":"imEdsEW4HyYTFbt8ZcNKTKDF05jMIe6Z","status":"ready","occmName":"cbsgcpdevcntsg-asia","primaryCallbackUri":"http://34.93.197.21","manualOverrideUris":[],"automaticCallbackUris":["http://34.93.197.21","http://34.93.197.21/occmui","https://34.93.197.21","https://34.93.197.21/occmui","http://10.138.0.16","http://10.138.0.16/occmui","https://10.138.0.16","https://10.138.0.16/occmui","http://localhost","http://localhost/occmui","http://localhost:1337","http://localhost:1337/occmui","https://localhost","https://localhost/occmui","https://localhost:1337","https://localhost:1337/occmui"],"createDate":"1652120369286","agent":{"useDockerInfra":true,"network":"default","name":"cbsgcpdevcntsg-asia","agentId":"imEdsEW4HyYTFbt8ZcNKTKDF05jMIe6Zclients","provider":"gcp","systemId":"a3aa3578-bfee-4d16-9e10-

使用 API 的範例

以下範例顯示了在 Azure 雲端中的 East-US-2 區域中,在具有新策略的系統上啟動NetApp Backup and Recovery 的 API 調用,該策略設定了每日、每小時和每週標籤,並將存檔天數設定為 180 天。請注意,這僅啟用系統上的備份,但不會備份任何磁碟區。

API 請求

您會看到我們使用NetApp控制台帳戶 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
        }
    ]
}
監視直到“狀態”為“完成”。
{
    "job": [
        {
            "id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a",
            "type": "backup-working-environment",
            "status": "COMPLETED",
            "error": "",
            "time": 1651852160000
        }
    ]
}