Gérer les profils de connexion

Présentation

Dans cette section, vous allez apprendre à utiliser l'API Datastream pour :

  • Créer des profils de connexion pour une base de données Oracle source, une base de données MySQL source et un bucket Cloud Storage de destination
  • Récupérer des informations sur les profils de connexion, les mettre à jour et les supprimer
  • Découvrir la structure des profils de connexion source ou de destination

Vous pouvez utiliser l'API Datastream de deux manières. Vous pouvez effectuer des appels d'API REST ou utiliser l'outil de ligne de commande (CLI) gcloud.

Pour obtenir des informations générales sur l'utilisation de gcloud afin de gérer des profils de connexion DataStream, cliquez ici.

Créer un profil de connexion pour une base de données Oracle source

Le code suivant montre une requête de création d'un profil de connexion pour une base de données Oracle, et spécifie la méthode de connectivité comme utilisant des adresses IP statiques (liste d'autorisation d'adresses IP).

REST

POST https://datastream.googleapis.com/v1/projects/[project-id]/locations/
[location]/connectionProfiles?connectionProfileId=[connection-profile-id]
{
  "displayName": "[connection-profile-display-name]",
  "oracleProfile": {
    "hostname": "[host-ip-address]",
    "port": [port],
    "username": "[username]",
    "password": "[password]",
    "databaseService": "[database]"
  },
  "staticServiceIpConnectivity": {}
}

Exemple :

POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/connectionProfiles?connectionProfileId=myOracleCP
{
  "displayName": "my Oracle database",
  "oracleProfile": {
    "hostname": "1.2.3.4",
    "port": 1521,
    "username": "admin",
    "password": "12345"
    "databaseService": "ORCL",
  },
  "staticServiceIpConnectivity": {}
}

Le code suivant montre une requête de création d'un profil de connexion pour une base de données Oracle et spécifie la méthode de connectivité en tant que connectivité privée (appairage VPC).

Cette méthode établit une connectivité sécurisée entre Datastream et la base de données source (en interne au sein de Google Cloud, ou avec des sources externes connectées via VPN ou Interconnect). Cette communication se fait via une connexion d'appairage de VPC.

POST https://datastream.googleapis.com/v1/projects/[project-id]/locations/
[location]/connectionProfiles?connectionProfileId=[connection-profile-id]
{
  "displayName": "[connection-profile-display-name]",
  "oracleProfile": {
    "hostname": "[host-ip-address]",
    "port": [port],
    "username": "[username]",
    "password": "[password]",
    "databaseService": "[database]"
  },
  "privateConnectivity": {
    "privateConnectionName": "https://datastream.googleapis.com/v1/projects/
    [project-id]/locations/[location]/privateConnections/
    [private-connectivity-configuration-id]"
  }
}

Exemple :

POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/connectionProfiles?connectionProfileId=myOracleVPCPeeringCP
{
  "displayName": "my Oracle database",
  "oracleProfile": {
    "hostname": "1.2.3.4",
    "port": 1521,
    "username": "admin",
    "password": "12345"
    "databaseService": "ORCL",
  },
    "privateConnectivity": {
      "privateConnectionName": "https://datastream.googleapis.com/v1/projects/
       myProjectId/locations/us-central1/privateConnections/myPrivateConnection"
  }
}

Une fois le profil de connexion créé, vous pouvez afficher des informations à son sujet en appelant la méthode connectionProfiles/get. Un résultat semblable aux lignes suivantes s'affiche :

{
  "name": "projects/projectId/location/us-central1/connectionProfiles/myOracleVPCPeeringCP",
  "createTime": "2019-12-22T16:17:37.159786963Z",
  "updateTime": "2019-12-22T16:17:37.159786963Z",
  "displayName": "my Oracle database",
  "oracleProfile": {
    "hostname": "1.2.3.4",
    "port": 1521,
    "databaseService": "ORCL",
    "username": "admin"
  },
  "privateConnectivity": {
    "privateConnectionName": "https://datastream.googleapis.com/v1/projects/
     myProjectId/locations/us-central1/privateConnections/myPrivateConnection"
  }
}

Créer un profil de connexion pour une base de données MySQL source

Le code suivant montre une requête de création d'un profil de connexion pour une base de données MySQL, et spécifie la méthode de connectivité comme utilisant des adresses IP statiques (liste d'autorisation d'adresses IP).

REST

POST https://datastream.googleapis.com/v1/projects/[project-id]/locations/
[location]/connectionProfiles?connectionProfileId=[connection-profile-id]
{
  "displayName": "[connection-profile-display-name]",
  "mysqlProfile": {
    "hostname": "[host-ip-address]",
    "port": [port],
    "username": "[username]",
    "password": "[password]",
  },
  "staticServiceIpConnectivity": {}
}

Exemple :

POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/connectionProfiles?connectionProfileId=mysql-cp
{
  "displayName": "my MySQL database",
  "mysqlProfile": {
    "hostname": "1.2.3.4",
    "port": 3306,
    "username": "root",
    "password": "12345"
  },
  "staticServiceIpConnectivity": {}
}

