クライアント ライブラリのエンドポイントを構成する

各 Google Cloud API サービスには、サービス固有のエンドポイントを介してアクセスします。

たとえば、Java-Speech クライアント ライブラリと Java-Translate クライアント ライブラリのデフォルト エンドポイントは、それぞれ https://speech.googleapis.com:443https://translate.googleapis.com:443 です。

Java 用 Cloud クライアント ライブラリは、クライアントの初期化時に正しいサービス エンドポイントを自動的に決定します。カスタム エンドポイントが構成されていない場合、ライブラリはサービスのデフォルト エンドポイントを使用します。

エンドポイントの構造

Java-Speech エンドポイントを例として、エンドポイントを構成するセクションの詳細を次の表に示します。

Scheme サービス名 Universe ドメイン ポート
https:// speech googleapis.com 443

これらは、サービス名を除き、Java 用 Cloud クライアント ライブラリのすべてのエンドポイントのデフォルト値です。サービス名にはデフォルト値がありません。これは、すべての Google Cloud サービスに異なる値があるためです。

カスタム エンドポイントを構成するタイミング

デフォルトのエンドポイントを置き換えるユースケースには、次のようなものがあります。

  • このサービスはリージョン エンドポイントを提供します。デフォルトのエンドポイントは、地域ごとのバリエーションを考慮しません。
  • 本番環境で作業していない。たとえば、TLS を構成せずにエミュレータを使用してローカルでテストしている場合です。

エンドポイント構成は、必要に応じてのみ変更してください。カスタム エンドポイントを使用する場合は、ポート番号(example.com:443 など)を含める必要があります。クライアント ライブラリは、デフォルトのサービス エンドポイントの場合とは異なり、カスタム エンドポイントに 443 などのデフォルトのポートを自動的に追加しません。

カスタム エンドポイントを構成する

エンドポイントは、Java 用 Cloud クライアント ライブラリのサービス固有の ClientSettings から設定できます。

次の例では、Java-KMS を使用します。

  1. ClientSettings.Builder でエンドポイントを設定し、ClientSettings を作成します。

    // Replace with your desired endpoint
    String endpoint = "customEndpoint.com:443";
    KeyManagementServiceSettings keyManagementServiceSettings =
     KeyManagementServiceSettings.newBuilder()
        .setEndpoint(endpoint)
        .build();
    
  2. ClientSettings でクライアントを初期化します。

    try (KeyManagementServiceClient keyManagementServiceClient =
      KeyManagementServiceClient.create(keyManagementServiceSettings)) {
      ...
    }
    

    エンドポイントは customEndpoint.com:443 に解決されます。

    クライアントは、次のソースのうち、エンドポイントを提供する最初のソースのエンドポイントを使用します。

    1. ClientSettings.Builder.setEndpoint() を介してプログラムで設定されたエンドポイント。
    2. サービスのデフォルト エンドポイント(https://{serviceName}.googleapis.com:443 など)。

次のスニペットは、クライアントの解決済みエンドポイントを特定する方法を示しています。

// The client's settings class contains a getter for the endpoint
keyManagementServiceClient.getSettings().getEndpoint();