Présentation
Sur cette page, vous allez apprendre à utiliser l'API Database Migration Service pour gérer les profils de connexion d'une base de données source MySQL.
Vous pouvez utiliser l'API Database Migration Service de deux manières. Vous pouvez effectuer des appels d'API REST ou utiliser la Google Cloud CLI (CLI).
Pour obtenir des informations générales sur l'utilisation de gcloud
afin de gérer les profils de connexion Database Migration Service, cliquez ici.
Créer un profil de connexion pour une base de données source MySQL
Le code suivant montre une requête de création d'un profil de connexion pour une base de données source MySQL.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- project-id : ID du projet
- region : région du projet
- connection-profile-id: ID du profil de connexion
- connection-profile-display-name: nom à afficher du profil de connexion
- host-ip-address: adresse IP source
- username: nom de l'utilisateur de la base de données
- password: mot de passe de l'utilisateur de la base de données
- client-key: clé privée non chiffrée PKCS#1 ou PKCS#8 encodée au format PEM associée au certificat client. Si ce champ est utilisé, le champ
clientCertificate
est obligatoire. - client-certificate: certificat X.509 encodé au format PEM qui permettra à l'instance dupliquée de s'authentifier auprès du serveur de base de données source. Si ce champ est utilisé, le champ
clientKey
est obligatoire. - ca-certificate : valeur obligatoire. Certificat X.509, encodé au format PEM, de l'autorité qui a délivré le certificat du serveur de base de données source. L'instance dupliquée utilisera ce certificat pour vérifier qu'elle se connecte au bon hôte.
Méthode HTTP et URL :
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles?connectionProfileId=connection-profile-id
Corps JSON de la requête :
{ "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" } } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "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
Pour obtenir des informations générales sur l'utilisation de gcloud
afin de créer des profils de connexion Database Migration Service, cliquez ici.
Pour en savoir plus sur l'utilisation de gcloud
pour créer un profil de connexion pour une base de données source MySQL, cliquez ici.
Une fois le profil de connexion créé, vous pouvez afficher les informations le concernant en appelant la méthode connectionProfiles/get
.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- project-id : ID du projet
- region : région du projet
- connection-profile-id: ID du profil de connexion
Méthode HTTP et URL :
GET https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "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
Pour en savoir plus sur l'utilisation de gcloud
afin de récupérer des informations sur votre profil de connexion, cliquez ici.
Créer un profil de connexion pour une base de données source Cloud SQL pour MySQL
Le code suivant montre une requête de création d'un profil de connexion pour une base de données source Cloud SQL pour MySQL. Cet exemple utilise un profil de connexion MySQL, car il se connecte au moteur de base de données MySQL, et non à la couche de gestion Cloud SQL.
Pour créer l'association entre la source et le réplicat à l'aide de Cloud SQL, vous devez fournir l'ID d'instance de votre base de données Cloud SQL. Vous pouvez trouver la valeur de l'ID de l'instance à l'aide de la méthode databases/list
de l'API Cloud SQL Admin.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- project-id : ID du projet
- region : région du projet
- connection-profile-id: ID du profil de connexion
- connection-profile-display-name: nom à afficher du profil de connexion
- host-ip-address: adresse IP source
- username: nom de l'utilisateur de la base de données
- password: mot de passe de l'utilisateur de la base de données
- cloud-sql-instance-id: ID de l'instance Cloud SQL
Méthode HTTP et URL :
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles?connectionProfileId=connection-profile-id
Corps JSON de la requête :
{ "displayName": "connection-profile-display-name", "mysql": { "host": "host-ip-address", "port": 3306, "username": "username", "password": "password", "cloud_sql_id": "cloud-sql-instance-id" } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "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
Pour obtenir des informations générales sur l'utilisation de gcloud
afin de créer des profils de connexion Database Migration Service, cliquez ici.
Pour en savoir plus sur l'utilisation de gcloud
pour créer un profil de connexion pour une base de données source Cloud SQL pour MySQL, cliquez ici.
Créer un profil de connexion pour la destination Cloud SQL pour MySQL
Le code suivant montre une requête de création d'un profil de connexion pour une destination Cloud SQL pour MySQL. Database Migration Service utilise les informations de cette requête pour créer une instance Cloud SQL pour MySQL.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- project-id : ID du projet
- region : région du projet
- connection-profile-id: ID du profil de connexion
- connection-profile-display-name: nom à afficher du profil de connexion
- database-version : version de la base de données. Par exemple, MYSQL_5_7.
- tier: type de machine. Par exemple, db-custom-1-4096.
- data-disk-type: type de disque de données. Par exemple, "PD_SSD".
- data-disk-size-gb: taille du disque de données, en Go. (par exemple, 20).
- zone: zone de la région du projet
- cmek_key_name: Facultatif: chemin d'accès complet et nom d'une clé de chiffrement gérée par le client (CMEK). Par exemple, "projects/project-id/locations/location/keyRings/ring/cryptoKeys/customer-managed-encryption-key".
Toutes les données stockées dans Google Cloud sont chiffrées au repos à l'aide des mêmes systèmes de gestion des clés renforcés que ceux que nous utilisons pour nos propres données chiffrées. Ces systèmes de gestion de clés fournissent des contrôles d'accès et des audits de clés stricts, et chiffrent les données utilisateur au repos à l'aide des normes de chiffrement AES-256. Aucune configuration, configuration ni gestion n'est requise.Le chiffrement au repos par défaut de Google Cloudest le meilleur choix pour les utilisateurs qui n'ont pas d'exigences spécifiques liées à la conformité ou à la localité du matériel de cryptographie.
Si vous avez besoin de plus de contrôle sur les clés utilisées pour chiffrer les données au repos dans un projet Google Cloud , Database Migration Service vous permet de protéger vos données à l'aide de clés de chiffrement que vous gérez dans Cloud Key Management Service (KMS). Ces clés de chiffrement sont appelées clés de chiffrement gérées par le client (CMEK). Lorsque vous protégez les données de Database Migration Service à l'aide d'une clé CMEK, vous contrôlez cette clé.
Le paramètre cmek_key_name
est associé à un CMEK que Database Migration Service peut utiliser pour chiffrer les données migrées de la source vers la destination. Le CMEK est représenté par l'espace réservé customer-managed-encryption-key.
L'espace réservé ring représente le trousseau de clés de votre CMEK. Un trousseau de clés organise les clés dans un emplacement Google Cloud spécifique et vous permet de gérer le contrôle des accès sur des groupes de clés. Le nom d'un trousseau de clés ne doit pas nécessairement être unique au sein d'un projet Google Cloud , mais doit être unique dans un emplacement donné. Pour en savoir plus sur les trousseaux de clés, consultez la page Ressources Cloud KMS.
Lors de la création du profil de connexion, Database Migration Service vérifie que la clé CMEK existe et qu'il est autorisé à l'utiliser.
Si l'une de ces conditions n'est pas remplie, le message d'erreur suivant s'affiche:
CMEK_DOES_NOT_EXIST_OR_MISSING_PERMISSIONS
Pour résoudre ce problème, vérifiez que la clé que vous avez fournie existe et que le compte de service Database Migration Service dispose de l'autorisation cloudkms.cryptoKeys.get
pour la clé.
Si vous préférez utiliser le système de gestion des clés interne de Google Cloudau lieu d'un CMEK pour chiffrer vos données, n'incluez pas le paramètre et la valeur cmek_key_name
dans votre requête API.
Méthode HTTP et URL :
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles?connectionProfileId=connection-profile-id
Corps JSON de la requête :
{ "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" } } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "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
Pour obtenir des informations générales sur l'utilisation de gcloud
afin de créer des profils de connexion Database Migration Service, cliquez ici.
Obtenir des informations sur un profil de connexion
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- project-id : ID du projet
- region : région du projet
- connection-profile-id: ID du profil de connexion
Méthode HTTP et URL :
GET https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "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
Pour en savoir plus sur l'utilisation de gcloud
afin de récupérer des informations sur votre profil de connexion, cliquez ici.
Répertorier les profils de connexion
La requête suivante montre comment récupérer des informations sur tous vos profils de connexion.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- project-id : ID du projet
- region : région du projet
orderBy:
Utilisez ce filtre pour récupérer la liste de tous les profils de connexion d'une région donnée, par ordre alphabétique. Par exemple, le filtreorderBy=name
renvoie tous les profils de connexion, par ordre alphabétique, par nom.-
pageSize:
Utilisez ce filtre pour spécifier le nombre maximal de profils de connexion que Database Migration Service récupère et affiche sur une page. Par exemple, en définissantpageSize=10
, Database Migration Service renvoie jusqu'à 10 profils de connexion pour une page.
Si vous avez configuré plus de 10 profils de connexion, ils s'affichent sur d'autres pages. À la fin de chaque page, un paramètre nextPageToken
et un identifiant unique s'affichent. Utilisez l'identifiant pour récupérer la liste des profils de connexion de la page suivante.
Méthode HTTP et URL :
GET https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "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
Pour en savoir plus sur l'utilisation de gcloud
afin de récupérer des informations sur tous vos profils de connexion, cliquez ici.
Modifier un profil de connexion
La requête suivante montre une requête de mise à jour des champs de nom d'utilisateur et de mot de passe d'un profil de connexion existant. Si vous utilisez le paramètre updateMask
dans la requête, seuls ces champs doivent être inclus dans le corps de la requête.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- project-id : ID du projet
- region : région du projet
- connection-profile-id: ID du profil de connexion
- username: nom de l'utilisateur de la base de données
- password: mot de passe de l'utilisateur de la base de données
Méthode HTTP et URL :
PATCH https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id?updateMask=mysql.username,mysql.password
Corps JSON de la requête :
{ "mysql" { "username": "username", "password": "password" } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "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
Pour en savoir plus sur l'utilisation de gcloud
afin de mettre à jour votre profil de connexion, cliquez ici.
Supprimer un profil de connexion
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- project-id : ID du projet
- region : région du projet
- connection-profile-id: ID du profil de connexion
Méthode HTTP et URL :
DELETE https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "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
Pour en savoir plus sur la suppression de votre profil de connexion à l'aide de gcloud
, cliquez ici.
Supprimer un profil de connexion et l'instance Cloud SQL associée
L'exemple suivant montre une requête de suppression d'un profil de connexion de destination, ainsi que la suppression en cascade de l'instance Cloud SQL associée.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- project-id : ID du projet
- region : région du projet
- connection-profile-id: ID du profil de connexion
Méthode HTTP et URL :
DELETE https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id?force=true
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "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
Pour en savoir plus sur la suppression de votre profil de connexion et de l'instance Cloud SQL associée à l'aide de gcloud
, cliquez ici.