Google Cloud SQL のライブラリとサンプルの概要

Google Cloud SQL API は HTTP と JSON を基に構築されているため、標準の HTTP クライアントであれば、この API にリクエストを送信してレスポンスを解析できます。ただし、手動で HTTP リクエストを作成してレスポンスを解析するのではなく、Google API クライアント ライブラリを使用することをおすすめします。クライアント ライブラリでは、高度に言語が統合され、セキュリティも強化されています。また、ユーザーの承認が必要な呼び出しもサポートしています。

クライアント ライブラリは、アプリケーションのデフォルト認証情報を使用することによって、Google API で簡単に認証を行い、これらの API にリクエストを送信できます。アプリケーションのデフォルト認証情報を使用すると、ベースとなるコードを変更することなく、ローカルでのアプリケーションのテストやアプリケーションのデプロイが可能です。詳しくは、<atrack-type="commonincludes" l10n-attrs-original-order="href,track-type,track-name" l10n-encrypted-href="WDE63JFVMK0YqIWBqG8nCycgwkRfOeEqRvzYs1N+2tJUEhcZvE5VtDH5LoWw0lj/" track-name="referenceLink">クライアント ライブラリを使用して認証する</atrack-type="commonincludes">をご覧ください。

アプリケーションのデフォルト認証情報は、Google Cloud SQL にアクセスするために使用できるクライアント ライブラリの一部です。デフォルト認証情報は、ユーザー認証情報とデフォルト サービス アカウントのいずれかでアプリケーションを識別します。ライブラリを使用するときには、コードを実行する環境の種類に基づいて認証情報を選ぶのが一般的です。

サービスへのアクセス

使用する Google Cloud SQL API クライアント ライブラリによっては、ライブラリがデフォルトのサービスパスを検出する方式を設定する必要があります。Google API Discovery Service を使用するクライアント ライブラリの場合、API 名 sqladmin を使用してクライアントを構築します。これには、Python と JavaScript 用のライブラリが含まれています。

次のコードは、クライアントを作成して、プロジェクト内の Cloud SQL インスタンスのリストを取得する方法を示しています。

Go

Go 用クライアント ライブラリの場合は、sqladmin パッケージをインポートします。

func ListInstances(projectId string) ([]*sqladmin.DatabaseInstance, error) {
	ctx := context.Background()

	// Create an http.Client that uses Application Default Credentials.
	hc, err := google.DefaultClient(ctx, sqladmin.SqlserviceAdminScope)
	if err != nil {
		return nil, err
	}

	// Create the Google Cloud SQL service.
	service, err := sqladmin.New(hc)
	if err != nil {
		return nil, err
	}

	// List instances for the project ID.
	instances, err := service.Instances.List(projectId).Do()
	if err != nil {
		return nil, err
	}
	return instances.Items, nil
}

Java

Java 用のクライアント ライブラリの場合は、オプションでサービス パス ディレクトリを指定できます。

// Set up global SQLAdmin instance.
client = new SQLAdmin.Builder(httpTransport, JSON_FACTORY, credential)
    .setServicePath("sql/v1beta4/")
    .setApplicationName(APPLICATION_NAME).build();
InstancesListResponse resp = client.instances().list("PROJECT_ID").execute();
List<DatabaseInstance> list = resp.getItems();
for (DatabaseInstance d : list) {
    System.out.println(d.getName());
}

JavaScript

JavaScript 用のクライアント ライブラリの場合は、sqladmin を指定してクライアントを構築します。

gapi.client.load('sqladmin', 'v1beta4', function() { console.log('loaded');});
gapi.client.sql.instances.list({'project': PROJECT_ID}).execute(showResult);
function showResult(result) {
  // Process the result.
};

Python

Python 用のクライアント ライブラリの場合は、sqladmin を指定してクライアントを構築します。

# Construct the service object for the interacting with the Cloud SQL Administration API.
service = discovery.build('sqladmin', 'v1beta4', http=http)

req = service.instances().list(project="PROJECT_ID")
resp = req.execute()
print json.dumps(resp, indent=2)

service オブジェクトは、検索ドキュメントに対してクエリを実行し、正しいサービスパス(この場合は「sql/v1beta4/projects/」)を使用します。

アプリケーションが Cloud SQL に接続する方法を示すコード例を探している場合は、外部アプリケーションからの接続をご覧ください。App Engine からの接続例については、Google App Engine からの接続をご覧ください。

クライアント ライブラリの認証

クライアント ライブラリは、アプリケーションのデフォルト認証情報を使用することによって、Google API で簡単に認証を行い、これらの API にリクエストを送信できます。アプリケーションのデフォルト認証情報を使用すると、ベースとなるコードを変更することなく、ローカルでのアプリケーションのテストやアプリケーションのデプロイが可能です。詳しくは、<atrack-type="commonincludes" l10n-attrs-original-order="href,track-type,track-name" l10n-encrypted-href="WDE63JFVMK0YqIWBqG8nCycgwkRfOeEqRvzYs1N+2tJUEhcZvE5VtDH5LoWw0lj/" track-name="referenceLink">クライアント ライブラリを使用して認証する</atrack-type="commonincludes">をご覧ください。

アプリケーションのデフォルト認証情報は、Google Cloud SQL にアクセスするために使用できるクライアント ライブラリの一部です。デフォルト認証情報は、ユーザー認証情報とデフォルト サービス アカウントのいずれかでアプリケーションを識別します。ライブラリを使用するときには、コードを実行する環境の種類に基づいて認証情報を選ぶのが一般的です。たとえば、開発環境では、gcloud auth コマンドを使用して認証することができ、クライアント ライブラリはこれらの認証情報を使用します。環境について詳しくは、『Google Cloud Platform Auth ガイド』デベロッパー ワークフローをご覧ください。

ライブラリとサンプルの一覧

以下の表では、最初の列に各ライブラリの開発段階(一部はまだ開発の初期段階)とライブラリのドキュメントへのリンクを示します。2 列目には、各ライブラリの使用可能なサンプルへのリンクを示します。

ドキュメント サンプル
Java 用 Google API クライアント ライブラリ Java のサンプル
JavaScript 用 Google API クライアント ライブラリ JavaScript のサンプル
.NET 用 Google API クライアント ライブラリ .NET のサンプル
Objective-C for REST 用 Google API クライアント ライブラリ Objective-C のサンプル
PHP 用 Google API クライアント ライブラリ(ベータ版) PHP のサンプル
Python 用 Google API クライアント ライブラリ Python のサンプル

これらの初期段階のライブラリも用意されています。

ドキュメント サンプル
Dart 用 Google API クライアント ライブラリ(ベータ版) Dart のサンプル
Go 用 Google API クライアント ライブラリ(アルファ版) Go のサンプル
Node.js 用 Google API クライアント ライブラリ(アルファ版) Node.js のサンプル
Ruby 用 Google API クライアント ライブラリ(アルファ版) Ruby のサンプル