Database Migration Service API の使用

概要

Database Migration Service には、接続プロファイルと移行ジョブをプログラムで管理するための REST API が用意されています。REST API は、接続プロファイルと移行ジョブの作成と管理に関連するリソースによって定義されます。すべてのリソースとそのメソッドの詳細については、Database Migration Service API リファレンスをご覧ください。

Database Migration Service REST API に直接リクエストを送信する場合は、正しい形式のリクエストを作成して、認証済みユーザーとしてリクエストを承認し、返されたレスポンスを処理する必要があります。このドキュメントのタスクの多くで、cURL を使用した API の例が紹介されています。

API の使用例については、Database Migration Service API リファレンスのリクエストのページをご覧ください。各ページには、複数のプログラミング言語で API を呼び出す例、正しい形式のリクエストの内容と、レスポンスで返されることが予想される内容を理解するのに役立つ、リクエスト固有の Explorer が含まれています。

インスタンスを管理する次のいずれかの方法を使用する場合も、Database Migration Service API を間接的に使用しています。

  • Google Cloud CLI: インスタンスの操作に使用できるコマンドライン インターフェース(CLI)。

  • Google Cloud console: グラフィカルなウェブ インターフェース。

これらの方法、特にGoogle Cloud コンソールを使用するメリットは、接続プロファイルと移行ジョブを(ユースケースに応じて)非常に簡単に管理できることです。Database Migration Service をこれから使い始める場合は、REST API を直接操作する前に、まずはこれらのツールのいずれかから始めることをおすすめします。

API を有効にする

Database Migration Service API を使用するには、以下の手順で有効にする必要があります。

コンソール

  1. Database Migration Service API を有効にします
  2. プロジェクトを選択します。
  3. [続行] を選択します。

gcloud

  1. 次のコマンドを入力して、 Google Cloudプロジェクトのプロジェクト ID を表示します。
    gcloud projects list
  2. デフォルト プロジェクトを設定します。
    gcloud config set project YOUR_PROJECT_ID
  3. Cloud SQL Admin API を有効にする
    gcloud services enable datamigration.googleapis.com

権限

Database Migration Service API を使用するには、必要な権限が必要です。権限には以下のようなものがあります。

  • Database Migration 管理者: この権限を持つユーザーは、接続プロファイルと移行ジョブの管理に使用される Database Migration Service のすべてのリソースにアクセスできます。
  • Database Migration 閲覧者: この権限を持つユーザーは、Database Migration Service の接続プロファイルと移行ジョブに読み取り専用でアクセスできます。
  • Cloud SQL 管理者: この権限を持つユーザーは、Database Migration Service で Cloud SQL の接続プロファイルと移行ジョブを作成、管理できます。

Google Cloud には Identity and Access Management(IAM)機能があり、特定の Google Cloud リソースに対するアクセス権を詳細に設定できるため、他のリソースへの不要なアクセスを防ぐことができます。Database Migration Service の権限は、Google Cloud コンソール、API の IAM メソッド、Google Cloud CLI を使用して取得、設定できます。詳細については、リソースへのアクセス権の付与、変更、取り消しをご覧ください。

ファイルから JSON データを指定する

cURL で API を使用する場合は、コマンドラインを使用してプロパティ値を指定します。パスワードやセキュリティ キーなどの機密性の高い値を扱う場合は、コマンドラインで指定するとセキュリティ上のリスクが生じます。セキュリティを強化するには、API 呼び出しの JSON データを含むファイルを作成し、コマンドラインでファイルのパスを指定します。

ファイルから JSON データを cURL API 呼び出しに指定するには、次を行います。

  1. --data フィールドの単一引用符で囲まれたすべてを含むファイルを作成します。

    中かっこは含めますが、単一引用符は含めません。

  2. コマンドラインで、@ 文字が前に付いたファイルへのパスを --data パラメータとして指定します。

    --data @<path-to-file>/<filename>

    たとえば、Cloud SQL の移行先データベースの接続プロファイルを作成するには、次の内容の request.json という名前のファイルを作成します。

    {
      "displayName": "my Cloud SQL connection profile",
      "mysql": {
        "host": "10.11.12.13",
        "port": 5432,
        "username": "myusername",
        "password": "mypassword"
      }
    }
    

    次に、コマンドラインで次の cURL コマンドを使用します。

    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data @./request.json \
         -X POST \
         https://datamigration.googleapis.com/v1/projects/myProject/locations/myLocation/connectionProfiles?connectionProfileId=myCloudSQLconnectionprofile

長時間実行 API 呼び出しを処理する

オブジェクトの作成などの API 呼び出しは、完了するまでに時間がかかる場合があります。API は非同期であるため、オペレーションがまだ進行中の場合でも、呼び出しはすぐに返されます。後続の API 呼び出しで新しく作成されたオブジェクトを使用する場合は、最初のオペレーションが完了するまで待ってから続行する必要があります。

Database Migration Service API を使用してオペレーションを管理できます。モニタリング対象には以下が含まれます。

Database Migration Service と Google API Discovery Service

Google API Discovery Service は、Google API を見つけるために使用できるサービスです。たとえば、Google APIs Explore ツールを使うときに Discovery Service を使用しています。

Discovery Service では、Database Migration Service は「datamigration」として表されます(例: https://datamigration.googleapis.com/$discovery/rest?version=v1)。