Halaman ini berisi informasi dan contoh untuk menghubungkan ke instance Cloud SQL dari layanan yang berjalan di Cloud Run Functions.
Untuk petunjuk langkah demi langkah cara menjalankan aplikasi web contoh Cloud Run Functions yang terhubung ke Cloud SQL, lihat panduan memulai untuk menghubungkan dari Cloud Run Functions.
Cloud SQL adalah layanan database yang terkelola sepenuhnya untuk membantu Anda menyiapkan, memelihara, mengelola, dan mengatur database relasional Anda di cloud.
Cloud Run Functions adalah solusi komputasi ringan bagi developer untuk membuat fungsi mandiri, tujuan tunggal yang merespons peristiwa Cloud tanpa perlu mengelola lingkungan server atau runtime.
Menyiapkan instance Cloud SQL
- Aktifkan Cloud SQL Admin API di project Google Cloud yang menjadi sumber koneksi, jika Anda
belum melakukannya:
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan izin
serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Service Usage Admin (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran. - Membuat instance Cloud SQL untuk SQL Server. Sebaiknya pilih
lokasi instance Cloud SQL di region yang sama dengan layanan Cloud Run Functions Anda untuk mendapatkan latensi yang lebih baik, menghindari beberapa biaya jaringan, dan mengurangi risiko kegagalan lintas region.
Secara default, Cloud SQL menetapkan alamat IP publik ke instance baru. Anda juga memiliki opsi untuk menetapkan alamat IP pribadi. Untuk mengetahui informasi selengkapnya tentang opsi konektivitas untuk keduanya, lihat halaman Menghubungkan Ringkasan.
- Saat membuat instance, Anda dapat memilih
hierarki sertifikat server (CA) untuk instance, lalu mengonfigurasi hierarki
sebagai
serverCaModeuntuk instance. Anda harus memilih opsi CA per instance (GOOGLE_MANAGED_INTERNAL_CA) sebagai mode CA server untuk instance yang ingin Anda hubungkan dari aplikasi web.
Mengonfigurasi fungsi Cloud Run
Langkah-langkah untuk mengonfigurasi Cloud Run Functions bergantung pada jenis alamat IP yang Anda tetapkan ke instance Cloud SQL.IP Publik (default)
Cloud Run Functions mendukung koneksi ke Cloud SQL untuk SQL Server melalui IP publik menggunakan konektor Go, Java, dan Python.
Untuk mengonfigurasi Cloud Run Functions guna mengaktifkan koneksi ke instance Cloud SQL:- Pastikan instance yang dibuat di atas memiliki alamat IP publik. Anda dapat mengonfirmasi hal ini di halaman Ringkasan untuk instance di konsolGoogle Cloud . Jika Anda perlu menambahkan alamat IP publik, lihat Mengonfigurasi IP publik.
- Dapatkan INSTANCE_CONNECTION_NAME instance. Nilai ini
tersedia:
- Pada halaman Ringkasan untuk instance, di konsolGoogle Cloud , atau
- Dengan menjalankan perintah berikut:
gcloud sql instances describe [INSTANCE_NAME]
-
Konfigurasi akun layanan untuk fungsi Anda. Jika akun layanan yang memberi otorisasi
merupakan project yang berbeda dengan instance
Cloud SQL, Anda harus mengaktifkan Cloud SQL Admin API, lalu menambahkan peran IAM
Cloud SQL Clientke kedua project tersebut. - Pastikan bahwa akun layanan memiliki peran ini agar akun tersebut dapat terhubung ke Cloud SQL.
- Jika Anda menggunakan
Cloud Run Functions dan bukan Cloud Run Functions (generasi ke-1), hal
berikut ini diperlukan (lihat juga
Konfigurasi Cloud Run):
- Pertama-tama, deploy fungsi Anda.
Saat Anda pertama kali mulai membuat fungsi Cloud Run di konsol Google Cloud , layanan Cloud Run yang mendasarinya belum dibuat. Anda tidak dapat mengonfigurasi koneksi Cloud SQL hingga layanan tersebut dibuat (dengan men-deploy fungsi Cloud Run). - Di konsol Google Cloud , di bagian kanan atas pada halaman Detail Function, di bawah Didukung oleh Cloud Run, klik link untuk mengakses layanan Cloud Run yang mendasarinya.
- Pada halaman Detail layanan Cloud Run, pilih tab Edit and deploy revisi baru.
- Ikuti
langkah-langkah standar
(seperti dalam kasus perubahan
konfigurasi apa pun) guna menyetel konfigurasi baru untuk koneksi Cloud SQL.
Tindakan ini akan membuat revisi Cloud Run baru, dan revisi berikutnya akan secara otomatis menerima koneksi Cloud SQL ini, kecuali jika Anda mengubahnya secara eksplisit.
- Pertama-tama, deploy fungsi Anda.
IP Pribadi
Jika akun layanan yang memberi otorisasi dimiliki oleh project yang berbeda dengan project yang berisi instance Cloud SQL, lakukan hal berikut:
- Di kedua project, aktifkan Cloud SQL Admin API.
- Untuk akun layanan dalam project yang berisi instance Cloud SQL, tambahkan izin IAM.
- Pastikan instance Cloud SQL yang dibuat sebelumnya memiliki alamat IP pribadi. Jika Anda perlu menambahkan alamat IP, lihat Mengonfigurasi IP pribadi untuk mendapatkan petunjuk.
- Buat konektor Akses VPC Serverless di jaringan VPC yang sama dengan instance Cloud SQL Anda. Perhatikan kondisi berikut:
- Kecuali jika Anda menggunakan VPC Bersama, konektor harus berada di project dan region yang sama dengan resource yang menggunakannya. Namun, konektor dapat mengirim traffic ke resource di region yang berbeda.
- Akses VPC Serverless mendukung komunikasi ke jaringan VPC yang terhubung menggunakan Cloud VPN dan Peering Jaringan VPC.
- Akses VPC Serverless tidak mendukung jaringan lama.
- Konfigurasikan fungsi Cloud Run untuk menggunakan konektor.
- Hubungkan menggunakan alamat IP pribadi instance dan port
1433.
Membuat Koneksi ke Cloud SQL
Setelah mengonfigurasi fungsi Cloud Run, Anda dapat terhubung ke instance Cloud SQL.
IP Publik (default)
Untuk jalur IP publik, Cloud Run Functions menyediakan enkripsi dan terhubung menggunakan konektor Cloud SQL.
Terhubung dengan konektor Cloud SQL
Konektor Cloud SQL adalah library khusus bahasa yang menyediakan enkripsi dan otorisasi berbasis IAM saat terhubung ke instance Cloud SQL.
Python
Untuk melihat cuplikan ini dalam konteks aplikasi web, lihat README di GitHub.
Java
Untuk menemukan cuplikan ini dalam konteks aplikasi web, lihat README pada GitHub.
Catatan:
- CLOUD_SQL_CONNECTION_NAME harus direpresentasikan sebagai <MY-PROJECT>:<INSTANCE-REGION>:<INSTANCE-NAME>
- Lihat persyaratan versi factory soket JDBC untuk file pom.xml di sini .
Go
Untuk melihat cuplikan ini dalam konteks aplikasi web, lihat README di GitHub.
Node.js
Untuk melihat cuplikan ini dalam konteks aplikasi web, lihat README di GitHub.
IP Pribadi
Untuk jalur IP pribadi, aplikasi Anda terhubung langsung ke instance Anda melalui jaringan VPC. Metode ini menggunakan TCP untuk terhubung langsung ke instance Cloud SQL tanpa menggunakan Cloud SQL Auth Proxy.
Terhubung dengan TCP
Hubungkan menggunakan alamat IP pribadi instance Cloud SQL Anda sebagai host dan port 1433.
Python
Untuk melihat cuplikan ini dalam konteks aplikasi web, lihat README di GitHub.
Java
Untuk menemukan cuplikan ini dalam konteks aplikasi web, lihat README pada GitHub.
Catatan:
- CLOUD-SQL-CONNECTION-NAME harus ditampilkan sebagai <MY-PROJECT>:<INSTANCE-REGION><INSTANCE-NAME>
- Menggunakan argumen ipTypes=PRIVATE akan memaksa SocketFactory untuk terhubung dengan IP pribadi yang terkait dengan instance.
- Lihat persyaratan versi factory soket JDBC untuk file pom.xml.
Node.js
Untuk melihat cuplikan ini dalam konteks aplikasi web, lihat README di GitHub.
Go
Untuk melihat cuplikan ini dalam konteks aplikasi web, lihat README di GitHub.
PHP
Untuk melihat cuplikan ini dalam konteks aplikasi web, lihat README di GitHub.
Praktik terbaik dan informasi lainnya
Anda dapat menggunakan Cloud SQL Auth Proxy saat menguji aplikasi Anda secara lokal. Lihat panduan memulai penggunaan Cloud SQL Auth Proxy untuk mendapatkan petunjuk terperinci.
Kumpulan Koneksi
Koneksi ke database yang mendasari dapat terputus, baik oleh server database itu sendiri, atau oleh infrastruktur fungsi Cloud Run yang mendasarinya. Kami merekomendasikan untuk menggunakan library klien yang mendukung kumpulan koneksi yang secara otomatis menghubungkan kembali koneksi klien yang rusak. Selain itu, kami merekomendasikan untuk menggunakan kumpulan koneksi yang tercakup secara global untuk meningkatkan kemungkinan bahwa fungsi Anda menggunakan kembali koneksi yang sama untuk pemanggilan fungsi berikutnya, dan menutup koneksi secara alami saat instance dikeluarkan (diperkecil). Untuk contoh yang lebih detail tentang cara menggunakan kumpulan koneksi, lihat Mengelola koneksi database.Batas Koneksi
Cloud SQL menerapkan batas maksimum pada koneksi serentak, dan batas ini dapat bervariasi tergantung mesin database yang dipilih (lihat Kuota dan Batas Cloud SQL).
Sebaiknya gunakan kumpulan koneksi dengan Cloud Run Functions, tetapi penting untuk menetapkan jumlah maksimum koneksi ke 1.
Jika memungkinkan, Anda harus berhati-hati untuk hanya melakukan inisialisasi kumpulan koneksi untuk fungsi yang memerlukan akses ke database Anda. Beberapa kumpulan koneksi akan membuat koneksi secara preemtif, yang dapat menggunakan resource berlebih dan mengurangi batas koneksi Anda. Karena alasan ini, sebaiknya gunakan Inisialisasi Lambat untuk menunda pembuatan kumpulan koneksi hingga diperlukan, dan hanya sertakan kumpulan koneksi dalam fungsi yang digunakan.
Untuk contoh yang lebih detail tentang cara membatasi jumlah koneksi, lihat Mengelola koneksi database.
Batas Kuota API
Cloud Run Functions menyediakan mekanisme yang terhubung menggunakan Proxy Auth Cloud SQL, yang menggunakan Cloud SQL Admin API. Batas kuota API berlaku untuk Cloud SQL Auth Proxy. Kuota Cloud SQL Admin API yang digunakan kira-kira dua kali lipat jumlah instance Cloud SQL yang dikonfigurasi dikali jumlah total fungsi yang di-deploy. Anda dapat menetapkan jumlah maksimum pemanggilan serentak untuk mengubah perkiraan kuota API yang digunakan. Cloud Run Functions juga memberlakukan pembatasan kapasitas pada jumlah panggilan API yang diizinkan per 100 detik.
Langkah berikutnya
- Pelajari lebih lanjut Fungsi Cloud Run.
- Pelajari lebih lanjut cara men-deploy fungsi Cloud Run.
- Pelajari lebih lanjut cara menentukan pemicu untuk fungsi Cloud Run.
- Pelajari lebih lanjut cara mengonfigurasi Cloud Run Functions.