Firestore データベースに接続する

Firestore を使用して、Cloud Run サービス用にスケーラブルな NoSQL クラウド データベースを設定します。Firestore は、モバイル、ウェブ、サーバー開発に対応した、柔軟でスケーラブルな NoSQL データベースです。

このページで説明する Cloud Run インテグレーションを使用すると、Cloud Run サービスを新しい Firestore データベースにすばやく接続できます。

始める前に

  • 統合する Cloud Run サービスがすでにデプロイされていることを確認します。
  • Firestore の料金ページを確認します。インテグレーションで使用した個々のリソースに対して課金されます。

必要なロール

Cloud Run インテグレーションを使用するには、ユーザーまたは管理者が 2 つの異なるプリンシパルに IAM のロールを付与する必要があります。

クリックして Google アカウントに必要なロールを表示

Cloud Run の統合を使用するために必要な権限を取得するには、プロジェクトに対する次の IAM ロールを Google アカウントに付与するよう管理者に依頼してください。

クリックしてサービス アカウントに必要なロールを表示

Cloud Run サービスをデプロイするには、自動作成された Compute Engine のデフォルトのサービス アカウントを使用するか、ユーザー管理のサービス アカウントを指定します。サービス アカウントには次のロールが必要です。

新しい Firestore データベースにサービスを接続する

構成を変更すると、新しいリビジョンが作成されます。明示的に更新しない限り、以降のリビジョンでも、この構成が自動的に設定されます。

コンソールまたはコマンドラインを使用して、Cloud Run サービスを Firestore データベースに接続できます。

コンソール

  1. Google Cloud コンソールで [Cloud Run] ページに移動します。

    Cloud Run に移動

  2. この統合で使用するサービスリストでサービスをクリックします。

  3. [統合] タブをクリックします。

  4. [統合を追加] をクリックします。

  5. [Firestore データベース] をクリックします。

  6. デフォルト名をそのまま使用するか、任意の名前に変更します。

    画像

  7. API のリストを有効にするように求められたら、[有効にする] をクリックし、API が有効になるまで待ちます。

  8. [リソース] の下に、この統合の結果として作成される新しいリソースが表示されます。

  9. [送信] をクリックし、統合とリソースが作成されるまで待ちます。この処理には最大 15 分を要する場合があります。

コマンドライン

  1. 最新の Google Cloud CLI に更新します。

    gcloud components update
  2. 統合を作成します。

    gcloud beta run integrations create \
    --type=firestore \
    --service=SERVICE \

    次のように置き換えます。

    • SERVICE: Cloud Run サービス名。

    必要に応じて、--service-account=SERVICE_ACCOUNT_EMAIL フラグを含めます。

    • SERVICE_ACCOUNT_EMAIL は、サービスのデプロイに使用されるユーザー管理のサービス アカウントのメールアドレス(PROJECT_NUMBER-compute@developer.gserviceaccount.com)に置き換えます。デフォルトのコンピューティング サービス アカウント(SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com)を使用する場合は、このフラグを省略します。

      Cloud Run インテグレーションをデプロイするときに、指定されたサービス アカウントを引き続き使用するには、次のコマンドを実行します。

      gcloud config set runapps/deployment-service-account
  3. 最大 15 分待ちます。その間、完全に構成された Firestore データベースが作成され、接続されます。さらに、データベースを識別する環境変数を含む新しい Cloud Run リビジョンが作成されます。プロセスが完了すると、次のメッセージが表示されます。

    [firestore] integration [firestore-xxx] has been updated successfully.
    
    To connect to the Firestore database, utilize the environment variable
    `FIRESTORE_DB_NAME`. This variable is added to the Cloud Run
    service for you.

    ステータスを確認するには、gcloud beta run integrations describe を実行します。

Firestore データベースのインテグレーションを表示する

Cloud Run サービスと Firestore データベースのインテグレーションの現在のステータスを表示するには:

コンソール

  1. Google Cloud コンソールで [Cloud Run] ページに移動します。

    Cloud Run に移動

  2. この統合で使用するサービスリストでサービスをクリックします。

  3. [統合] タブをクリックします。

  4. 目的の Firestore データベース インテグレーションを見つけて、[詳細を表示] をクリックします。

コマンドライン

  1. 利用可能なインテグレーションのリストを取得するには、次のコマンドを使用します。

    gcloud beta run integrations list
  2. 返されたリストの名前を使用して、その詳細を表示します。

    gcloud beta run integrations describe INTEGRATION_NAME

    INTEGRATION_NAME は、Firestore データベース インテグレーションの名前に置き換えます。

Firestore データベースのインテグレーションを削除する

インテグレーションを削除すると、インテグレーションに関連付けられているすべての Google Cloud リソースも削除されますが、Cloud Run サービスは削除されません。

Cloud Run サービスから Firestore データベースのインテグレーションを削除するには:

コンソール

  1. Google Cloud コンソールで [Cloud Run] ページに移動します。

    Cloud Run に移動

  2. 統合を削除するサービスをクリックします。

  3. [統合] タブをクリックします。

  4. 目的の Firebase データベース インテグレーションを見つけて、その右側にある省略記号アイコンをクリックし、[削除] をクリックします。

コマンドライン

  1. 利用可能なインテグレーションのリストを取得するには、次のコマンドを使用します。

    gcloud beta run integrations list
  2. 返されたリストの名前を使用して、インテグレーションを削除します。

    gcloud beta run integrations delete INTEGRATION_NAME

    次のように置き換えます。

    • INTEGRATION_NAME は、Firestore データベース インテグレーションの名前に置き換えます。

    必要に応じて、次のフラグ オプションを使用できます。

    オプション 説明
    --service-account 削除オペレーションを実行するユーザー管理のサービス アカウントのメールアドレス。

コードで Firestore データベースにアクセスする

インテグレーションが完了すると、Cloud Run サービスコードで使用する環境変数 FIRESTORE_DB_NAME が Cloud Run によって自動的に追加されます。

Firestore を使用するサービスのサンプルコード

Cloud Run と Firestore のコードサンプルについては、Firestore のドキュメントをご覧ください。

制限事項