Información general
En esta página, se explica cómo usar la API Database Migration Service para gestionar perfiles de conexión de una base de datos de origen PostgreSQL y un destino PostgreSQL.
Hay dos formas de usar la API de Database Migration Service. Puedes hacer llamadas a la API REST o usar Google Cloud CLI (CLI).
Para ver información general sobre el uso de gcloud
para gestionar los perfiles de conexión de Database Migration Service, haz clic aquí.
Crear un perfil de conexión para una base de datos de origen PostgreSQL
A continuación, se muestra una solicitud para crear un perfil de conexión de una base de datos de origen de PostgreSQL.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- region: la región del proyecto
- connection-profile-id: ID de perfil de conexión
- connection-profile-display-name: el nombre visible del perfil de conexión
- host-ip-address: la dirección IP de origen
- username: nombre de usuario de la base de datos
- password: la contraseña del usuario de la base de datos
- client-key: Clave privada PKCS#1 o PKCS#8 codificada en PEM y sin encriptar asociada al certificado de cliente. Si se usa este campo, el campo
clientCertificate
es obligatorio. - client-certificate: El certificado x509 codificado en PEM que la réplica usará para autenticarse en el servidor de la base de datos de origen.Si se usa este campo, el campo
clientKey
es obligatorio. - ca-certificate: obligatorio. Este es el certificado x509 codificado en PEM de la entidad de certificación (CA) que firmó el certificado del servidor de la base de datos de origen. La réplica usará este certificado para verificar que se está conectando al host adecuado.
Método HTTP y URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles?connectionProfileId=connection-profile-id
Cuerpo JSON de la solicitud:
{ "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" } } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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
Para ver información general sobre cómo usar gcloud
para crear perfiles de conexión de Database Migration Service, haz clic aquí.
Una vez creado, puedes ver la información sobre tu perfil de conexión
llamando al método connectionProfiles/get
.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- region: la región del proyecto
- connection-profile-id: ID de perfil de conexión
Método HTTP y URL:
GET https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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
Para obtener más información sobre cómo usar gcloud
para recuperar información sobre tu perfil de conexión, haz clic aquí.
Crear un perfil de conexión para una base de datos de origen de Cloud SQL para PostgreSQL
A continuación, se muestra una solicitud para crear un perfil de conexión para una base de datos de origen de Cloud SQL para PostgreSQL. En este ejemplo se usa un perfil de conexión de PostgreSQL porque se conecta al motor de base de datos de PostgreSQL y no a la capa de gestión de Cloud SQL.
Para crear la vinculación entre el origen y la réplica con Cloud SQL, debes proporcionar el ID de instancia de tu base de datos de Cloud SQL. Para encontrar el valor del ID de instancia, usa el método
databases/list
de la API Admin de Cloud SQL.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- region: la región del proyecto
- connection-profile-id: ID de perfil de conexión
- connection-profile-display-name: el nombre visible del perfil de conexión
- host-ip-address: la dirección IP de origen
- username: nombre de usuario de la base de datos
- password: la contraseña del usuario de la base de datos
- cloud-sql-instance-id: el ID de la instancia de Cloud SQL
Método HTTP y URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles?connectionProfileId=connection-profile-id
Cuerpo JSON de la solicitud:
{ "displayName": "connection-profile-display-name", "postgres": { "host": "host-ip-address", "port": 5432, "username": "username", "password": "password", "cloud_sql_id": "cloud-sql-instance-id" } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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
Para ver información general sobre cómo usar gcloud
para crear perfiles de conexión de Database Migration Service, haz clic aquí.
Para obtener más información sobre cómo usar gcloud
para crear un perfil de conexión de una base de datos de origen de Cloud SQL para PostgreSQL, haz clic aquí.
Crear un perfil de conexión para un destino de Cloud SQL para PostgreSQL
A continuación, se muestra una solicitud para crear un perfil de conexión para un destino de Cloud SQL para PostgreSQL. Database Migration Service usa la información de esta solicitud para crear una instancia de Cloud SQL para PostgreSQL.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- region: la región del proyecto
- connection-profile-id: ID de perfil de conexión
- connection-profile-display-name: el nombre visible del perfil de conexión
- database-version: la versión de la base de datos. Por ejemplo, POSTGRES_12.
- tier: el tipo de máquina. Por ejemplo, db-custom-1-4096.
- data-disk-type: el tipo de disco de datos. Por ejemplo, PD_SSD.
- data-disk-size-gb: tamaño del disco de datos en GB. Por ejemplo, 20.
- zone: la zona de la región del proyecto
- cmek_key_name: Opcional: la ruta completa y el nombre de una clave de encriptado gestionada por el cliente (CMEK). Por ejemplo, "projects/project-id/locations/location/keyRings/ring/cryptoKeys/customer-managed-encryption-key".
Todos los datos almacenados en Google Cloud se cifran en reposo con los mismos sistemas reforzados de gestión de claves que utilizamos para proteger nuestros propios datos cifrados. Estos sistemas de gestión de claves proporcionan estrictos controles de acceso a claves y auditorías, y cifran los datos de los usuarios en reposo con los estándares de cifrado AES-256. No se requiere ninguna configuración ni gestión. Google CloudEl cifrado predeterminado en reposo de Google Cloudes la mejor opción para los usuarios que no tienen requisitos específicos relacionados con el cumplimiento o la ubicación del material criptográfico.
Si necesitas más control sobre las claves que se usan para encriptar los datos en reposo de un Google Cloud proyecto, Database Migration Service te ofrece la posibilidad de proteger tus datos con claves de encriptado que tú gestionas en Cloud Key Management Service (KMS). Estas claves de encriptado se denominan claves de encriptado gestionadas por el cliente (CMEK). Si proteges los datos del servicio de migración de bases de datos con una CMEK, esta clave queda bajo tu control.
El parámetro cmek_key_name
se asocia a una CMEK que Database Migration Service puede usar para cifrar los datos que se migran del origen al destino. La CMEK se representa con el marcador de posición customer-managed-encryption-key.
El marcador de posición ring representa el conjunto de claves de tu CMEK. Un conjunto de claves organiza las claves en una Google Cloud ubicación Google Cloud específica y te permite gestionar el control de acceso en grupos de claves. El nombre de un conjunto de claves no tiene que ser único en un proyecto, pero sí en una ubicación determinada. Google Cloud Para obtener más información sobre los conjuntos de claves, consulta Recursos de Cloud KMS.
Al crear el perfil de conexión, Database Migration Service verificará que la CMEK existe y que tiene permisos para usar la clave.
Si no se cumple alguna de estas condiciones, se devolverá el siguiente mensaje de error:
CMEK_DOES_NOT_EXIST_OR_MISSING_PERMISSIONS
Para solucionar este problema, compruebe que la clave que ha proporcionado existe y que la cuenta de servicio de Database Migration Service tiene el permiso cloudkms.cryptoKeys.get
para la clave.
Si prefieres usar el sistema de gestión de claves interno de Google Clouden lugar de una CMEK para cifrar tus datos, no incluyas el parámetro cmek_key_name
ni su valor en tu solicitud de API.
Método HTTP y URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles?connectionProfileId=connection-profile-id
Cuerpo JSON de la solicitud:
{ "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" } } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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
Para ver información general sobre cómo usar gcloud
para crear perfiles de conexión de Database Migration Service, haz clic aquí.
Obtener información sobre un perfil de conexión
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- region: la región del proyecto
- connection-profile-id: ID de perfil de conexión
Método HTTP y URL:
GET https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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
Para obtener más información sobre cómo usar gcloud
para recuperar información sobre tu perfil de conexión, haz clic aquí.
Mostrar perfiles de conexión
A continuación, se muestra una solicitud para obtener información sobre todos tus perfiles de conexión.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- region: la región del proyecto
orderBy:
Usa este filtro para obtener una lista de todos los perfiles de conexión de una región concreta en orden alfabético. Por ejemplo, el filtroorderBy=name
devuelve todos los perfiles de conexión por orden alfabético según el nombre.-
pageSize:
Use este filtro para especificar el número máximo de perfiles de conexión que recupera y muestra el servicio de migración de bases de datos en una página. Por ejemplo, si se definepageSize=10
, el servicio de migración de bases de datos devolverá hasta 10 perfiles de conexión por página.
Si hay más de 10 perfiles de conexión, aparecerán en otras páginas. Al final de cada página, aparecen un parámetro nextPageToken
y un identificador único. Usa el identificador para obtener la lista de perfiles de conexión de la página siguiente.
Método HTTP y URL:
GET https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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
Para obtener más información sobre cómo usar gcloud
para recuperar información sobre todos tus perfiles de conexión, haz clic aquí.
Actualizar un perfil de conexión
A continuación, se muestra una solicitud para actualizar los campos de nombre de usuario y contraseña de un perfil de conexión. Si usas el parámetro updateMask
en la solicitud, solo tendrás que incluir estos campos en el cuerpo de la solicitud.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- region: la región del proyecto
- connection-profile-id: ID de perfil de conexión
- username: nombre de usuario de la base de datos
- password: la contraseña del usuario de la base de datos
Método HTTP y URL:
PATCH https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id?updateMask=postgres.username,postgres.password
Cuerpo JSON de la solicitud:
{ "postgres" { "username": "username", "password": "password" } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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
Para obtener más información sobre cómo usar gcloud
para actualizar tu perfil de conexión, haz clic aquí.
Eliminar un perfil de conexión
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- region: la región del proyecto
- connection-profile-id: ID de perfil de conexión
Método HTTP y URL:
DELETE https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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
Para obtener más información sobre cómo usar gcloud
para eliminar tu perfil de conexión, haz clic aquí.
Eliminar un perfil de conexión y la instancia de Cloud SQL asociada
A continuación, se muestra una solicitud para eliminar un perfil de conexión de destino, así como para eliminar en cascada la instancia de Cloud SQL asociada.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- region: la región del proyecto
- connection-profile-id: ID de perfil de conexión
Método HTTP y URL:
DELETE https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id?force=true
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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
Para obtener más información sobre cómo usar gcloud
para eliminar tanto tu perfil de conexión como la instancia de Cloud SQL asociada, haz clic aquí.