Jump to content

1 つのプロジェクトで複数の Firestore データベースを管理


Recommended Posts

※この投稿は米国時間 2023 年 7 月 8 日に、Google Cloud blog に投稿されたものの抄訳です。

このたび、Google Cloud の単一プロジェクトにおける複数 Firestore データベースのサポートを開始しましたので、お知らせいたします。1 つのプロジェクトに複数のデータベースを作成し、顧客データやマイクロサービス、開発 / テスト / ステージングの各種環境を隔離して管理できるようになりました。

この複数データベースのサポートには以下の機能が含まれます。

  • Firestore データベースの CRUD 管理: Firestore で新しい API エンドポイント、Terraform リソースgcloud CLI コマンド、Firebase CLI コマンドを使用して、1 つ以上の Firestore データベースを管理できるようになりました。

  • Identity and Access Management による条件付きアクセス制御: IAM Conditions または Firebase セキュリティ ルールを使用して、異なる Firestore データベースに異なるセキュリティ ポリシーを適用できるようになりました。

  • Firestore データベースの 2 つのモードをサポート: 同一プロジェクト内で新しいデータベースを Firestore の Native モードと Datastore モードのどちらでも作成できます。

  • すべての Firestore リージョンをサポート: 同一プロジェクト内で新しいデータベースを、サポートされているすべての Firestore リージョンに作成できます。

  • 課金処理: データベースの費用を Cloud Billing と BigQuery を通じて個別にトラッキングできます。これによって、各データベースの使用に対する消費量の確認と予算の編成が容易になります。

  • Cloud Monitoring: Firestore の Cloud Monitoring 指標と統計情報がデータベース レベルで集約されました。

サンプルのチュートリアル

Firestore はお客様のアプリケーションでも高い利便性を発揮できるかもしれません。エンドツーエンドの例で、その仕組みご確認ください。

Firestore データベースを作成するには、データベースの識別子、モード、ロケーションを指定する必要があります。Firestore データベースには複数の作成方法があります。たとえば、gcloud CLI を使用して Firestore ネイティブ データベースを「test」という名前で us-west1 ロケーションに作成する場合は、以下のコマンドを使用します。

code_block
[StructValue([(u'code', u'$ gcloud firestore databases create --database=test --location=us-west1 --type=firestore-native'), (u'language', u''), (u'caption', <wagtail.wagtailcore.rich_text.RichText object at 0x3e8093385d50>)])]

データベースが作成されたら、Firestore / Datastore コンソールからアクセスできます。

firestore.max-1600x1600

Firestore データベースが不要になったら、次のコマンドを実行して削除できます。

code_block
[StructValue([(u'code', u'$ gcloud alpha firestore databases delete --database=test --location=nam5 --type=firestore-native'), (u'language', u''), (u'caption', <wagtail.wagtailcore.rich_text.RichText object at 0x3e8093385dd0>)])]

これを実行するだけで、あとは Firestore が自動的にデータの削除を完了します。

作成したデータベースで Firestore クライアント ライブラリを使用する場合は、適切な Firestore データベース インスタンスを取得できるようにデータベース名を指定します。データベース名を指定しない場合、クライアント ライブラリは元の(デフォルトの)データベースに基づきます。Java 対応の Firebase Admin SDK を使用して「test」という名前のデータベースを記述する例は、次のとおりです。

code_block
[StructValue([(u'code', u'// Firebase \u30a2\u30d7\u30ea\u3092\u521d\u671f\u5316\r\nFirebaseApp app = FirebaseApp.getInstance();\r\n// \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9 ID \u304c\u300ctest\u300d\u306e Firestore \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u521d\u671f\u5316\r\nFirebaseFirestore db = FirebaseFirestore.getInstance(app, \u201ctest\u201d)\r\n// \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8 \u30ea\u30d5\u30a1\u30ec\u30f3\u30b9\r\nDocumentReference docRef = db.collection(\u201ccol\u201d).document(\u201cdoc\u201d);\r\n// \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3078\u306e\u66f8\u304d\u8fbc\u307f\r\nwaitFor(docRef.set(Collections.singletonMap(\u201cfoo\u201d, \u201cbar\u201d)));'), (u'language', u''), (u'caption', <wagtail.wagtailcore.rich_text.RichText object at 0x3e809336f7d0>)])]

他の言語を使用した例については、データベースへのアクセスをご覧ください。

次のステップ

Firestore での複数データベースの設定および構成方法について詳しくは、こちらのドキュメントをご覧ください。


- Firestore、ソフトウェア エンジニア Sichen Liu
- Firestore、シニア プロダクト マネージャー リード Minh Nguyen

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...