Membuat dan mengelola database

Halaman ini menjelaskan cara membuat, mengupdate, dan menghapus database Firestore dengan kompatibilitas MongoDB. Anda dapat membuat beberapa database Firestore per project. Anda dapat menggunakan beberapa database untuk menyiapkan lingkungan produksi dan pengujian, mengisolasi data pelanggan, serta untuk regionalisasi data.

Penggunaan paket gratis

Firestore menawarkan paket gratis yang memungkinkan Anda memulai tanpa biaya.

Paket gratis hanya berlaku untuk satu database Firestore per project. Database pertama yang dibuat dalam project tanpa database paket gratis akan mendapatkan paket gratis. Jika database dengan paket gratis yang diterapkan dihapus, database berikutnya yang dibuat akan menerima paket gratis.

Sebelum memulai

Anda harus menyelesaikan hal berikut sebelum membuat database:

  1. Make sure that billing is enabled for your Google Cloud project.

  2. Tetapkan peran Identity and Access Management yang sesuai seperti yang dijelaskan di bagian berikutnya.

Peran yang diperlukan

Untuk membuat dan mengelola database, Anda memerlukan peran Identity and Access Management Owner atau Datastore Owner. Peran ini memberikan izin yang diperlukan.

Izin yang diperlukan

Untuk mengelola database, Anda memerlukan izin berikut:

  • Membuat database: datastore.databases.create
  • Membaca konfigurasi database: datastore.databases.getMetadata
  • Mengonfigurasi database: datastore.databases.update
  • Menghapus database: datastore.databases.delete

Buat database

Untuk membuat database Firestore dengan kompatibilitas MongoDB, gunakan salah satu metode berikut:

Google Cloud console
  1. Di Google Cloud console, buka halaman Databases.

    Buka Databases

  2. Klik Create a Firestore Database.
  3. Masukkan ID database.
  4. Pilih Edisi Enterprise.
  5. Pilih lokasi untuk database Anda.
  6. (Opsional) Jika Anda perlu menyesuaikan enkripsi, klik Tampilkan Opsi Enkripsi, lalu konfigurasikan opsi enkripsi.
  7. Klik Create database.
gcloud CLI

Gunakan perintah gcloud firestore databases create dan tetapkan --edition=enterprise.

gcloud firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--edition=enterprise

Ganti kode berikut:

Untuk mengaktifkan perlindungan penghapusan, tambahkan flag --delete-protection. Anda tidak dapat menghapus database yang mengaktifkan perlindungan penghapusan hingga Anda menonaktifkan setelan ini. Setelan ini dinonaktifkan secara default.

gcloud firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--edition=enterprise \
--delete-protection
Terraform

Gunakan resource google_firestore_database dan tetapkan database_edition ke ENTERPRISE

resource "google_firestore_database" "database" {
  name             = "DATABASE_ID"
  location_id      = "LOCATION"
  type             = "FIRESTORE_NATIVE"
  database_edition = "ENTERPRISE"

  // Optional
  delete_protection_state = "DELETE_PROTECTION_STATE"
}

Ganti kode berikut:

Untuk mengaktifkan perlindungan penghapusan, tetapkan delete_protection_state ke DELETE_PROTECTION_ENABLED. Anda tidak dapat menghapus database yang mengaktifkan perlindungan penghapusan kecuali jika Anda menonaktifkan setelan ini. Setelan ini dinonaktifkan secara default.

ID Database

ID database yang valid mencakup ID yang sesuai dengan hal berikut:

  • Hanya berisi karakter huruf, angka, dan tanda hubung (-).
  • Huruf harus berupa huruf kecil.
  • Karakter pertama harus berupa huruf.
  • Karakter terakhir harus berupa huruf atau angka.
  • Minimum 4 karakter.
  • Maksimum 63 karakter.
  • Tidak boleh berupa UUID atau menyerupai UUID. Misalnya, jangan gunakan ID seperti f47ac10b-58cc-0372-8567-0e02b2c3d479.

Jika menghapus database, Anda tidak dapat langsung menggunakan kembali ID database hingga 5 menit.

Menghapus perlindungan

Gunakan perlindungan penghapusan untuk mencegah penghapusan database secara tidak sengaja. Perlindungan penghapusan berfungsi dengan cara berikut:

  • Anda tidak dapat menghapus database yang mengaktifkan perlindungan penghapusan kecuali jika Anda menonaktifkan perlindungan penghapusan.
  • Perlindungan penghapusan dinonaktifkan secara default.
  • Anda dapat mengaktifkan perlindungan penghapusan saat membuat database atau memperbarui konfigurasi database untuk mengaktifkan perlindungan penghapusan.

