Présentation
Sur cette page, vous apprendrez à utiliser l'API Database Migration Service pour gérer les profils de connexion d'une base de données source PostgreSQL et d'une destination PostgreSQL.
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.
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 PostgreSQL
L'exemple suivant montre une requête de création d'un profil de connexion pour une base de données source PostgreSQL.
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 du profil de connexion à afficher
- host-ip-address : adresse IP source
- username : nom d'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 associée au certificat client et encodée au format PEM. Si ce champ est utilisé, le champ
clientCertificateest obligatoire. - client-certificate : certificat X.509 encodé au format PEM qui permettra à l'instance répliquée de s'authentifier auprès du serveur de base de données source. Si ce champ est utilisé, le champ
clientKeyest obligatoire. - ca-certificate : valeur obligatoire. Certificat X.509 de l'autorité qui a délivré le certificat du serveur de base de données source, encodé au format PEM. L'instance répliquée utilisera ce certificat pour s'assurer que la connexion s'effectue sur l'hôte approprié.
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",
"postgres": {
"host": "host-ip-address",
"port": 5432,
"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.
Une fois votre profil de connexion créé, vous pouvez afficher des 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",
"postgres": {
"host": "host-ip-address",
"port": 5432,
"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 PostgreSQL
L'exemple suivant montre une requête de création d'un profil de connexion pour une base de données source Cloud SQL pour PostgreSQL. Cet exemple utilise un profil de connexion PostgreSQL, car il se connecte au moteur de base de données PostgreSQL et non à la couche de gestion Cloud SQL.
Pour associer la source et l'instance répliquée à 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 du profil de connexion à afficher
- host-ip-address : adresse IP source
- username : nom d'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",
"postgres": {
"host": "host-ip-address",
"port": 5432,
"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 afin de créer un profil de connexion pour une base de données source Cloud SQL pour PostgreSQL, cliquez ici.
Créer un profil de connexion pour la destination Cloud SQL pour PostgreSQL
L'exemple suivant montre une requête de création d'un profil de connexion pour une destination Cloud SQL pour PostgreSQL. Database Migration Service utilise les informations de cette requête pour créer une instance Cloud SQL pour PostgreSQL.
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 du profil de connexion à afficher
- database-version : version de la base de données. Par exemple, POSTGRES_12.
- 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 dans 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 de 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 installation, 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 des données dans Database Migration Service à l'aide d'une clé CMEK, vous contrôlez cette clé.
Le paramètre cmek_key_name est associé à une clé CMEK que Database Migration Service peut utiliser pour chiffrer les données migrées de la source vers la destination. La clé CMEK est représentée par l'espace réservé customer-managed-encryption-key.
L'espace réservé ring représente le trousseau de clés pour 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 Ressources Cloud KMS.
Lors de la création du profil de connexion, Database Migration Service vérifiera 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 cette clé.
Si vous préférez utiliser le système de gestion de clés interne de Google Cloudplutôt qu'une 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",
"postgres": {
"host": "host-ip-address",
"port": 5432,
"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
L'exemple suivant montre une requête de récupération d'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 spécifique, par ordre alphabétique. Par exemple, le filtreorderBy=namerenvoie 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 renverra jusqu'à 10 profils de connexion pour une page.
S'il y a 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 pour 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",
"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
Pour en savoir plus sur l'utilisation de gcloud afin de récupérer des informations sur tous vos profils de connexion, cliquez ici.
Mettre à jour un profil de connexion
L'exemple suivant montre une requête permettant de mettre à jour les 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 d'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=postgres.username,postgres.password
Corps JSON de la requête :
{
"postgres" {
"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.