Cloud Code for IntelliJ で Cloud API とライブラリを管理する

Cloud APIs を使用して、コードから Google Cloud のプロダクトおよびサービスにアクセスできます。これらの Cloud APIs では、クライアント ライブラリ経由で呼び出すことができる、シンプルな JSON REST インターフェースが公開されています。

このドキュメントでは、Cloud APIs を有効にし、Cloud クライアント ライブラリをプロジェクトに追加する方法について説明します。

Cloud APIs を見る

IDE 内で利用可能なすべての Google Cloud APIs を確認する手順は次のとおりです。

  1. [ツール] > [Google Cloud Code] > [Cloud APIs] に移動します。

  2. [Google Cloud APIs の管理] ウィンドウでは、カテゴリ別に Cloud APIs がグループ化されます。API の検索 の検索バーを使用して特定の API を見つけることもできます。

    Cloud APIs のリストを示す Cloud APIs Explorer。

  3. [API] をクリックすると、ステータス、対応するクライアント ライブラリの言語に固有のインストール手順、関連ドキュメントなどの詳細が表示されます。

Cloud APIs を有効にする

API の詳細ページを使用してプロジェクトの Cloud API を有効にするには、次の手順を行います。

  1. [Cloud API] の詳細ビューで、Cloud API を有効にする Google Cloud プロジェクトを選択します。

  2. [API を有効にする] をクリックします。

    API を有効にすると、変更を確認するメッセージが表示されます。

Cloud クライアント ライブラリを追加する

IntelliJ でプロジェクトにライブラリを追加する手順は次のとおりです。

Java Maven プロジェクトの場合

  1. [ツール] > [Google Cloud Code] > [Cloud APIs] に移動します。
  2. [Google Cloud APIs の管理] ダイアログの [クライアント ライブラリのインストール] セクションに、サポートされているライブラリが表示されます。

  3. [Google Cloud クライアント ライブラリ](ほとんどのプロジェクトで推奨)または [Java Spring Google Cloud](プロジェクトで Java Spring を使用する場合に推奨)から希望のライブラリ タイプを選択します。
  4. 必要に応じて、IDE のクライアント ライブラリをインストールするで残りの手順を行います。
  5. 完了したら、[閉じる] をクリックします。

その他のすべてのプロジェクトの場合

  1. [ツール] > [Google Cloud Code] > [Cloud APIs] に移動します。
  2. [Google Cloud APIs の管理] ダイアログの [クライアント ライブラリのインストール] セクションに、サポートされているライブラリが表示されます。

  3. API をインストールするには、API の詳細ページに記載されているインストール手順を実行してください。

    Java アプリケーションを開発する場合は、ライブラリとして Google Cloud クライアント ライブラリ(推奨)または Java Spring Google Cloud を指定する必要もあります。

  4. 完了したら、[閉じる] をクリックします。

API コードサンプルを使用する

API Explorer で各 API のコードサンプルを検索して使用するには、以下の手順に沿って操作します。

  1. [ツール] > [Google Cloud Code] > [Cloud APIs] に移動します。

  2. 詳細ビューを開くには、API の名前をクリックします。

  3. API のコードサンプルを表示するには、[コードサンプル] タブをクリックします。

  4. サンプルリストをフィルタリングするには、[言語] プルダウン メニューから、検索するテキストを入力するか、プログラミング言語を選択します。

認証の設定

必要な API を有効にして必要なクライアント ライブラリを追加したら、アプリケーションの認証を正常に完了するためにアプリケーションを構成する必要があります。構成は、開発の種類と実行するプラットフォームによって異なります。

関連する認証手順を完了すると、アプリケーションが認証され、デプロイの準備が整います。

ローカルでの開発

ローカルマシン

IDE から Google Cloud にログインした場合は、Cloud Code には、アプリケーションのデフォルト認証情報(ADC)が確実に設定されています。Cloud Code でログインしていない場合は、gcloud auth application-default login を手動で実行します。

minikube

  1. IDE から Google Cloud にログインした場合は、Cloud Code には、アプリケーションのデフォルト認証情報(ADC)が確実に設定されています。Cloud Code でログインしていない場合は、gcloud auth application-default login を手動で実行します。
  2. minikube start --addons gcp-auth で minikube を起動します。これにより、ADC が Pod にマウントされます。Google Cloud 用の詳細な minikube 認証ガイドについては、minikube gcp-auth ドキュメントをご覧ください。

その他のローカル K8s クラスタ

  1. IDE から Google Cloud にログインした場合は、Cloud Code には、アプリケーションのデフォルト認証情報(ADC)が確実に設定されています。Cloud Code でログインしていない場合は、gcloud auth application-default login を手動で実行します。
  2. Pod またはデプロイのマニフェストで Pod の仕様を編集して、Google Cloud クライアント ライブラリで認証情報を検出できるように、ローカルの gcloud ディレクトリを Kubernetes Pod にマウントします。Kubernetes Pod の構成例:
    apiVersion: v1
    kind: Pod
    metadata:
      name: my-app
      labels:
        name: my-app
    spec:
      containers:
      - name: my-app
        image: gcr.io/google-containers/busybox
        ports:
          - containerPort: 8080
        volumeMounts:
          - mountPath: /root/.config/gcloud
            name: gcloud-volume
      volumes:
        - name: gcloud-volume
          hostPath:
            path: /path/to/home/.config/gcloud

Cloud Run

IDE から Google Cloud にログインした場合は、Cloud Code には、アプリケーションのデフォルト認証情報(ADC)が確実に設定されています。Cloud Code でログインしていない場合は、gcloud auth application-default login を手動で実行します。

リモート開発

