Panoramica
In questa pagina imparerai a utilizzare l'API Database Migration Service per gestire i profili di connessione per un database di origine PostgreSQL e una destinazione PostgreSQL.
Esistono due modi per utilizzare l'API Database Migration Service. Puoi effettuare chiamate API REST o utilizzare Google Cloud CLI (CLI).
Per visualizzare informazioni di alto livello sull'utilizzo di gcloud per gestire i profili di connessione di Database Migration Service, fai clic qui.
Crea un profilo di connessione per un database di origine PostgreSQL
Di seguito è riportata una richiesta per creare un profilo di connessione per un database di origine PostgreSQL.
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: l'ID progetto
- region: la regione del progetto
- connection-profile-id: l'ID del profilo di connessione
- connection-profile-display-name: il nome visualizzato del profilo di connessione
- host-ip-address: L'indirizzo IP di origine
- username: Il nome utente del database
- password: La password dell'utente del database
- client-key: La chiave privata non criptata con codifica PEM PKCS#1 o PKCS#8 associata
al certificato client. Se questo campo viene utilizzato, il campo
clientCertificateè obbligatorio. - client-certificate: il certificato x509 con codifica PEM che verrà utilizzato dalla replica per eseguire l'autenticazione nel server di database di origine.Se questo campo viene utilizzato, il campo
clientKeyè obbligatorio. - ca-certificate: obbligatorio. Il certificato x509 con codifica PEM della CA che ha firmato il certificato del server di database di origine. La replica utilizzerà questo certificato per verificare la connessione all'host corretto.
Metodo HTTP e URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles?connectionProfileId=connection-profile-id
Corpo JSON della richiesta:
{
"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"
}
}
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"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
Per visualizzare informazioni di alto livello sull'utilizzo di gcloud per creare profili di connessione di Database Migration Service, fai clic qui.
Una volta creato, puoi visualizzare le informazioni sul profilo di connessione
chiamando il metodo connectionProfiles/get.
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: l'ID progetto
- region: la regione del progetto
- connection-profile-id: l'ID del profilo di connessione
Metodo HTTP e URL:
GET https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"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
Per saperne di più sull'utilizzo di gcloud per recuperare informazioni sul tuo profilo di connessione, fai clic qui.
Crea un profilo di connessione per un database di origine Cloud SQL per PostgreSQL
Di seguito è riportata una richiesta per creare un profilo di connessione per un database di origine Cloud SQL per PostgreSQL. Questo esempio utilizza un profilo di connessione PostgreSQL perché si connette al motore del database PostgreSQL e non al livello di gestione di Cloud SQL.
Per creare l'accoppiamento tra l'origine e la replica utilizzando Cloud SQL, devi fornire l'ID istanza del database Cloud SQL. Puoi trovare il valore dell'ID istanza utilizzando il metodo
databases/list
dell'API Cloud SQL Admin.
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: l'ID progetto
- region: la regione del progetto
- connection-profile-id: l'ID del profilo di connessione
- connection-profile-display-name: il nome visualizzato del profilo di connessione
- host-ip-address: L'indirizzo IP di origine
- username: Il nome utente del database
- password: La password dell'utente del database
- cloud-sql-instance-id: l'ID dell'istanza Cloud SQL
Metodo HTTP e URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles?connectionProfileId=connection-profile-id
Corpo JSON della richiesta:
{
"displayName": "connection-profile-display-name",
"postgres": {
"host": "host-ip-address",
"port": 5432,
"username": "username",
"password": "password",
"cloud_sql_id": "cloud-sql-instance-id"
}
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"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
Per visualizzare informazioni di alto livello sull'utilizzo di gcloud per creare profili di connessione di Database Migration Service, fai clic qui.
Per saperne di più sull'utilizzo di gcloud per creare un profilo di connessione per un database di origine Cloud SQL per PostgreSQL, fai clic qui.
Crea un profilo di connessione per la destinazione Cloud SQL per PostgreSQL
Di seguito è riportata una richiesta per creare un profilo di connessione per una destinazione Cloud SQL per PostgreSQL. Database Migration Service utilizza le informazioni contenute in questa richiesta per creare una nuova istanza Cloud SQL per PostgreSQL.
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: l'ID progetto
- region: la regione del progetto
- connection-profile-id: l'ID del profilo di connessione
- connection-profile-display-name: il nome visualizzato del profilo di connessione
- database-version: la versione del database. Ad esempio, POSTGRES_12.
- tier: il tipo di macchina. Ad esempio, db-custom-1-4096.
- data-disk-type: Il tipo di disco dati. Ad esempio, PD_SSD.
- data-disk-size-gb: Le dimensioni del disco dati in GB. Ad esempio, 20.
- zone: La zona nella regione del progetto
- cmek_key_name: facoltativo: il percorso completo e il nome di una chiave di crittografia gestita dal cliente (CMEK). Ad esempio, "projects/project-id/locations/location/keyRings/ring/cryptoKeys/customer-managed-encryption-key".
Tutti i dati archiviati in Google Cloud sono criptati in modalità non attiva mediante gli stessi sistemi avanzati di gestione delle chiavi che utilizziamo per i nostri dati criptati. Questi sistemi di gestione delle chiavi forniscono controlli rigorosi per l'accesso alle chiavi e processi di revisione, oltre a criptare i dati utente at-rest utilizzando gli standard di crittografia AES-256. Non è richiesta alcuna configurazione, gestione o installazione. Google CloudLa crittografia at-rest predefinita è la scelta migliore per gli utenti che non hanno requisiti specifici relativi a conformità o località del materiale crittografico.
Se hai bisogno di un maggiore controllo sulle chiavi utilizzate per criptare i dati at-rest all'interno di un progetto Google Cloud , Database Migration Service offre la possibilità di proteggere i tuoi dati utilizzando chiavi di crittografia gestite da te all'interno di Cloud Key Management Service (KMS). Queste sono chiamate chiavi di crittografia gestite dal cliente (CMEK). Quando proteggi i dati in Database Migration Service con CMEK, sei tu ad avere il controllo della chiave CMEK.
Il parametro cmek_key_name è associato a una chiave di crittografia gestita dal cliente che Database Migration Service può utilizzare per criptare i dati di cui è stata eseguita la migrazione dall'origine alla destinazione. La CMEK è rappresentata
dal segnaposto customer-managed-encryption-key.
Il segnaposto ring rappresenta il keyring per la tua chiave CMEK. Un keyring organizza le chiavi in una località specifica e ti consente di gestire il controllo dell'accesso a gruppi di chiavi. Google Cloud Il nome di un portachiavi non deve essere univoco in un progetto Google Cloud , ma deve essere univoco all'interno di una determinata località. Per ulteriori informazioni sui keyring, consulta Risorse Cloud KMS.
Nell'ambito della creazione del profilo di connessione, Database Migration Service verificherà che la chiave CMEK esista e che Database Migration Service disponga delle autorizzazioni per utilizzarla.
Se una di queste condizioni non viene soddisfatta, viene restituito il seguente messaggio di errore:
CMEK_DOES_NOT_EXIST_OR_MISSING_PERMISSIONS
Per risolvere il problema, verifica che la chiave che hai fornito esista e che l'account di servizio Database Migration Service disponga dell'autorizzazione cloudkms.cryptoKeys.get per la chiave.
Se preferisci utilizzare il sistema di gestione delle chiavi interno di Google Cloudanziché una CMEK per criptare i tuoi dati, non includere il parametro cmek_key_name e il relativo valore nella richiesta API.
Metodo HTTP e URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles?connectionProfileId=connection-profile-id
Corpo JSON della richiesta:
{
"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"
}
}
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"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
Per visualizzare informazioni di alto livello sull'utilizzo di gcloud per creare profili di connessione di Database Migration Service, fai clic qui.
Visualizzare informazioni su un profilo di connessione
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: l'ID progetto
- region: la regione del progetto
- connection-profile-id: l'ID del profilo di connessione
Metodo HTTP e URL:
GET https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"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
Per saperne di più sull'utilizzo di gcloud per recuperare informazioni sul tuo profilo di connessione, fai clic qui.
Elenca i profili di connessione
Di seguito è riportata una richiesta per recuperare informazioni su tutti i tuoi profili di connessione.
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: l'ID progetto
- region: la regione del progetto
orderBy:Utilizza questo filtro per recuperare un elenco di tutti i profili di connessione per una determinata regione in ordine alfabetico. Ad esempio, il filtroorderBy=namerestituisce tutti i profili di connessione in ordine alfabetico per nome.-
pageSize:Utilizza questo filtro per specificare il numero massimo di profili di connessione che Database Migration Service recupera e visualizza in una pagina. Ad esempio, se impostipageSize=10, Database Migration Service restituirà fino a 10 profili di connessione per una pagina.
Se sono presenti più di 10 profili di connessione, questi vengono visualizzati in altre pagine. Alla fine di ogni pagina, vengono visualizzati un parametro nextPageToken e un identificatore univoco. Utilizza l'identificatore per recuperare l'elenco dei profili di connessione per la pagina seguente.
Metodo HTTP e URL:
GET https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"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
Per saperne di più sull'utilizzo di gcloud per recuperare informazioni su tutti i tuoi profili di connessione, fai clic qui.
Aggiorna un profilo di connessione
Di seguito è riportata una richiesta di aggiornamento dei campi nome utente e password di un profilo di connessione esistente. Se utilizzi il parametro updateMask nella richiesta,
solo questi campi devono essere inclusi nel corpo della richiesta.
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: l'ID progetto
- region: la regione del progetto
- connection-profile-id: l'ID del profilo di connessione
- username: Il nome utente del database
- password: La password dell'utente del database
Metodo HTTP e URL:
PATCH https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id?updateMask=postgres.username,postgres.password
Corpo JSON della richiesta:
{
"postgres" {
"username": "username",
"password": "password"
}
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"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
Per saperne di più sull'utilizzo di gcloud per aggiornare il profilo di connessione, fai clic qui.
Eliminazione di un profilo di connessione
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: l'ID progetto
- region: la regione del progetto
- connection-profile-id: l'ID del profilo di connessione
Metodo HTTP e URL:
DELETE https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"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
Per saperne di più sull'utilizzo di gcloud per eliminare il profilo di connessione, fai clic qui.
Elimina un profilo di connessione e l'istanza Cloud SQL associata
Di seguito è riportata una richiesta di eliminazione di un profilo di connessione di destinazione, nonché l'eliminazione a cascata dell'istanza Cloud SQL associata.
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: l'ID progetto
- region: la regione del progetto
- connection-profile-id: l'ID del profilo di connessione
Metodo HTTP e URL:
DELETE https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id?force=true
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"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
Per saperne di più sull'utilizzo di gcloud per eliminare sia il profilo di connessione che l'istanza Cloud SQL associata, fai clic qui.