Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

NetApp Backup and RecoveryをREST APIで自動化する

共同作成者 netapp-mwallis

NetApp Backup and Recovery REST APIを使用して、Web UIで利用可能なバックアップおよびリストアタスクを自動化します。

NetApp Backup and Recoveryでは、エンドポイントのカテゴリを10種類定義しています:

  • 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 Backup and RecoveryのためのNetApp Console自動化"

開始

NetApp Backup and Recovery API を使い始めるには、ユーザートークン、NetApp Console アカウント ID、および Console エージェント ID を取得してください。

API呼び出しを行う際は、ユーザートークンを `Authorization`ヘッダーに、コンソールエージェントIDを `x-agent-id`ヘッダーに含めてください。APIリクエストには、NetApp ConsoleアカウントIDを含めてください。

メモ サービスアカウントを使用する場合は、ユーザートークンの代わりにサービスアクセストークンを使用してください。値( client_id (Mu0V1ywgYteI6w1MbD15fKfVIUrNXGWC)は固定されており、変更できません。この場合は、こちらの手順に従ってください: "サービスアクセストークンを作成する"
手順
  1. NetApp Console ウェブサイトからユーザートークンを取得します。

    以下のリンクからリフレッシュトークンを生成してください:https://services.cloud.netapp.com/refresh-token/.リフレッシュトークンは、ユーザートークンを生成するために使用する英数字の文字列です。

    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`ヘッダー値を取得します。このヘッダー値にはコンソールエージェント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の使用例

次の例は、新しいポリシーが適用されたシステムでNetApp Backup and Recoveryをアクティブ化するAPI呼び出しを示しています。このポリシーには日次、時間次、週次のラベルがあり、East US 2 Azureリージョンでは180日後にアーカイブされます。この要求はシステム上のバックアップを有効にしますが、ボリュームのバックアップは行いません。

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>status</code>が<code>COMPLETED</code>になるまで監視します:
{
  "job": [
    {
      "id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a",
      "type": "backup-working-environment",
      "status": "COMPLETED",
      "error": "",
      "time": 1651852160000
    }
  ]
}