Project SQL Connect Anda terdiri dari dua elemen infrastruktur utama:
- Satu atau beberapa SQL Connect instance layanan
- Satu atau beberapa Cloud SQL untuk instance PostgreSQL
Panduan ini membahas cara menyiapkan dan mengelola instance layanan SQL Connect, serta memperkenalkan cara mengelola instance Cloud SQL terkait.
Mengonfigurasi region untuk Firebase SQL Connect
Project yang menggunakan SQL Connect memerlukan setelan lokasi.
Saat membuat instance layanan SQL Connect baru, Anda akan diminta untuk memilih lokasi layanan.
Lokasi yang tersedia
SQL Connect layanan dapat dibuat di region berikut.
- asia-east1
- asia-east2
- asia-northeast1
- asia-northeast2
- asia-northeast3
- asia-south1
- asia-southeast1 (tidak tersedia untuk uji coba paket Spark)
- asia-southeast2 (tidak tersedia untuk uji coba paket Spark)
- australia-southeast1
- australia-southeast2
- europe-central2
- europe-north1
- europe-southwest1
- europe-west1
- europe-west2
- europe-west3
- europe-west4
- europe-west6
- europe-west8
- europe-west9
- me-west1
- northamerica-northeast1
- northamerica-northeast2
- southamerica-east1
- southamerica-west1
- us-central1
- us-east1
- us-east4
- us-south1
- us-west1
- us-west2
- us-west3
- us-west4
Mengelola instance layanan SQL Connect
Membuat layanan
Untuk membuat layanan baru, gunakan konsol Firebase atau jalankan inisialisasi project lokal menggunakan CLI Firebase. Alur kerja ini membuat layanan SQL Connect baru.
Alur ini juga memandu Anda melalui:
- Menyediakan instance Cloud SQL baru (tingkat gratis)
- Menautkan instance Cloud SQL yang ada ke SQL Connect (paket Blaze)
Mengelola pengguna
SQL Connect menyediakan alat untuk mengelola akses pengguna yang mengikuti prinsip hak istimewa terendah (memberikan setiap pengguna atau akun layanan izin minimum yang diperlukan untuk mendukung fungsi yang diperlukan) dan konsep kontrol akses berbasis peran (RBAC) (dengan peran yang telah ditentukan untuk mengelola izin database, sehingga menyederhanakan pengelolaan keamanan).
Untuk menambahkan anggota project sebagai pengguna yang dapat mengubah SQL Connect instance di project Anda, gunakan konsol Firebase untuk memilih peran pengguna yang telah ditentukan yang sesuai.
Peran ini memberikan izin menggunakan Identity and Access Management (IAM). Peran adalah kumpulan izin. Saat menetapkan peran kepada anggota project, Anda memberikan anggota project tersebut semua izin yang dimiliki oleh peran tersebut. Lihat informasi selengkapnya di:
- Ringkasan peran IAM Firebase
- Daftar mendetail peran SQL Connect
Memilih peran untuk mengaktifkan alur kerja tertentu
Peran IAM memungkinkan alur kerja CLI Firebase untuk mengelola project SQL Connect Anda.
| Perintah CLI, alur kerja lainnya | Peran yang diperlukan |
|---|---|
firebase init dataconnect
|
|
firebase deploy -–only dataconnect
|
|
firebase dataconnect:sql:diff
|
|
firebase dataconnect:sql:migrate
|
|
firebase dataconnect:sql:grant
|
|
Memantau performa layanan SQL Connect
Memahami performa layanan
Performa layanan SQL Connect dan Cloud SQL untuk PostgreSQL dapat memengaruhi pengalaman Anda.
- Untuk layanan Cloud SQL untuk PostgreSQL, lihat panduan umum dalam dokumentasi Kuota dan batas.
Untuk layanan SQL Connect, ada kuota untuk permintaan GraphQL, yang memengaruhi kecepatan Anda dapat memanggil dan menjalankan kueri:
- Kuota per project per region sebesar 24.000 permintaan GraphQL per menit
Jika Anda mengalami batas kuota tersebut, hubungi dukungan Firebase untuk menyesuaikan kuota yang relevan.
Memantau performa, penggunaan, dan penagihan layanan
Anda dapat memantau permintaan, error, dan kecepatan operasi, baik secara global maupun per operasi di konsol Firebase.
Mengelola instance Cloud SQL
Batasan uji coba gratis
Fitur Cloud SQL untuk PostgreSQL berikut tidak didukung dalam uji coba gratis Spark atau Blaze:
- Tingkat mesin yang berbeda dari db-f1-micro
- Mengubah resource instance Anda, seperti region, penyimpanan, memori, CPU
- Versi PostgreSQL selain 15.x
- Replika baca
- Alamat IP instance pribadi
- Ketersediaan tinggi (multi-zona); hanya instance zona tunggal yang didukung
- Edisi Enterprise Plus
- Backup otomatis
- Peningkatan penyimpanan otomatis.
Batasan database orientasi sementara
Saat menambahkan SQL Connect ke project Firebase, Anda dapat langsung mulai membuat prototipe model data dan memuat data, karena data akan disimpan dalam database sementara. Perhatikan bahwa instance Cloud SQL untuk PostgreSQL permanen Anda akan memerlukan waktu 5 hingga 20 menit untuk disediakan. Data awal yang Anda muat akan otomatis dimigrasikan ke database PostgreSQL permanen setelah disediakan.
Database sementara ini sangat cocok untuk mempelajari skema dan operasi CRUD Anda.
Jika tidak ingin menggunakan database sementara, tunggu hingga instance Anda disediakan.Cloud SQL
Database sementara bukan database PostgreSQL dan tidak menyediakan semua fitur PostgreSQL.
Batasan pentingnya adalah:
- Ukuran database harus kurang dari 1 MB
- Jumlah baris per tabel harus kurang dari 1.000
- Kurang dari 1 kueri per detik
- Tidak ada dukungan untuk penelusuran teks lengkap
- Tidak ada dukungan untuk pembuatan embedding vektor
- Tidak ada dukungan untuk fitur SQL seperti
@view,@col(dataType), atau SQL native.
Mengelola instance Cloud SQL
Secara umum, Anda dapat mengelola instance Cloud SQL menggunakan konsol Google Cloud untuk melakukan alur kerja berikut.
Menghentikan dan memulai ulang instance Cloud SQL
Membuat dan menghapus Cloud SQL database (dalam instance)
Memulai instance database PostgreSQL dengan flag dan menggunakan a berbagai ekstensi
Memantau performa dengan Cloud SQL fitur observabilitas di Google Cloud konsol
Mengelola Cloud SQL akses dan keamanan dengan fitur seperti IAM, Secret Manager, enkripsi data, dan proxy autentikasi
Menambahkan, menghapus, dan mengelola Cloud SQL pengguna.
Untuk alur kerja ini dan alur kerja lainnya, lihat Cloud SQL untuk dokumentasi PostgreSQL.
Memberikan peran pengguna PostgreSQL
SQL Connect menyediakan alat untuk mengelola akses pengguna yang mengikuti prinsip hak istimewa terendah (memberikan setiap pengguna atau akun layanan izin minimum yang diperlukan untuk mendukung fungsi yang diperlukan) dan konsep kontrol akses berbasis peran (RBAC) (dengan peran yang telah ditentukan untuk mengelola izin database, sehingga menyederhanakan pengelolaan keamanan).
Dalam beberapa kasus, Anda mungkin ingin terhubung langsung ke database yang dikelola SQL Connect Cloud SQL melalui klien SQL pilihan Anda menggunakan, misalnya, Cloud Run, Cloud Functions atau GKE.
Untuk mengaktifkan koneksi tersebut, Anda harus memberikan izin SQL dengan:
- Menetapkan peran IAM
roles/cloudsql.clientke pengguna atau akun layanan yang perlu terhubung ke instance, baik dari konsol Google Cloud maupun menggunakan gcloud CLI - Memberikan peran PostgreSQL yang diperlukan menggunakan Firebase CLI
Menetapkan peran IAM Cloud SQL
Untuk mengetahui informasi tentang cara menggunakan Cloud SQL untuk PostgreSQL guna menetapkan IAM
peran roles/cloudsql.client, lihat
Peran dan izin.
Memberikan peran PostgreSQL
Dengan Firebase CLI, Anda dapat memberikan peran PostgreSQL yang telah ditentukan kepada pengguna
atau akun layanan yang terkait dengan project Anda menggunakan
firebase dataconnect:sql:grant command.
Misalnya, untuk memberikan peran penulis, jalankan perintah ini menggunakan Firebase CLI:
firebase dataconnect:sql:grant --role writerUntuk mengetahui detailnya, lihat panduan referensi Firebase CLI.
Mengintegrasikan database Cloud SQL untuk PostgreSQL yang ada
Alur penyediaan dan pengelolaan database default mengasumsikan project Anda
menggunakan database baru (greenfield), dan saat Anda memanggil firebase deploy,
SQL Connect akan menampilkan perubahan skema database yang akan dilakukan dan
melakukan migrasi setelah Anda menyetujuinya.
Untuk database yang ada (brownfield), Anda mungkin memiliki alur kerja sendiri untuk mengelola skema dan tidak dapat menggunakan SQL Connect alat untuk migrasi, tetapi ingin menggunakan database Anda dalam project SQL Connect untuk memanfaatkan pembuatan SDK-nya untuk seluler dan web, otorisasi berbasis kueri, pengelolaan koneksi klien, dan lainnya.
Bagian ini menawarkan panduan tentang kasus terakhir: mengintegrasikan database yang ada dengan SQL Connect.
Mengintegrasikan database yang ada ke dalam project SQL Connect
Alur kerja untuk mengintegrasikan database yang ada umumnya melibatkan langkah-langkah berikut:
Selama penyiapan project SQL Connect di konsol Firebase, pilih instance dan database.
Menggunakan Firebase CLI, jalankan perintah
firebase dataconnect:sql:setupdan tolak opsi untuk mengizinkan SQL Connect menangani migrasi SQL.Untuk mencegah perubahan pada skema database yang tidak didorong oleh alat kustom Anda, perintah
setupakan menetapkan peran pembaca dan penulis yang sesuai, tetapi bukan peranowner. Informasi selengkapnya tentang perintahsetupdan peran PostgreSQL tersedia di Firebase panduan referensi CLI.Tulis skema GraphQL SQL Connect yang cocok dengan skema database Anda.
Anda hanya dapat men-deploy skema, kueri, dan mutasi GraphQL jika skema GraphQL Anda kompatibel dengan skema PostgreSQL.
Untuk menyederhanakan penyelarasan kedua skema, kami menyediakan perintah
firebase dataconnect:sql:diff, yang akan memberi Anda pernyataan SQL yang diperlukan untuk memigrasikan database. Anda dapat menggunakan perintah ini untuk menyempurnakan skema GraphQL secara berulang agar sesuai dengan skema database yang ada.Selanjutnya, Anda dapat melakukan iterasi dengan cepat pada skema, kueri, dan mutasi GraphQL di lingkungan pengembangan lokal. Kemudian, jika sudah puas, Anda dapat menggunakan
firebase dataconnect:sql:diffuntuk mendapatkan pernyataan migrasi SQL yang dapat Anda terapkan ke PostgreSQL menggunakan alat dan alur kustom.Atau, Anda dapat melakukan perubahan langsung ke database PostgreSQL terlebih dahulu, lalu mencoba memindahkannya kembali ke skema GraphQL. Sebaiknya gunakan pendekatan GraphQL terlebih dahulu, karena mungkin ada kasus ketika perubahan skema tidak didukung. Selain itu, jika Anda men-deploy perubahan yang membuat skema PostgreSQL tidak kompatibel dengan kueri atau mutasi konektor yang di-deploy, konektor tersebut mungkin berhenti berfungsi atau berperilaku tidak semestinya.