Ringkasan
Di halaman ini, Anda akan mempelajari cara menggunakan Database Migration Service API untuk mengelola profil koneksi untuk database sumber PostgreSQL dan tujuan PostgreSQL.
Ada dua cara yang dapat Anda gunakan untuk Database Migration Service API. Anda dapat melakukan panggilan REST API atau menggunakan Google Cloud CLI (CLI).
Untuk melihat informasi tingkat tinggi tentang penggunaan gcloud untuk mengelola profil koneksi Database Migration Service, klik di sini.
Membuat profil koneksi untuk database sumber PostgreSQL
Berikut menunjukkan permintaan untuk membuat profil koneksi untuk database sumber PostgreSQL.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project
- region: Region project
- connection-profile-id: ID profil koneksi
- connection-profile-display-name: Nama tampilan profil koneksi
- host-ip-address: Alamat IP sumber
- username: Nama pengguna database
- password: Sandi pengguna database
- client-key: Kunci pribadi berenkode PEM PKCS#1 atau PKCS#8 yang tidak terenkripsi, yang terkait
dengan Sertifikat Klien. Jika kolom ini digunakan, kolom
clientCertificatewajib diisi. - client-certificate: Sertifikat berenkode x509 PEM yang akan digunakan oleh
replika untuk melakukan autentikasi terhadap server database sumber.Jika kolom ini digunakan, kolom
clientKeywajib diisi. - ca-certificate: Wajib diisi. Sertifikat berenkode x509 PEM untuk CA yang menandatangani sertifikat server database sumber. Replika akan menggunakan sertifikat ini untuk memverifikasi bahwa sertifikat sumber terhubung dengan host yang tepat.
Metode HTTP dan URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles?connectionProfileId=connection-profile-id
Meminta isi JSON:
{
"displayName": "connection-profile-display-name",
"postgres": {
"host": "host-ip-address",
"port": 5432,
"username": "username",
"password": "password",
"ssl": {
"clientKey": "client-key",
"clientCertificate": "client-certificate",
"caCertificate": "ca-certificate"
}
}
}
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{
"name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165",
"metadata": {
"@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata",
"createTime": "2020-06-12T14:46:01.744267779Z",
"target": "projects/project-id/locations/region/connectionProfiles/connection-profile-id",
"verb": "create",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
gcloud
Untuk melihat informasi umum tentang penggunaan gcloud untuk membuat profil koneksi Database Migration Service, klik di sini.
Setelah pembuatan, Anda dapat melihat informasi tentang profil koneksi
dengan memanggil metode connectionProfiles/get.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project
- region: Region project
- connection-profile-id: ID profil koneksi
Metode HTTP dan URL:
GET https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{
"name": "projects/project-id/locations/region/connectionProfiles/connection-profile-id",
"createTime": "2019-12-22T16:17:37.159786963Z",
"updateTime": "2019-12-24T13:13:39.455857411Z",
"state": "READY",
"displayName": "connection-profile-display-name",
"postgres": {
"host": "host-ip-address",
"port": 5432,
"username": "username"
}
}
gcloud
Untuk mengetahui informasi selengkapnya tentang penggunaan gcloud untuk mengambil informasi tentang profil koneksi Anda, klik di sini.
Membuat profil koneksi untuk database sumber Cloud SQL for PostgreSQL
Berikut menunjukkan permintaan untuk membuat profil koneksi untuk database sumber Cloud SQL for PostgreSQL. Contoh ini menggunakan profil koneksi PostgreSQL karena terhubung ke mesin database PostgreSQL, bukan lapisan pengelolaan Cloud SQL.
Untuk membuat penyandingan antara sumber dan replika menggunakan
Cloud SQL, Anda harus memberikan ID instance untuk database
Cloud SQL. Anda dapat menemukan nilai ID instance menggunakan metode
databases/list
Cloud SQL Admin API.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project
- region: Region project
- connection-profile-id: ID profil koneksi
- connection-profile-display-name: Nama tampilan profil koneksi
- host-ip-address: Alamat IP sumber
- username: Nama pengguna database
- password: Sandi pengguna database
- cloud-sql-instance-id: ID instance Cloud SQL
Metode HTTP dan URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles?connectionProfileId=connection-profile-id
Meminta isi JSON:
{
"displayName": "connection-profile-display-name",
"postgres": {
"host": "host-ip-address",
"port": 5432,
"username": "username",
"password": "password",
"cloud_sql_id": "cloud-sql-instance-id"
}
}
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{
"name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165",
"metadata": {
"@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata",
"createTime": "2020-06-12T14:46:01.744267779Z",
"target": "projects/project-id/locations/region/connectionProfiles/connection-profile-id",
"verb": "create",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
gcloud
Untuk melihat informasi umum tentang penggunaan gcloud untuk membuat profil koneksi Database Migration Service, klik di sini.
Untuk mengetahui informasi selengkapnya tentang cara menggunakan gcloud untuk membuat profil koneksi untuk database sumber Cloud SQL for PostgreSQL, klik di sini.
Membuat profil koneksi untuk tujuan Cloud SQL for PostgreSQL
Berikut menunjukkan permintaan untuk membuat profil koneksi untuk tujuan Cloud SQL for PostgreSQL. Database Migration Service menggunakan informasi dalam permintaan ini untuk membuat instance Cloud SQL untuk PostgreSQL baru.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project
- region: Region project
- connection-profile-id: ID profil koneksi
- connection-profile-display-name: Nama tampilan profil koneksi
- database-version: Versi database. Misalnya, POSTGRES_12.
- tier: Jenis mesin. Misalnya, db-custom-1-4096.
- data-disk-type: Jenis disk data. Misalnya, PD_SSD.
- data-disk-size-gb: Ukuran disk data, dalam Gb. Misalnya, 20.
- zone: Zona di region project
- cmek_key_name: Opsional: Jalur dan nama lengkap kunci enkripsi yang dikelola pelanggan (CMEK). Misalnya, "projects/project-id/locations/location/keyRings/ring/cryptoKeys/customer-managed-encryption-key".
Semua data yang disimpan dalam Google Cloud dienkripsi dalam penyimpanan menggunakan sistem pengelolaan kunci yang telah melalui proses hardening yang sama dengan yang kami gunakan untuk data terenkripsi milik kami. Sistem pengelolaan kunci ini memberikan kontrol akses kunci dan audit yang ketat, serta mengenkripsi data pengguna dalam penyimpanan menggunakan standar enkripsi AES-256. Tidak diperlukan penyiapan, konfigurasi, atau pengelolaan.Enkripsi saat istirahat default Google Cloudadalah pilihan terbaik bagi pengguna yang tidak memiliki persyaratan khusus terkait kepatuhan atau lokalitas materi kriptografi.
Jika Anda memerlukan kontrol lebih besar atas kunci yang digunakan untuk mengenkripsi data dalam penyimpanan di project Google Cloud , Database Migration Service menawarkan kemampuan untuk melindungi data Anda menggunakan kunci enkripsi yang dikelola oleh Anda dalam Cloud Key Management Service (KMS). Kunci enkripsi ini disebut kunci enkripsi yang dikelola pelanggan (CMEK). Saat Anda melindungi data di Database Migration Service dengan CMEK, Anda memegang kendali atas CMEK tersebut.
Parameter cmek_key_name dikaitkan dengan penggunaan CMEK yang dapat digunakan Database Migration Service untuk mengenkripsi data yang dimigrasikan dari sumber ke tujuan. CMEK diwakili
oleh placeholder customer-managed-encryption-key.
Placeholder ring merepresentasikan key ring untuk CMEK Anda. Key ring mengatur kunci di lokasi Google Cloud tertentu dan memungkinkan Anda mengelola kontrol akses pada grup kunci. Nama key ring tidak harus unik di seluruh project, tetapi harus unik dalam lokasi tertentu. Google Cloud Untuk mengetahui informasi selengkapnya tentang key ring, lihat resource Cloud KMS.
Sebagai bagian dari pembuatan profil koneksi, Database Migration Service akan memverifikasi bahwa CMEK ada, dan bahwa Database Migration Service memiliki izin untuk menggunakan kunci tersebut.
Jika salah satu kondisi ini tidak terpenuhi, pesan error berikut akan ditampilkan:
CMEK_DOES_NOT_EXIST_OR_MISSING_PERMISSIONS
Untuk mengatasi masalah ini, pastikan kunci yang Anda berikan ada, dan akun layanan Database Migration Service memiliki izin cloudkms.cryptoKeys.get untuk kunci tersebut.
Jika Anda lebih memilih menggunakan sistem pengelolaan kunci internal Google Clouddaripada CMEK
untuk mengenkripsi data Anda, jangan sertakan parameter dan nilai cmek_key_name dalam permintaan API Anda.
Metode HTTP dan URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles?connectionProfileId=connection-profile-id
Meminta isi JSON:
{
"displayName": "connection-profile-display-name",
"cloudsql": {
"settings": {
"databaseVersion": "database-version",
"tier": "machine-type",
"storageAutoResizeLimit": 0,
"activationPolicy": "ALWAYS",
"ipConfig":
{
"authorizedNetworks": [],
"enableIpv4": true,
"privateNetwork": null
},
"autoStorageIncrease": false,
"dataDiskType": "data-disk-type",
"dataDiskSizeGb": "data-disk-size",
"zone": "zone",
"sourceId": "projects/project-id/locations/region/connectionProfiles/connection-profile-id",
"cmek_key_name": "projects/project-id/locations/location/keyRings/ring/cryptoKeys/customer-managed-encryption-key"
}
}
}
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{
"name": "projects/project-id/locations/region/operations/operation-1591975557292-5a7e4b195623c-e350e3da-713dee7d",
"metadata": {
"@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata",
"createTime": "2020-06-12T15:25:57.430715421Z",
"target": "projects/project-id/locations/region/connectionProfiles/connection-profile-id",
"verb": "create",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
gcloud
Untuk melihat informasi umum tentang penggunaan gcloud untuk membuat profil koneksi Database Migration Service, klik di sini.
Mendapatkan informasi tentang profil koneksi
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project
- region: Region project
- connection-profile-id: ID profil koneksi
Metode HTTP dan URL:
GET https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{
"name": "projects/project-id/locations/region/connectionProfiles/connection-profile-id",
"createTime": "2019-12-22T16:17:37.159786963Z",
"updateTime": "2019-12-24T13:13:39.455857411Z",
"state": "READY",
"displayName": "connection-profile-display-name",
"postgres": {
"host": "host-ip-address",
"port": 5432,
"username": "username"
}
}
gcloud
Untuk mengetahui informasi selengkapnya tentang penggunaan gcloud untuk mengambil informasi tentang profil koneksi Anda, klik di sini.
Mencantumkan profil koneksi
Berikut ini menunjukkan permintaan untuk mengambil informasi tentang semua profil koneksi Anda.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project
- region: Region project
orderBy:Gunakan filter ini untuk mengambil daftar semua profil koneksi untuk wilayah tertentu dalam urutan abjad. Misalnya, filterorderBy=namemenampilkan semua profil koneksi, menurut abjad, berdasarkan nama.-
pageSize:Gunakan filter ini untuk menentukan jumlah maksimum profil koneksi yang diambil dan ditampilkan Database Migration Service di halaman. Misalnya, dengan menyetelpageSize=10, Database Migration Service akan menampilkan hingga 10 profil koneksi untuk satu halaman.
Jika ada lebih dari 10 profil koneksi, profil tersebut akan muncul di halaman lain. Di akhir setiap halaman, parameter nextPageToken dan ID unik akan muncul. Gunakan ID untuk mengambil listingan profil koneksi untuk halaman berikutnya.
Metode HTTP dan URL:
GET https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{
"connectionProfiles": [
{
"name": "projects/project-id/locations/region/connectionProfiles/name-of-first-connection-profile",
"createTime": "2019-12-22T16:17:37.159786963Z",
"updateTime": "2019-12-24T13:13:39.455857411Z",
"state": "READY",
"displayName": "display-name-of-first-connection-profile",
"postgres": {
"host": "host-ip-address-of-first-connection-profile",
"port": port-number-of-first-connection-profile,
"username": "username-of-first-connection-profile",
"password_set": "true"
}
}
{
"name": "projects/project-id/locations/region/connectionProfiles/name-of-second-connection-profile",
"createTime": "2020-11-21T19:22:25.153824963Z",
"updateTime": "2020-11-11T11:15:14.451046111Z",
"state": "READY",
"displayName": "display-name-of-second-connection-profile",
"postgres": {
"host": "host-ip-address-of-second-connection-profile",
"port": port-number-of-second-connection-profile,
"username": "username-of-second-connection-profile",
"password_set": "true"
}
}
]
}
gcloud
Untuk mengetahui informasi selengkapnya tentang penggunaan gcloud untuk mengambil informasi tentang semua profil koneksi Anda, klik di sini.
Memperbarui profil koneksi
Berikut ini menunjukkan permintaan untuk memperbarui kolom nama pengguna dan sandi dari
profil koneksi yang ada. Dengan menggunakan parameter updateMask dalam permintaan,
hanya kolom ini yang perlu disertakan dalam isi permintaan.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project
- region: Region project
- connection-profile-id: ID profil koneksi
- username: Nama pengguna database
- password: Sandi pengguna database
Metode HTTP dan URL:
PATCH https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id?updateMask=postgres.username,postgres.password
Meminta isi JSON:
{
"postgres" {
"username": "username",
"password": "password"
}
}
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{
"name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165",
"metadata": {
"@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata",
"createTime": "2020-06-12T14:46:01.744267779Z",
"target": "projects/project-id/locations/region/connectionProfiles/connection-profile-id",
"verb": "update",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
gcloud
Untuk mengetahui informasi selengkapnya tentang penggunaan gcloud untuk memperbarui profil koneksi Anda, klik di sini.
Menghapus profil koneksi
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project
- region: Region project
- connection-profile-id: ID profil koneksi
Metode HTTP dan URL:
DELETE https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{
"name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165",
"metadata": {
"@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata",
"createTime": "2020-06-12T14:46:01.744267779Z",
"target": "projects/project-id/locations/region/connectionProfiles/connection-profile-id",
"verb": "delete",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
gcloud
Untuk mengetahui informasi selengkapnya tentang penggunaan gcloud untuk menghapus profil koneksi Anda, klik di sini.
Menghapus profil koneksi dan instance Cloud SQL terkait
Berikut menunjukkan permintaan untuk menghapus profil koneksi tujuan, serta menghapus instance Cloud SQL terkait secara bertingkat.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project
- region: Region project
- connection-profile-id: ID profil koneksi
Metode HTTP dan URL:
DELETE https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id?force=true
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{
"name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165",
"metadata": {
"@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata",
"createTime": "2020-06-12T14:46:01.744267779Z",
"target": "projects/project-id/locations/region/connectionProfiles/connection-profile-id",
"verb": "create",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
gcloud
Untuk mengetahui informasi selengkapnya tentang cara menggunakan gcloud untuk menghapus profil koneksi dan instance Cloud SQL terkait, klik di sini.