NetApp Backup and RecoveryREST API による自動化
Web UI を通じて利用できるNetApp Backup and Recovery機能は、バックアップおよびリカバリ REST API を通じても利用できます。
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 RecoveryAPI の使用を開始するには、ユーザー トークン、 NetApp Consoleアカウント ID、およびコンソール エージェント ID を取得する必要があります。
API 呼び出しを行うときは、Authorization ヘッダーにユーザー トークンを追加し、x-agent-id ヘッダーにコンソール エージェント ID を追加します。 API ではNetApp Consoleアカウント ID を使用する必要があります。
|
|
サービス アカウントを使用している場合は、ユーザー トークンの代わりにサービス アクセス トークンを使用する必要があります。「client_id」の値 (「Mu0V1ywgYteI6w1MbD15fKfVIUrNXGWC」) は固定値であり、変更できません。この場合は、次の手順に従ってください。 "サービスアクセストークンを作成する" 。 |
-
NetApp NetApp ConsoleWeb サイトからユーザー トークンを取得します。
次のリンクからリフレッシュトークンを生成してください: 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 ConsoleWeb サイトのユーザー トークンには有効期限があります。API レスポンスには、トークンの有効期限を示す「expires_in」フィールドが含まれています。トークンを更新するには、この API を再度呼び出す必要があります。 -
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" } -
コンソール エージェント ID を含む x-agent-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の使用例
次の例は、Azure クラウドの East-US-2 リージョンで、毎日、毎時、毎週のラベルが設定され、アーカイブ日数が 180 日に設定された新しいポリシーを持つシステムでNetApp Backup and Recoveryをアクティブ化する 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"
}
}
{
"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
}
]
}