Créer un profil de connexion pour un bucket Cloud Storage de destination

Le code suivant montre une requête de création de profil de connexion pour un bucket Cloud Storage. Cloud Storage se trouvant sur le même réseau que Datastream, aucune connectivité spéciale n'est requise. Par conséquent, aucune méthode de connectivité n'est spécifiée.

REST

POST https://datastream.googleapis.com/v1/projects/[project-id/locations/
[location]/connectionProfiles?connectionProfileId=[connection-profile-id]
{
  "displayName": "connection-profile-display-name",
  "gcsProfile": {
    "bucketName": "bucket-name",
    "rootPath": "prefix-inside-bucket"
  }
}

Exemple :

POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/connectionProfiles?connectionProfileId=myGcsCP
{
  "displayName": "my Cloud Storage bucket",
  "gcsProfile": {
    "bucketName": "myBucket",
    "rootPath": "prefix-inside-bucket"
  }
}

Obtenir des informations sur un profil de connexion

Le code suivant montre une requête de récupération d'informations sur un profil de connexion pour une base de données Oracle source, une base de données MySQL source ou un bucket Cloud Storage de destination qui a été créé.

REST

GET https://datastream.googleapis.com/v1/projects/project-id/locations/
[location]/connectionProfiles/[connection-profile-id]

Exemple :

GET https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/connectionProfiles/myOracleCP

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

Le code suivant montre une requête de récupération d'informations sur tous vos profils de connexion.

REST

GET https://datastream.googleapis.com/v1/projects/[project-id]/locations/
[location]/connectionProfiles

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

Le code suivant montre une requête de modification du nom d'utilisateur et du mot de passe d'un profil de connexion existant pour une base de données source.

Si vous utilisez le paramètre updateMask dans la requête, seuls les champs que vous spécifiez doivent être inclus dans le corps de la requête (dans cet exemple, les champs username et password, représentés par les options oracle_profile.username etoracle_profile.password, respectivement).

REST

PATCH https://datastream.googleapis.com/v1/projects/[project-id]/locations/
[location]/connectionProfiles/[connection-profile-id]?
updateMask=oracle_profile.username,oracle_profile.password
{
  "oracleProfile": {
    "username": "username",
    "password": "password"
  }
}

Exemple :

PATCH https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/connectionProfiles/myOracleCP?
updateMask=oracle_profile.username,oracle_profile.password
{
  "oracleProfile": {
    "username": "username",
    "password": "password"
  }
}

Le code suivant montre une requête de modification de la configuration de connectivité privée attribuée à un profil de connexion. Ce profil de connexion utilise la méthode de connectivité réseau de l'appairage VPC.

Dans cet exemple, vous attribuez la configuration new_private_connection au profil de connexion.

PATCH -d {\"private_connectivity\":{\"private_connection_name\":\
"https://datastream.googleapis.com/v1/
projects/[project-id]/locations/[location]/privateConnections/
new_private_connection\"}}" -H "Authorization: Bearer $TOKEN" -H
"Content-Type: application/json" https://datastream.googleapis.com/v1/
projects/[project-id]/locations/[location]/connectionProfiles/
[connection-profile-id]?update_mask=private_connectivity.private_connection_name

Exemple :

PATCH -d {\"private_connectivity\":{\"private_connection_name\":\
"https://datastream.googleapis.com/v1/
projects/myProjectId/locations/us-central1/privateConnections/
new_private_connection\"}}" -H "Authorization: Bearer $TOKEN" -H
"Content-Type: application/json"
https://datastream.googleapis.com/v1/projects/
myProjectId/locations/us-central1/connectionProfiles/
myOracleVPCPeeringCP?update_mask=private_connectivity.private_connection_name

Supprimer un profil de connexion

Le code suivant montre une requête de suppression d'un profil de connexion. Une fois le profil de connexion supprimé, tous les flux qui l'utilisent échoueront.

REST

DELETE https://datastream.googleapis.com/v1/projects/[project-id]/locations/
[location]/connectionProfiles/[connection-profile-id]

Exemple :

DELETE https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/connectionProfiles/myOracleCP

gcloud

Pour en savoir plus sur la suppression de votre profil de connexion à l'aide de gcloud, cliquez ici.

Découvrir la structure d'un profil de connexion source ou de destination

Utilisez l'API discoverConnectionProfile pour extraire la liste des entités (par exemple, des schémas et des tables) à partir d'un profil de connexion source ou de destination, ainsi que les métadonnées associées aux entités.

L'API peut recevoir comme paramètre l'ID d'un profil de connexion existant ou une définition d'objet de profil de connexion complète. La fonction peut renvoyer un niveau unique (par exemple, tous les schémas d'une base de données ou toutes les tables d'un schéma), ou toutes les entités de manière récursive (schémas, tables et colonnes, par exemple).

REST

POST https://datastream.googleapis.com/v1/projects/[project-id]/locations/
[location]/connectionProfiles:discoverConnectionProfile?connection-profile-id

Exemple :

POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/connectionProfiles:discoverConnectionProfile?myOracleCP