Gérer les profils de connexion

L'API Datastream vous permet de créer et de gérer de manière programmatique des profils de connexion qui stockent les informations d'authentification et de connectivité de vos sources et destinations. Vous pouvez effectuer des appels d'API REST ou utiliser la Google Cloud CLI. Par exemple, vous pouvez créer des profils pour les sources Oracle, MySQL, PostgreSQL, SQL Server, Salesforce et MongoDB, ainsi que pour les destinations BigQuery et Cloud Storage.

Vous pouvez également récupérer, lister, mettre à jour ou supprimer des profils de connexion, et découvrir la structure d'une base de données source. Pour en savoir plus sur la documentation de référence sur les commandes, consultez gcloud datastream connection-profiles. Pour obtenir un tutoriel de bout en bout, consultez Utiliser les API Datastream.

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 à l'aide d'un secret et de la méthode de connectivité par 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_ID_ADDRESS",
    "port": PORT,
    "username": "USERNAME",
    "databaseService": "DATABASE",
    "secretManagerStoredPassword": "SECRET_MANAGER_RESOURCE"
  },
  "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",
    "databaseService": "ORCL",
    "secretManagerStoredPassword": "projects/myProjectId/secrets/mySecret/versions/latest"
  },
  "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 dans Google Cloud, ou avec des sources externes connectées via VPN ou Interconnect). Cette communication s'effectue 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_ID_ADDRESS",
    "port": PORT,
    "username": "USERNAME",
    "password": "PASSWORD",
    "databaseService": "DATABASE"
  },
  "privateConnectivity": {
    "privateConnection": "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": {
      "privateConnection": "projects/myProjectId/locations/us-central1/
      privateConnections/myPrivateConnection"
    }
}

Une fois le profil de connexion créé, vous pouvez afficher des informations le concernant 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": {
    "privateConnection": "projects/myProjectId/locations/us-central1/
    privateConnections/myPrivateConnection"
  }
}

gcloud

Pour en savoir plus sur l'utilisation de gcloud pour créer un profil de connexion pour une base de données Oracle source, consultez la documentation du SDK Google Cloud.

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_ID_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": {}
}

gcloud

Pour en savoir plus sur l'utilisation de gcloud pour créer un profil de connexion pour une base de données MySQL source, consultez la documentation du SDK Google Cloud.

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

Le code suivant montre une requête de création d'un profil de connexion pour une base de données PostgreSQL.

REST

POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID
{
  "displayName": "[connection-profile-display-name]",
  "postgresqlProfile": {
    "hostname": "HOST_ID_ADDRESS",
    "port": PORT,
    "username": "USERNAME",
    "password": "PASSWORD",
    "database": "DATABASE"
  },
  "staticServiceIpConnectivity": {}
}

Exemple :

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

gcloud

Pour en savoir plus sur l'utilisation de gcloud pour créer des profils de connexion, consultez la documentation du SDK Google Cloud.

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

Le code suivant montre une requête de création d'un profil de connexion pour une base de données SQL Server et spécifie la méthode de connectivité à l'aide d'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]",
  "sqlserverProfile": {
    "hostname": "HOST_ID_ADDRESS",
    "port": PORT,
    "username": "USERNAME",
    "password": "PASSWORD",
    "database": "DATABASE"
  },
  "staticServiceIpConnectivity": {}
}

Exemple :

POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/connectionProfiles?connectionProfileId=sqlserver-cp
{
  "displayName": "my SQL Server database",
  "sqlserverProfile": {
    "hostname": "1.2.3.4",
    "port": 1433,
    "username": "root",
    "password": "12345"
    "database": "database1"
  },
  "staticServiceIpConnectivity": {}
}

gcloud

Pour en savoir plus sur l'utilisation de gcloud pour créer des profils de connexion, consultez la documentation du SDK Google Cloud.

Créer un profil de connexion pour une source Salesforce

Le code suivant montre une requête de création d'un profil de connexion pour une instance Salesforce source à l'aide d'un nom d'utilisateur et d'un mot de passe comme méthode d'authentification.

REST

POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID
{
  "displayName": "CONNECTION_PROFILE_NAME",
  "salesforceProfile": {
    "domain": "DOMAIN_NAME",
    "userCredentials": {
      "username": "USERNAME",
      "password": "PASSWORD",
      "securitytoken": "SECURITY_TOKEN"
    }
  }
}

Exemple :

POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/connectionProfiles?connectionProfileId=saleforce-cp
{
  "displayName": "My Salesforce connection profile",
  "salesforceProfile": {
    "domain": "domain.my.salesforce.com",
    "userCredentials": {
      "username": "mySalesforceUser",
      "password": "12345",
      "securitytoken": "C08120F510542FFB1C3640F57AF19E2D5D700556A25F7D665C3B428407709D8C"
    }
  }
}
  

gcloud

Pour en savoir plus sur l'utilisation de gcloud pour créer des profils de connexion, consultez la documentation du SDK Google Cloud.

Le code suivant montre une requête de création d'un profil de connexion pour une instance Salesforce source à l'aide d'identifiants client OAuth 2.0 comme méthode d'authentification.

REST

POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID
{
  "displayName": "CONNECTION_PROFILE_NAME",
  "salesforceProfile": {
    "domain": "DOMAIN_NAME",
    "oauth2ClientCredentials": {
      "clientId": "CLIENT_ID",
      "clientSecret": "CLIENT_SECRET"
    }
  }
}

Exemple :

POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/connectionProfiles?connectionProfileId=saleforce-cp
{
  "displayName": "My Salesforce connection profile",
  "salesforceProfile": {
    "domain": "domain.my.salesforce.com",
    "oauth2ClientCredentials": {
      "clientId": "myClientId",
      "clientSecret": "projects/myProject/secrets/sf-client-secret"
    }
  }
}
  

gcloud

Pour en savoir plus sur l'utilisation de gcloud pour créer des profils de connexion, consultez la documentation du SDK Google Cloud.

Créer un profil de connexion pour une source MongoDB

Le code suivant montre une requête de création d'un profil de connexion pour une instance MongoDB source à l'aide d'un format de chaîne de connexion SRV.

REST

POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID
{
  "displayName": "CONNECTION_PROFILE_NAME",
  "mongodbProfile": {
    "hostAddresses": [ {
      "hostname": "HOST_URI"
    } ],
    "username": "USERNAME",
    "password": "PASSWORD",
    "srvConnectionFormat": {}
    },
    "staticServiceIpConnectivity": {}
}

Exemple :

POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/connectionProfiles?connectionProfileId=mongodb-cp
{
  "displayName": "mongodb-cp",
  "mongodbProfile": {
    "hostAddresses": [ {
      "hostname": "cluster85828.ebeek.mongodb.net"
    } ],
    "username": "Cluster85828",
    "password": "password",
    "srvConnectionFormat": {}
    },
    "staticServiceIpConnectivity": {}
}
  

gcloud

Pour en savoir plus sur l'utilisation de gcloud pour créer des profils de connexion, consultez la documentation du SDK Google Cloud.

Le code suivant montre une requête de création d'un profil de connexion pour une instance MongoDB source à l'aide d'un format de chaîne de connexion standard.

REST

POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID
{
  "displayName": "CONNECTION_PROFILE_NAME",
  "mongodbProfile": {
    "hostAddresses": [ {
      "hostname": "HOST_IP",
      "port": "PORT_NUMBER"
    } ],
    "replica_set": "SET_ID",
    "username": "USERNAME",
    "password": "PASSWORD",
    "standardConnectionFormat": {
      "directConnection": false
    }
  },
  "staticServiceIpConnectivity": {}
}

Exemple :

POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/connectionProfiles?connectionProfileId=mongodb-cp
{
  "displayName": "mongodb-cp",
  "mongodbProfile": {
    "hostAddresses": [ {
      "hostname": "34.19.10.194",
      "port": "27017"
    } ],
    "replicaset": "rs0",
    "username": "root",
    "password": "password",
    "standardConnectionFormat": {
      "directConnection": false
    }
  },
  "staticServiceIpConnectivity": {}
}
  

gcloud

Pour en savoir plus sur l'utilisation de gcloud pour créer des profils de connexion, consultez la documentation du SDK Google Cloud.

Créer un profil de connexion pour une destination BigQuery

Le code suivant montre une requête de création d'un profil de connexion pour une destination BigQuery.

REST

POST https://datastream.googleapis.com/v1/projects/[project-id/locations/
LOCATION/connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID
{
  "displayName": "connection-profile-display-name",
  "bigqueryProfile": {}
}

Exemple :

POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/connectionProfiles?connectionProfileId=myBigqueryCP
{
  "displayName": "my BigQuery destination",
  "bigqueryProfile": {}
}

gcloud

Pour en savoir plus sur l'utilisation de gcloud pour créer des profils de connexion, consultez la documentation du SDK Google Cloud.

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

Le code suivant montre une requête de création d'un profil de connexion pour un bucket Cloud Storage. Comme Cloud Storage se trouve 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": {
    "bucket": "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": {
    "bucket": "myBucket",
    "rootPath": "prefix-inside-bucket"
  }
}

gcloud

Pour en savoir plus sur l'utilisation de gcloud pour créer un profil de connexion pour Cloud Storage, consultez la documentation du SDK Cloud.

Obtenir des informations sur un profil de connexion

Le code suivant montre une requête permettant de récupérer des informations sur un profil de connexion pour une base de données Oracle source, une base de données MySQL source, une destination BigQuery ou une destination Cloud Storage qui a été créée.

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 pour récupérer des informations sur votre profil de connexion, consultez la documentation du SDK Google Cloud.

Répertorier les profils de connexion

Le code suivant montre une requête permettant de récupérer des 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 pour récupérer des informations sur tous vos profils de connexion, consultez la documentation du SDK Google Cloud.

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 permettant de modifier la configuration de connectivité privée attribuée à un profil de connexion. Ce profil de connexion utilise la méthode de connectivité réseau par appairage de VPC.

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

PATCH -d {\"private_connectivity\":{\"private_connection\":\
"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

Exemple :

PATCH -d {\"private_connectivity\":{\"private_connection\":\
"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

gcloud

Pour en savoir plus sur l'utilisation de gcloud pour mettre à jour votre profil de connexion, consultez la documentation du SDK Google Cloud.

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 l'utilisation de gcloud pour supprimer votre profil de connexion, consultez la documentation du SDK Google Cloud.

Découvrir la structure d'une base de données source

Utilisez l'API discoverConnectionProfile pour récupérer la liste des entités (par exemple, les schémas et les tables) d'une source, ainsi que les métadonnées associées aux entités.

L'API peut recevoir en tant que 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 seul niveau (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 (par exemple, les schémas, les tables et les colonnes).

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

gcloud

Pour en savoir plus sur l'utilisation de gcloud pour découvrir la structure de votre base de données source, consultez la documentation du SDK Google Cloud.

Étapes suivantes