Database mode Datastore kini disediakan tanpa ditautkan dari App Engine secara default.
Jika database Anda ditautkan ke App Engine, Anda dapat membatalkan tautan database.
App Engine yang aktif
Aplikasi App Engine yang aktif berarti ada aplikasi dalam project yang sama dan aplikasi ini tidak dinonaktifkan. Aplikasi tersebut tidak memerlukan penggunaan apa pun. Aplikasi dan database tertaut harus ada di region yang sama.
Jika Anda menonaktifkan aplikasi App Engine, Anda juga menonaktifkan akses ke database mode Datastore yang ditautkan ke aplikasi tersebut.
Melihat status penautan App Engine
Anda dapat memeriksa status pembatalan tautan App Engine menggunakan REST API:
curl --header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header "Content-type: application/json" \
"https://firestore.googleapis.com/v1/projects/PROJECT_ID/databases/(default)"
Dalam respons, lihat nilai appEngineIntegrationMode
. Jika nilainya
adalah DISABLED
, database Anda tidak ditautkan ke aplikasi App Engine.
Membatalkan tautan database dari App Engine
Anda dapat membatalkan tautan database mode Datastore dari aplikasi App Engine untuk menghapus persyaratan App Engine yang aktif. Saat membatalkan tautan database, Anda dapat menonaktifkan App Engine tanpa memengaruhi akses ke database Anda.Pembatalan tautan adalah operasi permanen.
Jika membatalkan tautan database, Anda tidak dapat menggunakan fitur Nonaktifkan Penulisan di halaman Admin Datastore. Jika operasi tulis saat ini dinonaktifkan, membatalkan tautan database akan mengaktifkan operasi tulis.
Sebelum membatalkan tautan database dari App Engine, pastikan Anda mengaktifkan Firestore API dan memperbarui izin IAM.
Untuk membatalkan tautan database, buka halaman Admin Datastore dan klik Batalkan tautan database dari aplikasi. Operasi pembatalan tautan dapat memerlukan waktu hingga lima menit agar berlaku.
Memigrasikan Resource App Engine Terraform
Jika sebelumnya Anda mengelola database mode Datastore melalui
resource Terraform google_app_engine_application
, Anda dapat menggunakan
resource Terraform google_firestore_database
.
Untuk mengetahui petunjuk umum tentang cara mengelola database mode Datastore melalui Terraform, lihat Mengotomatiskan pembuatan database.
Buat resource google_firestore_database
Di file konfigurasi Terraform, buat resource
google_firestore_database
baru:
datastore.tf
resource "google_firestore_database" "database" { project = "project" name = "(default)" location_id = "location" type = "DATASTORE_MODE" app_engine_integration_mode = "DISABLED" // Optional, but recommended for safety delete_protection_state = "DELETE_PROTECTION_ENABLED" }
Lihat Lokasi penyimpanan data untuk mengetahui daftar lokasi yang tersedia. Pilih lokasi yang sesuai dengan lokasi database yang ada.
Mengimpor database mode Datastore yang ada
Pertama, pastikan Firestore API diaktifkan.
Selanjutnya, impor database mode Datastore yang ada ke status Terraform Anda:
terraform import google_firestore_database.database "(default)"
Kemudian jalankan:
terraform plan
Periksa output untuk memastikan impor berhasil diselesaikan. Jika output menampilkan perubahan pada kolom, pastikan perubahan ini diinginkan. Jika output mencakup baris yang mirip dengan:
google_firestore_database.database must be replaced
Kemudian, periksa file konfigurasi Terraform Anda untuk melihat apakah ada kesalahan, terutama di kolom project, location, atau name, lalu jalankan terraform plan
lagi. Kolom apa pun yang memerlukan Terraform untuk mengganti database Anda akan ditandai dengan # forces replacement
dalam output rencana.
Setelah Anda puas dengan output rencana Terraform, jalankan:
terraform apply
Menghapus resource google_app_engine_application
Jika Anda memiliki resource google_app_engine_application
yang ada di
file konfigurasi Terraform, hapus resource tersebut dari file sekarang.
Setelah itu, jalankan lagi:
terraform plan
Anda akan melihat output yang mirip dengan yang berikut:
Terraform will perform the following actions: # google_app_engine_application.app will be destroyed # (because google_app_engine_application.app is not in configuration)
Setelah Anda puas dengan output rencana, jalankan
terraform apply
Terraform saat ini tidak mendukung penghapusan resource App Engine; meskipun Terraform akan menampilkan resource sebagai telah dihapus, Terraform tidak akan benar-benar menghapus aplikasi App Engine. Namun, aplikasi App Engine tidak akan lagi dikelola oleh Terraform.
Persyaratan Firestore API
Sebelumnya, semua database Firestore dalam mode Datastore ditautkan ke aplikasi App Engine. Database mode Datastore kini disediakan tanpa ditautkan dari App Engine secara default. Selain itu, semua database, baik yang sudah ada maupun yang baru dibuat, kini memiliki persyaratan berikut:
- Untuk mengelola database dari konsol Google Cloud dan gcloud CLI, Firestore API harus diaktifkan di project. Hal ini diperlukan untuk database Firestore dalam mode Native dan Firestore dalam mode Datastore.
Saat dijalankan dari Google Cloud konsol atau gcloud CLI, operasi administratif di bawah akan memerlukan izin IAM berikut:
- Buat database:
datastore.databases.create
- Melihat metadata database:
datastore.databases.getMetadata
- Mengedit metadata database:
datastore.databases.update
- Buat database:
Jika Anda belum mengaktifkan Firestore API, Anda akan melihat error di halaman Datastore di konsol Google Cloud yang menyertakan pemberitahuan berikut:
Firestore API diperlukan untuk mengelola database Anda.
Error ini juga menyertakan tombol untuk mengaktifkan Firestore API. Klik tombol untuk mengaktifkan API.
Anda juga harus memverifikasi izin IAM untuk memastikan akses Anda ke database tidak terpengaruh.
Pastikan akun yang mengakses database melalui konsol Google Cloud memiliki izin yang diperlukan, yang tercantum di atas.
Peran bawaan seperti Datastore User dan Datastore Viewer mencakup izin yang diperlukan. Jika Anda membuat peran IAM kustom, Anda mungkin perlu memperbaruinya untuk menyertakan izin di atas.
Jika sebelumnya Anda menentukan peran khusus untuk Datastore, peran tersebut mungkin tidak memiliki izin datastore.databases.getMetadata
. Pastikan akses berkelanjutan dengan memperbarui peran khusus Anda dengan datastore.databases.getMetadata
atau
dengan menggunakan peran standar.
Mengaktifkan API melalui Terraform
Jika mau, Anda juga dapat mengaktifkan Firestore API melalui Terraform:
resource "google_project_service" "firestore" { project = "project" service = "firestore.googleapis.com" }
Jika memiliki resource google_firestore_database
, Anda dapat menambahkan
dependensi pada resource google_project_service
untuk memastikan
API diaktifkan sebelum Terraform mencoba membuat database:
resource "google_firestore_database" "database" { // ... depends_on = [google_project_service.firestore] }