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

クラウド同期 API

寄稿者 netapp-bcammett このページの PDF をダウンロード

Web UI から使用できる Cloud Sync 機能は、 RESTful API からも使用できます。

はじめに

Cloud Sync API を使用するには、ユーザトークンと Cloud Central アカウント ID を取得する必要があります。API 呼び出しを行うときは、トークンとアカウント ID を Authorization ヘッダーに追加する必要があります。

手順
  1. NetApp Cloud Central からユーザトークンを取得します。

    POST https://netapp-cloud-account.auth0.com/oauth/token
    Header: Content-Type: application/json
    Body:
    {
                  "username": "<user_email>",
                  "scope": "profile",
                  "audience": "https://api.cloud.netapp.com",
                  "client_id": "UaVhOIXMWQs5i1WdDxauXe5Mqkb34NJQ",
                  "grant_type": "password",
                  "password": "<user_password>"
    }
  2. Cloud Central アカウント ID を取得します。

    GET https://api.cloudsync.netapp.com/api/accounts
    Headers: Authorization: Bearer <user_token>
    Content-Type: application/json

    この API は、次のような応答を返します。

    [
      {
        "accountId": "account-JeL97Ry3",
        "name": "Test"
      }
    ]
  3. 各 API 呼び出しの Authorization ヘッダーにユーザトークンとアカウント ID を追加します。

    • 例 *

      次の例は、 Microsoft Azure でデータブローカーを作成するための API 呼び出しを示しています。<user_token> と <accountId> は、前の手順で取得したトークンと ID で置き換えます。

    POST https://api.cloudsync.netapp.com/api/data-brokers
    Headers: Authorization: Bearer <user_token>
    Content-Type: application/json
    x-account-id: <accountId>
    Body: { "name": "databroker1", "type": "AZURE" }
トークンの有効期限が切れた場合はどうすればよいですか。

NetApp Cloud Central のユーザトークンの有効期限が切れています。トークンを更新するには、手順 1 から API を再度呼び出す必要があります。

API 応答には、トークンの有効期限を示す「 expires_in 」フィールドが含まれています。

API リファレンス

各 Cloud Sync API のドキュメントは、から入手できます https://api.cloudsync.netapp.com/docs

List API の使用

list API は非同期 API であるため ' 結果はすぐには返されません ( たとえば 'get/data-colders/{id}/list-nfs-export-folders' と 'get/data-colders/{id}/list-s3-bas' など )サーバからの応答は、 HTTP ステータス 202 だけです。実際の結果を得るには 'get/mmessages/client’api を使用する必要があります

手順
  1. 使用するリスト API を呼び出します。

  2. オペレーションの結果を表示するには 'get/mmessages/client’API を使用します

  3. 受信した ID を付加して、同じ API を使用します。「 get\http://api.cloudsync.netapp.com/api/messages/client?last=<id_from_step_2>` 」

    ID は 'get/mmessages/client’API を呼び出すたびに変更されることに注意してください

    • 例 *

'list-s3-buckets' API を呼び出すと ' 結果はすぐには返されません

GET http://api.cloudsync.netapp.com/api/data-brokers/<data-broker-id>/list-s3-buckets
Headers: Authorization: Bearer <user_token>
Content-Type: application/json
x-account-id: <accountId>

その結果、 HTTP ステータスコード 202 が生成されます。これは、メッセージが受け入れられたが、まだ処理されていないことを意味します。

操作の結果を取得するには、次の API を使用する必要があります。

GET http://api.cloudsync.netapp.com/api/messages/client
Headers: Authorization: Bearer <user_token>
Content-Type: application/json
x-account-id: <accountId>

結果は、 ID フィールドを含む 1 つのオブジェクトを持つ配列になります。ID フィールドは、サーバが最後に送信したメッセージを表します。例:

[
    {
        "header": {
            "requestId": "init",
            "clientId": "init",
            "agentId": "init"
        },
        "payload": {
            "init": {}
        },
        "id": "5801"
    }
]

次に、受信した ID を使用して、次の API コールを実行します。

GET http://api.cloudsync.netapp.com/api/messages/client?last=<id_from_step_2>
Headers: Authorization: Bearer <user_token>
Content-Type: application/json
x-account-id: <accountId>

結果はメッセージの配列です。各メッセージ内にはペイロードオブジェクトがあります。ペイロードオブジェクトは、動作の名前(キー)とその結果(値)で構成されます。例:

[
    {
        "payload": {
            "list-s3-buckets": [
                {
                    "tags": [
                        {
                            "Value": "100$",
                            "Key": "price"
                        }
                    ],
                    "region": {
                        "displayName": "US West (Oregon)",
                        "name": "us-west-2"
                    },
                    "name": "small"
                }
            ]
        },
        "header": {
            "requestId": "f687ac55-2f0c-40e3-9fa6-57fb8c4094a3",
            "clientId": "5beb032f548e6e35f4ed1ba9",
            "agentId": "5bed61f4489fb04e34a9aac6"
        },
        "id": "5802"
    }
]

API を使用して Box から同期関係を作成します

Cloud Sync はをサポートします "ボックス" Cloud Sync API を使用する場合に、同期関係のソースとして使用します。 "Box でサポートされている同期関係を表示します"

Box からコピーするには、次の資格情報を入力する必要があります。

  • ClientID

  • cliendSecret

  • 公開キー ID

  • privatekey を入力します

  • パスフレーズ

  • エンタープライズ ID

手順
  1. プライベートキー構成ファイルを開発コンソールに作成します。

    JSON ファイルは次のようになります。

    {
      "boxAppSettings": {
        "clientID": "<clientId>",
        "clientSecret": "<clientSecret>",
        "appAuth": {
          "publicKeyID": "<publicKeyID>",
          "privateKey": "<privatkey>",
          "passphrase": "<passphrase>"
        }
      },
      "enterpriseID": "<enterpriseId>"
    }
  2. Cloud Sync API を使用して、ボックスからに同期関係を作成します "サポートされるターゲット"

    Box から Amazons S3 への同期関係を作成する例を以下に示します。

    {
      "dataBrokerId": "60ede6f862e3cf7d31325037",
      "source": {
        "protocol": "box",
        "box": {
          "folderId": "0",
          "credentials": {
            "clientId": "<clientId>",
            "clientSecret": "<clientSecret>",
            "publicKeyId": "<publicKeyId>",
            "privateKey": "<privateKey>",
            "passphrase": "<passphrase>",
            "enterpriseId": "<enterpriseId>"
          }
        }
      },
      "target": {
        "protocol": "s3",
        "s3": {
          "bucket": "chen02",
          "prefix": "fromBox20",
          "region": "us-east-1",
    "provider":"s3"
        }
      },
      "settings": {
        "gracePeriod": 0,
        "deleteOnSource": false,
        "deleteOnTarget": false,
        "objectTagging": false,
        "copyAcl": false,
        "retries": 3,
        "fileTypes": {
          "files": true,
          "directories": true,
          "symlinks": true
        },
        "copyProperties": {
          "metadata": false,
          "tags": false
        },
        "schedule": {
          "syncInDays": 1,
          "syncInHours": 0,
          "syncInMinutes": 0,
          "isEnabled": true,
          "syncWhenCreated": true
        }
      }
    }