Mencantumkan database

Gunakan salah satu metode berikut untuk mencantumkan database Anda:

Konsol

Di Google Cloud console, buka halaman Databases.

Buka Databases

gcloud CLI

Gunakan perintah gcloud firestore databases list untuk mencantumkan semua database di project Anda.

gcloud firestore databases list

Melihat detail database

Untuk melihat detail tentang satu database, gunakan salah satu metode berikut:

Konsol
  1. Di Google Cloud console, buka halaman Databases.

    Buka Databases

  2. Pilih database dari daftar database.
gcloud CLI

Gunakan perintah gcloud firestore databases describe:

gcloud firestore databases describe --database=DATABASE_ID

Ganti DATABASE_ID dengan ID database.

Memperbarui konfigurasi database

Untuk memperbarui setelan konfigurasi database, gunakan perintah gcloud firestore databases update.

Gunakan perintah ini untuk mengubah, mengaktifkan, atau menonaktifkan perlindungan penghapusan.

Memperbarui setelan perlindungan penghapusan

Untuk mengaktifkan perlindungan penghapusan di database, gunakan perintah gcloud firestore databases update dengan flag --delete-protection. Contoh:

gcloud CLI
gcloud firestore databases update --database=DATABASE_ID --delete-protection

Ganti DATABASE_ID dengan ID database.

Untuk menonaktifkan perlindungan penghapusan di database, gunakan perintah gcloud firestore databases update dengan flag --no-delete-protection. Contoh:

gcloud CLI
gcloud firestore databases update --database=DATABASE_ID --no-delete-protection

Ganti DATABASE_ID dengan ID database.

Menghapus database

Untuk menghapus database, gunakan konsol atau alat command line. Menghapus database untuk operasi penghapusan tidak dikenai biaya.

Jika setelan perlindungan penghapusan database diaktifkan, Anda harus menonaktifkan perlindungan penghapusan terlebih dahulu.

Google Cloud console
  1. Di Google Cloud console, buka halaman Databases.

    Buka Databases

  2. Klik View more di kolom Actions untuk database yang ingin Anda hapus. Klik Hapus. Dialog akan muncul.
  3. Pada dialog Delete database?, konfirmasi penghapusan dengan mengetikkan ID database di kolom teks. Klik Delete. Konsol akan memberi tahu Anda apakah operasi berhasil atau gagal.

    Jika operasi gagal, lihat detail database dan pastikan perlindungan penghapusan dinonaktifkan. Untuk menonaktifkan perlindungan penghapusan, lihat bagian Memperbarui setelan perlindungan penghapusan.

gcloud CLI

Gunakan perintah `gcloud firestore databases delete`.

gcloud firestore databases delete --database=DATABASE_ID

Ganti DATABASE_ID dengan ID database yang akan dihapus.

Mengonfigurasi izin akses per database

Anda dapat menggunakan Identity and Access Management Conditions untuk mengonfigurasi izin akses di tingkat per database. Contoh berikut menggunakan Google Cloud CLI guna menetapkan akses kondisional untuk satu atau beberapa database. Anda juga dapat menetapkan kondisi IAM di Google Cloud konsol.

Melihat kebijakan IAM yang ada

gcloud projects get-iam-policy PROJECT_ID

Tetapkan PROJECT_ID ke project ID Anda.

Memberikan akses ke database

gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name=="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'

Tetapkan berikut ini:

  • PROJECT_ID: project ID Anda
  • EMAIL: alamat email yang mewakili akun tertentu. Contoh, [email protected].
  • DATABASE_ID: ID database.
  • TITLE: judul ekspresi opsional.
  • DESCRIPTION: deskripsi ekspresi opsional.

Mengecualikan akses ke satu database tertentu

gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name!="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'

Tetapkan berikut ini:

  • PROJECT_ID: project ID Anda
  • EMAIL: alamat email yang mewakili akun tertentu. Contoh, [email protected].
  • DATABASE_ID: ID database.
  • TITLE: judul ekspresi opsional.
  • DESCRIPTION: deskripsi ekspresi opsional.

Menghapus kebijakan untuk anggota dan peran tertentu

gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all

Tetapkan berikut ini:

  • PROJECT_ID: project ID Anda
  • EMAIL: alamat email yang mewakili akun tertentu. Contoh, [email protected].

Batasan

Anda dapat memiliki maksimum 100 database per project. Anda dapat menghubungi dukungan untuk meminta peningkatan batas ini.

Langkah berikutnya