Google Kubernetes Engine


プロジェクトのスコープに応じて、GKE での Google Cloud サービスの認証方法を選択できます。
  • (開発のみ)
    1. 次の設定で GKE クラスタを作成します。
      • GKE のデフォルトで使用されるサービス アカウント(Compute Engine のデフォルト サービス アカウント)を使用していること、そのサービス アカウントを使用していること、および [アクセス スコープ] が [すべての Cloud APIs への完全アクセス権を許可] に設定されていることを確認してください(この 2 つの設定を行うには、[ノードプール] > [セキュリティ] と進んでください)。
        Compute Engine サービス アカウントはノードにデプロイされているすべてのワークロードで共有されるので、この方法は権限をオーバープロビジョニングし、開発目的でのみ使用する必要があります。
      • クラスタで Workload Identity が有効になっていないことを確認します([クラスタ] > [セキュリティ] セクションにて)。
    2. 必要なロールを Compute Engine のデフォルト サービス アカウントに割り当てます。
  • (本番環境に推奨)
    1. Workload Identity を使用して GKE クラスタとアプリケーションを構成し、GKE で Google Cloud サービスを認証します。これにより、Kubernetes サービス アカウントが Google サービス アカウントに関連付けられます。
    2. Kubernetes Deployment YAML ファイル内の .spec.serviceAccountName フィールドを設定して、Kubernetes サービス アカウントを参照するように Kubernetes Deployment を構成します。
      Cloud Code テンプレートから作成されたアプリの場合、このファイルは kubernetes-manifests フォルダにあります。
    3. アクセスしようとしている Google Cloud サービスに追加のロールが必要な場合は、アプリの開発に使用している Google サービス アカウントにそれらのロールを付与します。

Cloud Run


  1. Cloud Run アプリケーションをデプロイするための新しい専用のサービス アカウントを作成するには、[サービス アカウント] ページで、Secret が保存されているプロジェクトを選択します。

    [サービス アカウント] ページに移動

  2. [サービス アカウントを作成] をクリックします。
  3. [サービス アカウントの作成] ダイアログで、わかりやすいサービス アカウント名を指定します。
  4. [サービス アカウント ID] を一意のわかりやすい値に変更してから、[作成] をクリックします。
  5. アクセスしようとしている Google Cloud サービスに追加のロールが必要な場合は、付与し、[続行] をクリックして、[完了] をクリックします。
  6. デプロイ構成に Kubernetes サービス アカウントを追加するには、[実行] > [構成を編集] に移動して、[サービス名] フィールドでサービス アカウントを指定します。

Cloud Run


プロジェクトのスコープに応じて、GKE での Google Cloud サービスの認証方法を選択できます。
  • (開発のみ)
    1. 次の設定で GKE クラスタを作成します。
      • GKE のデフォルトで使用されるサービス アカウント(Compute Engine のデフォルト サービス アカウント)を使用していること、および [アクセス スコープ] が [すべての Cloud APIs への完全アクセス権を許可] に設定されていることを確認してください(この 2 つの設定を行うには、[ノードプール] > [セキュリティ] と進んでください)。
        Compute Engine サービス アカウントはノードにデプロイされているすべてのワークロードで共有されるので、この方法は権限をオーバープロビジョニングし、開発目的でのみ使用する必要があります。
      • クラスタで Workload Identity が有効になっていないことを確認します([クラスタ] > [セキュリティ] セクションにて)。
    2. 必要なロールを Compute Engine のデフォルト サービス アカウントに割り当てます。
  • (本番環境に推奨)
    1. Workload Identity を使用して GKE クラスタとアプリケーションを構成し、GKE で Google Cloud サービスを認証します。これにより、Kubernetes サービス アカウントが Google サービス アカウントに関連付けられます。
    2. デプロイ構成に Kubernetes サービス アカウントを追加するには、[実行] > [構成を編集] に移動して、[サービス名] フィールドで Kubernetes サービス アカウントを指定します。
    3. アクセスしようとしている Google Cloud サービスに追加のロールが必要な場合は、アプリの開発に使用している Google サービス アカウントにそれらのロールを付与します。

Secret Manager 権限を有効にしたリモート開発

認証にサービス アカウントを使用してリモートで開発しており、アプリケーションが Secret を使用している場合は、リモート開発の手順に追加していくつかの手順を行う必要があります。これらの手順では、Google サービス アカウントに特定の Secret Manager の Secret にアクセスに必要なロールを割り当てます。

  1. Secret Manager ツール ウィンドウを開くには、[ツール] > [Google Cloud Code] > Secret Manager に移動します。

  2. コード内でアクセスする Secret を選択します。

  3. [権限] タブをクリックし、編集 [権限を編集] をクリックして Secret の権限を構成します。

    Secret Manager で選択された [権限] タブとハイライト表示された [権限編集] アイコン

    ウェブブラウザの新しいウィンドウで Google Cloud コンソールが開き、Secret の Secret Manager 構成ページが表示されます。

  4. Google Cloud コンソールで [権限] タブをクリックし、[アクセス権を付与] をクリックします。

  5. [新しいプリンシパル] フィールドに、サービス アカウントを入力します。

  6. [ロールを選択] プルダウン フィールドで、[Secret Manager のシークレット アクセサー] のロールを選択します。

  7. 終わったら [Save] をクリックします。

    サービス アカウントには、このシークレットにアクセスする権限があります。

サポートを受ける

IntelliJ IDE でフィードバックを送信するか、問題を報告するには、[Tools] > [Cloud Code] > [Help / About] > [Submit feedback or report an issue] を選択します。ここから、GitHub で問題を報告したり、Stack Overflow で質問したりできます。