Descripción general
En esta página, aprenderás a usar la API de Database Migration Service para administrar perfiles de conexión de una base de datos de origen de MySQL.
Existen dos formas de usar la API de Database Migration Service. Puedes realizar llamadas a la API de REST o usar Google Cloud CLI (CLI).
Para ver información de alto nivel sobre el uso de gcloud
para administrar los perfiles de conexión de Database Migration Service, haz clic aquí.
Crea un perfil de conexión para una base de datos de MySQL de origen
A continuación, se muestra una solicitud para crear un perfil de conexión para una base de datos de origen de MySQL.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: el ID del proyecto
- region: La región del proyecto
- connection-profile-id: El ID del 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: El nombre de usuario de la base de datos
- password: La contraseña del usuario de la base de datos
- client-key: La clave privada PKCS#1 o PKCS#8 con codificación PEM sin encriptar asociada con el certificado de cliente. Si se usa este campo, el campo
clientCertificate
es obligatorio. - client-certificate: Es el certificado x509 con codificación 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. El certificado codificado con PEM x509 de la AC que firmó el certificado del servidor de la base de datos de origen. La réplica lo utilizará para verificar su conexión con el host correcto.
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", "mysql": { "host": "host-ip-address", "port": 3306, "username": "username", "password": "password", "ssl": { "clientKey": "client-key", "clientCertificate": "client-certificate", "caCertificate": "ca-certificate" } } }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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 detallada sobre el uso de gcloud
para crear perfiles de conexión de Database Migration Service, haz clic aquí.
Si deseas obtener más información para usar gcloud
y crear un perfil de conexión para una base de datos de origen de MySQL, haz clic aquí.
Después de la creación, puedes ver la información sobre tu perfil de conexión llamando al método connectionProfiles/get
.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: el ID del proyecto
- region: La región del proyecto
- connection-profile-id: El ID del 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, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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", "mysql": { "host": "host-ip-address", "port": 3306, "username": "username" } }
gcloud
Si deseas obtener más información sobre el uso de gcloud
para recuperar información sobre tu perfil de conexión, haz clic aquí.
Crea un perfil de conexión para una base de datos de origen de Cloud SQL para MySQL
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 MySQL. En este ejemplo, se usa un perfil de conexión de MySQL porque se conecta al motor de base de datos de MySQL, y no a la capa de administración de Cloud SQL.
Para crear la vinculación entre la fuente y la réplica con
Cloud SQL, debes proporcionar el ID de instancia de tu
base de datos de Cloud SQL. Puedes encontrar el valor del ID de la instancia con el método databases/list
de la API de Cloud SQL Admin.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: el ID del proyecto
- region: La región del proyecto
- connection-profile-id: El ID del 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: El nombre de usuario de la base de datos
- password: La contraseña del usuario de la base de datos
- cloud-sql-instance-id: Es 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", "mysql": { "host": "host-ip-address", "port": 3306, "username": "username", "password": "password", "cloud_sql_id": "cloud-sql-instance-id" } }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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 detallada sobre el uso de gcloud
para crear perfiles de conexión de Database Migration Service, haz clic aquí.
Para obtener más información sobre el uso de gcloud
para crear un perfil de conexión para una base de datos de origen de Cloud SQL para MySQL, haz clic aquí.
Crea un perfil de conexión para el destino de Cloud SQL para MySQL
A continuación, se muestra una solicitud para crear un perfil de conexión para un destino de Cloud SQL para MySQL. Database Migration Service usa la información de esta solicitud para crear una nueva instancia de Cloud SQL para MySQL.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: el ID del proyecto
- region: La región del proyecto
- connection-profile-id: El ID del 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, MYSQL_5_7.
- tier: Es el tipo de máquina. Por ejemplo, db-custom-1-4096.
- data-disk-type: Es el tipo de disco de datos. Por ejemplo, PD_SSD.
- data-disk-size-gb: Es el tamaño del disco de datos, expresado en GB. Por ejemplo, 20.
- zone: Es la zona de la región del proyecto.
- cmek_key_name: Opcional: Es la ruta de acceso completa y el nombre de una clave de encriptación administrada 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 están encriptados en reposo con los mismos sistemas de administración de claves endurecidos que usamos para nuestros propios datos encriptados. Estos sistemas de administración de claves proporcionan auditorías y controles de acceso a claves estrictos, y encriptan los datos en reposo del usuario con estándares de encriptación AES-256. No se requiere configuración ni administración.La encriptación en reposo predeterminada de Google Cloudes la mejor opción para los usuarios que no tienen requisitos específicos relacionados con el cumplimiento o la localidad del material criptográfico.
Si necesitas más control sobre las claves que se usan para encriptar los datos en reposo en un proyecto de Google Cloud , Database Migration Service ofrece la capacidad de proteger tus datos con claves de encriptación que administras en Cloud Key Management Service (KMS). Estas claves de encriptación se denominan claves de encriptación administradas por el cliente (CMEK). Cuando proteges datos en Database Migration Service con una CMEK, esta queda bajo tu control.
El parámetro cmek_key_name
está asociado con tener un CMEK que Database Migration Service puede
usar para encriptar 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 llavero de claves de tu CMEK. Un llavero de claves organiza las claves en una ubicación específica de Google Cloud y te permite administrar el control de acceso a los grupos de claves. El nombre de un llavero de claves no necesita ser único en todo un proyecto de Google Cloud , pero debe ser único en una ubicación determinada. Para obtener más información sobre los llaveros de claves, consulta Recursos de Cloud KMS.
Como parte de la creación del perfil de conexión, Database Migration Service verificará que la CMEK exista y que Database Migration Service tenga permisos para usar la clave.
Si no se cumple alguna de estas condiciones, se mostrará el siguiente mensaje de error:
CMEK_DOES_NOT_EXIST_OR_MISSING_PERMISSIONS
Para resolver este problema, verifica que la clave que proporcionaste exista y que la
cuenta de servicio de Database Migration Service tenga el permiso cloudkms.cryptoKeys.get
para la clave.
Si prefieres usar el sistema de administración de claves interno de Google Clouden lugar de un CMEK para encriptar tus datos, no incluyas el parámetro y el valor cmek_key_name
en tu solicitud a la 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, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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 detallada sobre el uso de gcloud
para crear perfiles de conexión de Database Migration Service, haz clic aquí.
Obtén información sobre un perfil de conexión
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: el ID del proyecto
- region: La región del proyecto
- connection-profile-id: El ID del 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, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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", "mysql": { "host": "host-ip-address", "port": 3306, "username": "username" } }
gcloud
Si deseas obtener más información sobre el uso de gcloud
para recuperar información sobre tu perfil de conexión, haz clic aquí.
Enumera perfiles de conexión
A continuación, se muestra una solicitud para recuperar información sobre todos tus perfiles de conexión.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: el ID del proyecto
- region: La región del proyecto
orderBy:
Usa este filtro para recuperar una lista de todos los perfiles de conexión de una región en particular en orden alfabético. Por ejemplo, el filtroorderBy=name
muestra todos los perfiles de conexión, alfabéticamente, por nombre.-
pageSize:
Usa este filtro para especificar la cantidad máxima de perfiles de conexión que recupera y muestra Database Migration Service en una página. Por ejemplo, si configuraspageSize=10
, Database Migration Service mostrará hasta 10 perfiles de conexión para una 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 recuperar la lista de los perfiles de conexión de la siguiente página.
Método HTTP y URL:
GET https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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", "mysql": { "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", "mysql": { "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
Si deseas obtener más información sobre el uso de gcloud
para recuperar información sobre todos tus perfiles de conexión, haz clic aquí.
Actualiza 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 existente. Cuando usas el parámetro updateMask
en la solicitud, solo se deben incluir estos campos en el cuerpo de la solicitud.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: el ID del proyecto
- region: La región del proyecto
- connection-profile-id: El ID del perfil de conexión
- username: El 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=mysql.username,mysql.password
Cuerpo JSON de la solicitud:
{ "mysql" { "username": "username", "password": "password" } }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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
Si deseas obtener más información para usar gcloud
y actualizar tu perfil de conexión, haz clic aquí.
Borrar un perfil de conexión
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: el ID del proyecto
- region: La región del proyecto
- connection-profile-id: El ID del 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, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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
Si deseas obtener más información para usar gcloud
y borrar tu perfil de conexión, haz clic aquí.
Borra un perfil de conexión y la instancia de Cloud SQL asociada
A continuación, se muestra una solicitud para borrar un perfil de conexión de destino, así como la eliminación en cascada de la instancia de Cloud SQL asociada.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: el ID del proyecto
- region: La región del proyecto
- connection-profile-id: El ID del 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, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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
Si deseas obtener más información para usar gcloud
y borrar tu perfil de conexión y la instancia de Cloud SQL asociada, haz clic aquí.