Anda dapat mengotomatiskan pembuatan database Cloud Firestore dengan mengikuti proses berikut:
- Buat project Google Cloud baru. Setiap project dibatasi untuk satu database Cloud Firestore.
- Buat aplikasi App Engine. Cloud Firestore bergantung pada App Engine. Anda harus mengaktifkan App Engine untuk dapat menggunakan Cloud Firestore.
- Buat database Cloud Firestore.
Halaman ini menjelaskan cara menyelesaikan proses ini menggunakan REST API, alat command-line gcloud, dan Terraform.
Membuat database dengan REST API
Anda dapat menyediakan database Cloud Firestore menggunakan Resource Manager API dan App Engine Admin API.
Autentikasi dan otorisasi
Untuk mengakses Resource Manager API dan App Engine Admin API, Anda harus mengautentikasi permintaan dengan token akses. Token akses Anda memerlukan cakupan OAuth 2.0:
https://www.googleapis.com/auth/cloud-platform
Untuk menyiapkan autentikasi aplikasi, baca artikel mengenai menyiapkan autentikasi untuk aplikasi produksi server ke server.
Saat mengembangkan dan menguji aplikasi, Anda dapat memperoleh token akses menggunakan:
gcloud auth application-default print-access-token
.
Otorisasi
Akun layanan atau akun pengguna terautentikasi memerlukan izin resourcemanager.projects.create
untuk membuat project baru.
Peran IAM Project Creator, misalnya, memberikan izin ini.
Untuk memberikan peran ini, baca artikel mengenai cara memberikan, mengubah, dan mencabut akses ke resource.
Membuat database dan project baru
- Gunakan metode projects.create untuk memulai operasi pembuatan project. Dalam isi permintaan,
tentukan resource
Project
, misalnya:HTTP
POST https://cloudresourcemanager.googleapis.com/v1/projects HTTP/1.1 Authorization: Bearer access-token Accept: application/json Content-Type: application/json { "projectId": "project-id" }
dengan:
access-token
adalah token akses terautentikasi.project-id
adalah project ID unik.
Jika berhasil, permintaan akan menampilkan nama operasi:
200: { "name": "operations/cp.6311184959990822268" }
-
Gunakan nama operasi dari langkah sebelumnya dan metode operations.get Resource Manager untuk mengonfirmasi pembuatan project:
HTTP
GET https://cloudresourcemanager.googleapis.com/v1/operations/operation-name HTTP/1.1 Authorization: Bearer access-token Accept: application/json
Saat pembuatan project berhasil, respons yang muncul mencakup kolom berikut:
"done": true,
-
Gunakan metode apps.create App Engine Admin API untuk membuat aplikasi App Engine dan database Cloud Firestore. Dalam isi permintaan, tentukan resource Application dan sertakan kolom
databaseType
, misalnya:HTTP
POST https://appengine.googleapis.com/v1/apps HTTP/1.1 Authorization: Bearer access_token Accept: application/json Content-Type: application/json { "databaseType": "CLOUD_FIRESTORE", "id": "project-id", "locationId": "location" }
dalam hal ini:
- project-id adalah ID project yang Anda buat.
- location menetapkan lokasi aplikasi App Engine dan database Cloud Firestore Anda.
Setelah lokasi ditetapkan, Anda tidak dapat mengubahnya. Untuk mengetahui daftar lengkap lokasi yang didukung, baca bagian Lokasi App Engine.
App Engine dan Cloud Firestore mendukung lokasi yang sama, tetapi region App Engine berikut dipetakan ke multi-region Cloud Firestore:
us-central
(Iowa) membuat database Cloud Firestore di multi-regionnam5
(Amerika Serikat).europe-west
(Belgia) membuat database Cloud Firestore di multi-regioneur3
(Eropa).
Permintaan akan menampilkan nama operasi:
200: { "name": "apps/project-id/operations/8612e502-4aeb-4f12-9e41-bbac0a0b819c", "metadata": { "@type": "type.googleapis.com/google.appengine.v1.OperationMetadataV1", "method": "google.appengine.v1.Applications.CreateApplication", "insertTime": "2020-06-05T23:34:32.587Z", "user": "username", "target": "apps/project-id" } }
-
Gunakan nama operasi dari langkah sebelumnya dan apps.operations.get untuk mengonfirmasi pembuatan database:
HTTP
GET https://appengine.googleapis.com/v1/operation-name HTTP/1.1 Authorization: Bearer access-token Accept: application/json
Saat operasi berhasil, respons yang ditampilkan mencakup kolom berikut:
"done": true,
Menambahkan akun penagihan dan layanan Firebase
Untuk mengaitkan akun penagihan dengan project secara terprogram, gunakan metode projects.updateBillingInfo.
Untuk mengaktifkan layanan Firebase untuk project Anda secara terprogram, pelajari cara menyiapkan dan mengelola project Firebase menggunakan Management REST API.
Membuat database dengan gcloud
Anda dapat menggunakan alat command line gcloud untuk mengotomatiskan pembuatan database dalam skrip Bash atau PowerShell. Dalam skrip Anda, lakukan langkah-langkah berikut:
Buat project baru dengan
gcloud projects create
:gcloud projects create project-id
Aktifkan App Engine dengan
gcloud app create
:gcloud app create --region=region --project=project-id
dengan region sebagai lokasi aplikasi App Engine dan database Cloud Firestore Anda. Setelah lokasi ditetapkan, Anda tidak dapat mengubahnya. Untuk mengetahui daftar lengkap lokasi yang didukung, baca bagian lokasi App Engine.
App Engine dan Cloud Firestore mendukung lokasi yang sama, tetapi region App Engine berikut dipetakan ke multi-region Cloud Firestore:
us-central
(Iowa) membuat database Cloud Firestore di multi-regionnam5
(Amerika Serikat).europe-west
(Belgia) membuat database Cloud Firestore di multi-regioneur3
(Eropa).
Aktifkan App Engine Admin API dengan
gcloud services enable
:gcloud services enable appengine.googleapis.com --project=project-id
Buat database Cloud Firestore dengan
gcloud alpha firestore databases create
ataugcloud alpha datastore databases create
:gcloud alpha firestore databases create --project=project-id --region=region
Untuk membuat database Cloud Firestore dalam mode Datastore, gunakan:
gcloud alpha datastore databases create --project=project-id --region=region
Untuk region, nilai yang digunakan harus sama dengan yang Anda gunakan untuk mengaktifkan App Engine.
Membuat database dengan Terraform
Untuk menyediakan database Cloud Firestore dengan Terraform, gunakan resource google_firestore_database
.
Misalnya, file konfigurasi Terraform berikut membuat project baru dan menyediakan database Cloud Firestore:
firestore.tf
provider "google" { credentials = file("credentials-file") } resource "google_project" "my_project" { name = "My Project" project_id = "project-id" } resource "google_project_service" "firestore" { project = google_project.my_project.project_id service = "firestore.googleapis.com" } resource "google_firestore_database" "database" { project = google_project.my_project.project_id name = "(default)" location_id = "location" type = "FIRESTORE_NATIVE" depends_on = [google_project_service.firestore] }
dengan:
- credentials-file adalah jalur ke file kunci akun layanan Anda.
- project-id adalah project ID Anda. Project ID harus unik.
- location adalah lokasi kedua database Cloud Firestore Anda. Setelah lokasi ditetapkan, Anda tidak dapat mengubahnya. Untuk mengetahui daftar lengkap lokasi yang didukung, baca artikel Lokasi Cloud Firestore.
Jika Anda ingin menggunakan App Engine, gunakan resource google_app_engine_application
. Tetapkan database_type
ke CLOUD_FIRESTORE
atau CLOUD_DATASTORE_COMPATIBILITY
.
provider "google" { credentials = file("credentials-file") } resource "google_project" "my_project" { name = "My Project" project_id = "project-id" } resource "google_app_engine_application" "app" { project = google_project.my_project.project_id location_id = "location" database_type = "CLOUD_FIRESTORE" }
us-central
(Iowa) membuat database Cloud Firestore di multi-regionnam5
(Amerika Serikat).europe-west
(Belgia) membuat database Cloud Firestore di multi-regioneur3
(Eropa).
Selain itu, Cloud Firestore tersedia di beberapa region yang tidak dimiliki App Engine.