Cloud SQL API を使用する

Google Cloud SQL は、プログラムでインスタンスを管理するための REST API を提供します。REST API は、BackupRuns、Databases、Instances、Flags、Operations、SslCerts、Tiers、Users リソースで定義されます。各リソースは、それにアクセスして操作するためのメソッドをサポートしています。たとえば、Instances リソースは、get、insert、list などのメソッドをサポートしています。すべてのリソースとそのメソッドについて詳しくは、Google Cloud SQL API リファレンスをご覧ください。

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

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

また、インスタンスを管理するための以下のいずれかの方法を使用するときには、Google Cloud SQL の REST API を間接的に使用しています。

これらの方法、特に Google Cloud Platform Console を使うことの利点は、ユースケースによっては、インスタンスの管理を大幅に単純化できることです。Google Cloud SQL をこれから使い始めるの場合は、まずはこれらのツールのいずれかから始めた後で、REST API を直接使用することをお勧めします。

API の有効化

Google Cloud SQL API を使用するには、Google Cloud Platform Console でそれを有効化する必要があります。

  1. Google Cloud Platform Console で、プロジェクトを選択します。

  2. API Manager コンポーネントで、[Google Cloud SQL API] をクリックします。

  3. Google Cloud SQL API コンポーネントで、[API を有効にする] を選択します。

Google Cloud SQL API コンポーネントと Google Cloud SQL コンポーネントは違うことに注意してください。後者のコンポーネントは、Google Cloud Platform Console と Cloud SDK でインスタンスを管理するために有効にする必要があります。

リクエストの承認

アプリケーションが Google Cloud SQL API に送信するすべてのリクエストには、承認トークンが含まれている必要があります。また、トークンは、Google に対してアプリケーションを識別します。

承認プロトコルについて

アプリケーションは OAuth 2.0 を使用してリクエストを承認する必要があります。これ以外の承認プロトコルはサポートされていません。アプリケーションで Google ログインを使用している場合、承認作業の一部が代行されます。

OAuth 2.0 を使ったリクエストの承認

Google Cloud SQL API に対するすべてのリクエストは、認証済みユーザーによって承認される必要があります。

OAuth 2.0 の認証プロセス、つまり「フロー」の詳細は、開発するアプリケーションの種類によって若干異なりますが、次の一般的なプロセスは、すべての種類のアプリケーションに当てはまります。

  1. アプリケーションを作成した場合は、Google Cloud Platform Console を使用してアプリケーションを登録します。後で必要になるクライアント ID やクライアント シークレットなどの情報が Google から提供されます。
  2. Google Cloud Platform Console で Google Cloud SQL API を有効にします(API が Cloud Platform Console に表示されない場合は、この手順をスキップしてください)。
  3. アプリケーションがユーザーデータにアクセスする必要がある場合は、アクセスの範囲を Google にリクエストします。
  4. データをリクエストするアプリケーションの承認を求める Google の同意画面がユーザーに表示されます。
  5. ユーザーが承認すると、Google はアプリケーションに有効期間が短いアクセス トークンを付与します。
  6. アプリケーションはリクエストにそのアクセス トークンを付けて、ユーザーデータをリクエストします。
  7. Google によりリクエストとトークンが有効であると判断されると、リクエストしたデータが返されます。

新しいアクセス トークンを取得するためにリフレッシュ トークンを使用するなど、承認フローには追加のステップがあります。さまざまなアプリケーションにおけるフローについて詳しくは、Google の OAuth 2.0 ドキュメントをご覧ください。

Google Cloud SQL API の OAuth 2.0 スコープ情報は以下になります。

このドキュメントの対象範囲 意味
https://www.googleapis.com/auth/sqlservice.admin Google Cloud SQL for MySQL への読み取り / 書き込みアクセス権。
https://www.googleapis.com/auth/cloud-platform Instances.importInstances.export には、この追加スコープが必要です。

OAuth 2.0 を使用してアクセスをリクエストするには、アプリケーションの登録時に Google より提供される情報(クライアント ID やクライアント シークレットなど)の他に、スコープ情報が必要です。

権限

プロジェクト メンバーは、承認に加えて、API リクエストで必須の権限が必要です。詳しくはプロジェクトのアクセス制御をご覧ください。

Google Cloud SQL と Google API Discovery Service

Google API Discovery Service は、Google API を見つけるために使用できるサービスです。たとえば、Google API Explorer ツールを使うときに Discovery Service を使用しています。Discovery Service で、Google Cloud SQL は「sqladmin」として表されます(例: https://www.googleapis.com/discovery/v1/apis/sqladmin/v1beta4/sql.operation)。これは、REST API に対するリクエストで使用するベースパス「sql」とは違います(例: https://www.googleapis.com/sql/v1beta4/projects/example-id/instances)。

一部のクライアント ライブラリも Discovery Service を使用します。クライアント作成コードでは、正しい検索ドキュメントにアクセスするために、必ず「sqladmin」を使用してください。詳細は、クライアント ライブラリをご覧ください。

API の例

API と cURL をあわせて使用する例は、このドキュメント セットの入門ガイドで紹介しています。