| list_instances |
Mencantumkan semua instance Cloud SQL dalam project.
|
| get_instance |
Mendapatkan detail instance Cloud SQL.
|
| create_instance |
Memulai pembuatan instance Cloud SQL.
Kecuali jika ditentukan lain, instance yang baru dibuat akan menggunakan konfigurasi instance default lingkungan pengembangan. Berikut adalah konfigurasi default untuk instance di lingkungan pengembangan:
{
"tier": "db-perf-optimized-N-2",
"data_disk_size_gb": 100,
"region": "us-central1",
"database_version": "POSTGRES_18",
"edition": "ENTERPRISE_PLUS",
"availability_type": "ZONAL",
"tags": [{"environment": "dev"}]
}
Konfigurasi berikut direkomendasikan untuk instance di lingkungan produksi:
{
"tier": "db-perf-optimized-N-8",
"data_disk_size_gb": 250,
"region": "us-central1",
"database_version": "POSTGRES_18",
"edition": "ENTERPRISE_PLUS",
"availability_type": "REGIONAL",
"tags": [{"environment": "prod"}]
}
Konfigurasi instance berikut direkomendasikan untuk SQL Server:
{
"tier": "db-perf-optimized-N-8",
"data_disk_size_gb": 250,
"region": "us-central1",
"database_version": "SQLSERVER_2022_STANDARD",
"edition": "ENTERPRISE_PLUS",
"availability_type": "REGIONAL",
"tags": [{"environment": "prod"}]
}
|
| execute_sql |
Jalankan pernyataan SQL yang valid, termasuk pernyataan bahasa definisi data (DDL), bahasa kontrol data (DCL), bahasa kueri data (DQL), atau bahasa pengolahan data (DML), pada instance Cloud SQL. Untuk mendukung alat execute_sql, instance Cloud SQL harus memenuhi persyaratan berikut:
- Nilai
data_api_access harus ditetapkan ke ALLOW_DATA_API.
- Untuk instance MySQL, flag database
cloudsql_iam_authentication harus disetel ke on. Untuk instance PostgreSQL, tanda database cloudsql.iam_authentication harus disetel ke on.
- Akun pengguna IAM atau akun layanan IAM (
CLOUD_IAM_USER atau CLOUD_IAM_SERVICE_ACCOUNT) diperlukan untuk memanggil alat execute_sql. Alat ini menjalankan pernyataan SQL menggunakan hak istimewa pengguna database yang login dengan autentikasi database IAM.
Setelah menggunakan alat create_instance untuk membuat instance, Anda dapat menggunakan alat create_user untuk membuat akun pengguna IAM bagi pengguna yang saat ini login ke project. Alat execute_sql memiliki batasan berikut:
- Jika pernyataan SQL menampilkan respons yang lebih besar dari 10 MB, respons akan dipangkas.
- Alat
execute_sql memiliki waktu tunggu default 30 detik. Jika kueri berjalan lebih dari 30 detik, alat akan menampilkan error DEADLINE_EXCEEDED.
- Alat
execute_sql tidak didukung untuk SQL Server.
Jika Anda menerima error yang mirip dengan "IAM authentication is not enabled for the instance", Anda dapat menggunakan alat get_instance untuk memeriksa nilai flag autentikasi database IAM untuk instance tersebut. Jika Anda menerima error seperti "The instance doesn't allow using executeSql to access this instance", Anda dapat menggunakan alat get_instance untuk memeriksa setelan data_api_access. Saat Anda menerima error autentikasi:
- Periksa apakah akun pengguna yang saat ini login ada sebagai pengguna IAM di instance menggunakan alat
list_users.
- Jika akun pengguna IAM tidak ada, gunakan alat
create_user untuk membuat akun pengguna IAM bagi pengguna yang login.
- Jika pengguna yang saat ini login tidak memiliki peran pengguna database yang tepat, Anda dapat menggunakan alat
update_user untuk memberikan peran database kepada pengguna. Misalnya, peran cloudsqlsuperuser dapat memberikan banyak izin yang diperlukan kepada pengguna IAM.
Periksa apakah pengguna yang saat ini login telah diberi izin IAM yang benar untuk project tersebut. Anda dapat menggunakan perintah gcloud projects get-iam-policy [PROJECT_ID] untuk memeriksa apakah pengguna telah diberi peran atau izin IAM yang tepat untuk project.
- Pengguna harus memiliki izin
cloudsql.instance.login untuk melakukan autentikasi database IAM otomatis.
- Pengguna harus memiliki izin
cloudsql.instances.executeSql untuk menjalankan pernyataan SQL menggunakan alat execute_sql atau executeSql API.
- Peran IAM umum yang berisi izin yang diperlukan: Pengguna Instance Cloud SQL (
roles/cloudsql.instanceUser) atau Admin Cloud SQL (roles/cloudsql.admin)
Saat menerima ExecuteSqlResponse, selalu periksa kolom message dan status dalam isi respons. Kode status HTTP yang berhasil tidak menjamin keberhasilan penuh semua pernyataan SQL. Kolom message dan status akan menunjukkan apakah ada error atau peringatan parsial selama eksekusi pernyataan SQL.
|
| get_operation |
Mendapatkan status operasi yang berjalan lama. Operasi yang berjalan lama dapat memerlukan waktu beberapa menit untuk diselesaikan. Jika operasi memerlukan waktu yang lama, gunakan alat command line untuk menjeda selama 30 detik sebelum memeriksa kembali status operasi.
|
| create_user |
Buat pengguna database untuk instance Cloud SQL.
- Alat ini menampilkan operasi yang berjalan lama. Gunakan alat
get_operation untuk melakukan polling statusnya hingga operasi selesai.
- Saat Anda menggunakan alat
create_user, tentukan jenis pengguna: CLOUD_IAM_USER atau CLOUD_IAM_SERVICE_ACCOUNT.
- Secara default, pengguna yang baru dibuat diberi peran
cloudsqlsuperuser, kecuali jika Anda menentukan peran database lain secara eksplisit dalam permintaan.
- Anda dapat menggunakan pengguna yang baru dibuat dengan alat
execute_sql jika pengguna tersebut adalah pengguna IAM yang saat ini login. Alat execute_sql menjalankan pernyataan SQL menggunakan hak istimewa pengguna database yang login menggunakan autentikasi database IAM.
Alat create_user memiliki batasan berikut:
- Anda tidak dapat membuat pengguna bawaan dengan sandi.
- Alat
create_user tidak mendukung pembuatan pengguna untuk SQL Server.
Untuk membuat pengguna IAM di PostgreSQL:
- Nama pengguna database harus berupa alamat email pengguna IAM dan semua huruf kecil. Misalnya, untuk membuat pengguna bagi pengguna IAM PostgreSQL
example-user@example.com, Anda dapat menggunakan permintaan berikut:
{
"name": "example-user@example.com",
"type": "CLOUD_IAM_USER",
"instance":"test-instance",
"project": "test-project"
}
Nama pengguna database yang dibuat untuk pengguna IAM adalah example-user@example.com. Untuk membuat akun layanan IAM di PostgreSQL:
- Nama pengguna database harus dibuat tanpa akhiran
.gserviceaccount.com meskipun alamat email lengkap untuk akun tersebut adalah service-account-name@project-id.iam.gserviceaccount.com. Misalnya, untuk membuat akun layanan IAM untuk PostgreSQL, Anda dapat menggunakan format permintaan berikut:
{
"name": "test@test-project.iam",
"type": "CLOUD_IAM_SERVICE_ACCOUNT",
"instance": "test-instance",
"project": "test-project"
}
Nama pengguna database yang dibuat untuk akun layanan IAM adalah test@test-project.iam. Untuk membuat akun pengguna IAM atau akun layanan IAM di MySQL:
- Saat menyimpan nama pengguna, Cloud SQL untuk MySQL akan memotong @ dan nama domain dari alamat email pengguna atau akun layanan. Misalnya,
example-user@example.com menjadi example-user.
- Oleh karena itu, Anda tidak dapat menambahkan dua pengguna IAM atau akun layanan dengan nama pengguna yang sama tetapi nama domain yang berbeda ke instance Cloud SQL yang sama.
- Misalnya, untuk membuat pengguna bagi pengguna IAM MySQL
example-user@example.com, gunakan permintaan berikut:
{
"name": "example-user@example.com",
"type": "CLOUD_IAM_USER",
"instance": "test-instance",
"project": "test-project"
}
Nama pengguna database yang dibuat untuk pengguna IAM adalah example-user.
- Misalnya, untuk membuat akun layanan IAM MySQL
service-account-name@project-id.iam.gserviceaccount.com, gunakan permintaan berikut:
{
"name": "service-account-name@project-id.iam.gserviceaccount.com",
"type": "CLOUD_IAM_SERVICE_ACCOUNT",
"instance": "test-instance",
"project": "test-project"
}
Nama pengguna database yang dibuat untuk akun layanan IAM adalah service-account-name.
|
| update_user |
Memperbarui pengguna database untuk instance Cloud SQL. Kasus penggunaan umum untuk update_user adalah memberikan peran cloudsqlsuperuser kepada pengguna, yang dapat memberikan banyak izin yang diperlukan kepada pengguna. Alat ini hanya mendukung pembaruan pengguna untuk menetapkan peran database.
- Alat ini menampilkan operasi yang berjalan lama. Gunakan alat
get_operation untuk melakukan polling statusnya hingga operasi selesai.
- Sebelum memanggil alat
update_user, selalu periksa konfigurasi pengguna yang ada, seperti jenis pengguna dengan alat list_users.
- Sebagai kasus khusus untuk MySQL, jika alat
list_users menampilkan alamat email lengkap untuk kolom iamEmail, misalnya {name=test-account,
iamEmail=test-account@project-id.iam.gserviceaccount.com}, maka dalam permintaan update_user, gunakan alamat email lengkap di kolom iamEmail pada kolom name permintaan alat Anda. Misalnya, name=test-account@project-id.iam.gserviceaccount.com.
Parameter utama untuk memperbarui peran pengguna:
database_roles: Daftar peran database yang akan ditetapkan kepada pengguna.
revokeExistingRoles: Kolom boolean (default: false) yang mengontrol cara penanganan peran yang ada.
Cara kerja pembaruan peran:
Jika revokeExistingRoles bernilai benar:
- Semua peran yang sudah ada yang diberikan kepada pengguna tetapi TIDAK ada dalam daftar
database_roles yang diberikan akan DICABUT.
- Mencabut hanya berlaku untuk peran non-sistem. Peran sistem seperti
cloudsqliamuser, dll. tidak akan dicabut.
- Semua peran dalam daftar
database_roles yang BELUM dimiliki pengguna akan DIBERIKAN.
- Jika
database_roles kosong, semua peran non-sistem yang ada akan dibatalkan.
Jika revokeExistingRoles salah (default):
- Semua peran dalam daftar
database_roles yang BELUM dimiliki pengguna akan DIBERIKAN.
- Peran yang ada yang TIDAK ada dalam daftar
database_roles akan TETAP ADA.
- Jika
database_roles kosong, tidak ada perubahan pada peran pengguna.
Contoh:
|
| clone_instance |
Buat instance Cloud SQL sebagai clone instance sumber.
- Alat ini menampilkan operasi yang berjalan lama. Gunakan alat
get_operation untuk melakukan polling statusnya hingga operasi selesai.
- Operasi clone dapat memerlukan waktu beberapa menit. Gunakan alat command line untuk menjeda selama 30 detik sebelum memeriksa ulang status.
|
| update_instance |
Memperbarui sebagian setelan konfigurasi instance Cloud SQL.
- Alat ini menampilkan operasi yang berjalan lama. Gunakan alat
get_operation untuk melakukan polling statusnya hingga operasi selesai.
|
| list_users |
Mencantumkan semua pengguna database untuk instance Cloud SQL.
|
| import_data |
Mengimpor data ke instance Cloud SQL. Jika file tidak dimulai dengan gs://, maka diasumsikan bahwa file disimpan secara lokal. Jika file bersifat lokal, file tersebut harus diupload ke Cloud Storage sebelum Anda dapat melakukan panggilan import_data yang sebenarnya. Untuk mengupload file ke Cloud Storage, Anda dapat menggunakan perintah gcloud atau gsutil. Sebelum mengupload file ke Cloud Storage, pertimbangkan apakah Anda ingin menggunakan bucket yang ada atau membuat bucket baru dalam project yang disediakan. Setelah file diupload ke Cloud Storage, akun layanan instance harus memiliki izin yang memadai untuk membaca file yang diupload dari bucket Cloud Storage. Hal ini dapat dilakukan sebagai berikut:
- Gunakan alat
get_instance untuk mendapatkan alamat email akun layanan instance. Dari output alat, dapatkan nilai kolom serviceAccountEmailAddress.
- Berikan peran
storage.objectAdmin kepada akun layanan instance di bucket Cloud Storage yang disediakan. Gunakan perintah seperti gcloud storage buckets
add-iam-policy-binding atau permintaan ke Cloud Storage API. Mungkin perlu waktu dua hingga tujuh menit atau lebih agar peran diberikan dan izin disebarkan ke akun layanan di Cloud Storage. Jika Anda mengalami error izin setelah memperbarui kebijakan IAM, tunggu beberapa menit, lalu coba lagi.
Setelah izin diberikan, Anda dapat mengimpor data. Sebaiknya biarkan parameter opsional kosong dan gunakan default sistem. Jenis file biasanya dapat ditentukan oleh ekstensi file. Misalnya, jika file adalah file SQL, .sql atau .csv untuk file CSV. Berikut adalah contoh SQL importContext untuk MySQL.
{
"uri": "gs://sample-gcs-bucket/sample-file.sql",
"kind": "sql#importContext",
"fileType": "SQL"
}
Tidak ada parameter database untuk MySQL karena nama database diharapkan ada dalam file SQL. Tentukan hanya satu URI. Tidak ada kolom lain yang diperlukan selain importContext. Untuk PostgreSQL, kolom database wajib diisi. Berikut adalah contoh importContext PostgreSQL dengan kolom database yang ditentukan.
{
"uri": "gs://sample-gcs-bucket/sample-file.sql",
"kind": "sql#importContext",
"fileType": "SQL",
"database": "sample-db"
}
Alat import_data menampilkan operasi yang berjalan lama. Gunakan alat get_operation untuk melakukan polling statusnya hingga operasi selesai.
|