Cette rubrique explique comment accéder à une instance via HTTPS en utilisant le proxy d'accès sécurisé.
Prérequis
-
Le proxy d'accès sécurisé est activé pour l'instance.
RemarqueAffichez les instances pour lesquelles le proxy d'accès sécurisé est activé dans l'onglet Created de la page . Pour activer cette fonctionnalité, consultez la rubrique Activer le proxy d'accès sécurisé.
-
Vous êtes autorisé à utiliser le proxy d'accès sécurisé.
RemarqueVérifiez votre statut d'autorisation pour l'instance sur la page de détails du proxy d'accès sécurisé. Si vous n'êtes pas autorisé, consultez la rubrique Demander une autorisation pour le proxy d'accès sécurisé.
Remarques d'utilisation
Des règles de sécurité s'appliquent aux instances pour lesquelles le proxy d'accès sécurisé et la collaboration sécurisée sont tous deux activés. Nous vous recommandons de limiter chaque requête à un maximum de 3 000 lignes renvoyées. Data Management Service (DMS) ne peut pas garantir la stabilité si une requête renvoie un trop grand nombre de lignes.
Pour éviter les limitations imposées par les règles de sécurité, utilisez l'endpoint dans la console DMS pour accéder à la base de données ou contactez le support technique DMS afin d'évaluer votre scénario spécifique.
Pour les instances qui n'utilisent pas la fonctionnalité de collaboration sécurisée, vous ne pouvez pas configurer le nombre maximal de lignes à renvoyer. La limite par défaut est de 3 000 lignes.
Paramètres de requête
|
Paramètre |
Description |
Obligatoire |
Méthode |
|
accessId |
L'ID AccessKey. |
Oui |
Transmettez ce paramètre de l'une des manières suivantes :
|
|
accessSecret |
La clé secrète AccessKey. |
Oui |
Transmettez ce paramètre de l'une des manières suivantes :
|
|
schema |
Le nom de la base de données. |
Non |
Transmettez ce paramètre de l'une des manières suivantes :
|
|
sql |
L'instruction SQL à exécuter. |
Oui |
Transmettez ce paramètre de l'une des manières suivantes :
|
Format de réponse
Lorsque vous accédez à l'instance via HTTPS, la réponse est renvoyée au format JSON.
L'objet JSON présente la structure suivante :
|
Champ |
Type |
Description |
|
columnMetas |
Array |
Liste des métadonnées des colonnes. |
|
columnName |
String |
Nom de la colonne. |
|
columnLabel |
String |
Libellé de la colonne, qui correspond à l'alias spécifié après |
|
columnTypeName |
String |
Type de données de la colonne, tel que |
|
precision |
Integer |
Précision pour certains types de données. Par exemple, pour |
|
scale |
Integer |
Échelle pour les types de données à virgule flottante, qui indique le nombre de chiffres après la virgule décimale. Par exemple, pour |
|
nullable |
Boolean |
Indique si la colonne peut contenir des valeurs nulles. |
|
autoIncrement |
Boolean |
Indique si la colonne est en incrémentation automatique. |
|
tableName |
String |
Nom de la table contenant la colonne. |
|
msg |
String |
Message d'erreur renvoyé en cas d'échec de la requête. |
|
updateCount |
Integer |
Nombre d'enregistrements affectés par une instruction LMD (Langage de manipulation de données). |
|
requestId |
String |
ID de la requête. Utilisez cet ID pour le dépannage en cas de problème. |
|
rowCount |
Integer |
Nombre d'enregistrements renvoyés par une requête. |
|
rows |
Array |
Liste des enregistrements renvoyés par une requête. Chaque élément du tableau représente une ligne de données, similaire à une structure |
|
success |
Boolean |
Indique si la requête a réussi. |
Voici des exemples de réponses :
-
Requête réussie
{ "columnMetas": [ { "columnName":"column1", "columnLabel":"column1", "columnTypeName":"varchar", "precision":10, "scale":2, "nullable":true, "autoIncrement":true, "tableName":"table1" }, { "columnName":"column2", "columnLabel":"column2", "columnTypeName":"varchar", "precision":10, "scale":2, "nullable":true, "autoIncrement":true, "tableName":"table1" } ], "updateCount": 0, "requestId": "xhqej0xgcytbhc8scjopgqsywcaibi", "rowCount": 1, "rows": [ { "col1": 1, "col2": "xxxx" } ], "success": true } -
Mise à jour réussie
{ "updateCount": 0, "requestId": "xhqej0xgcytbhc8scjopgqsywcaibi", "success": true } -
Échec de la requête
{ "message": 'AccessKey ID is required.', "requestId": "xhqej0xgcytbhc8scjopgqsywcaibi", "success": false }
Exemples
Utilisez la ligne de commande, un client SQL ou du code applicatif pour accéder à une instance dont le proxy d'accès sécurisé est activé.
Les exemples suivants utilisent les valeurs suivantes : l'endpoint est dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com, le nom de la base de données est database, l'ID AccessKey est user, la clé secrète AccessKey est pwd et la commande SQL est SHOW DATABASES.
-
Utiliser la commande curl
# GET request curl 'https:///server/?accessId=&accessSecret=&sql='# GET request example curl 'https://dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com/server/database?accessId=user&accessSecret=pwd&sql=SHOW%20DATABASES'# POST request curl 'https:///server/' -H 'accessId:' -H 'accessSecret:' -H 'Content-Type:text/plain' -d ''# POST request example curl 'https://dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com/server/database' -H 'accessId:user' -H 'accessSecret:pwd' -H 'Content-Type:text/plain' -d 'SHOW DATABASES' -
Utiliser un programme Python
RemarqueCet exemple utilise Python 2.
Requête GET :
import requests url = "https:///server/?accessId=&accessSecret=&sql=" print requests.get(url).textExemple de requête GET :
import requests url = "https://dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com/server/database?accessId=user&accessSecret=pwd&sql=SHOW DATABASES" print requests.get(url).textRequête POST :
import requests url = "https:///server/" headers = { "Content-Type": "text/plain;charset=utf-8", "accessId": "", "accessSecret": "" } print requests.post(url, headers=headers, data='').textExemple de requête POST :
import requests url = "https://dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com/server/database" headers = { "Content-Type": "text/plain;charset=utf-8", "accessId": "user", "accessSecret": "pwd" } print requests.post(url, headers=headers, data='SHOW DATABASES').text -
Utiliser un programme Node.js
Requête GET :
const https = require("https"); https.get("https:///server/?accessId=&accessSecret=&sql=SHOW DATABASES", resp => { resp.on("data", data => { console.log(JSON.parse(data)); }); });Exemple de requête GET :
const https = require("https"); https.get("https://dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com/server/database?accessId=user&accessSecret=pwd&sql=SHOW DATABASES", resp => { resp.on("data", data => { console.log(JSON.parse(data)); }); });Requête POST :
const https = require("https"); var req = https.request({ hostname: '', port: 443, path: '/server/', method: 'POST', headers: { 'Content-Type': 'text/plain; charset=UTF-8', accessId: '', accessSecret: '' } }, resp => { resp.on("data", data => { console.log(JSON.parse(data)); }); }); req.write(""); req.end();Exemple de requête POST :
const https = require("https"); var req = https.request({ hostname: 'dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com', port: 443, path: '/server/database', method: 'POST', headers: { 'Content-Type': 'text/plain; charset=UTF-8', accessId: 'user', accessSecret: 'pwd' } }, resp => { resp.on("data", data => { console.log(JSON.parse(data)); }); }); req.write("SHOW DATABASES"); req.end(); -
Utiliser le client Postman
Requête GET : dans Postman, envoyez une requête GET à l'URL
https://dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com/server/. Dans les paramètres d'URL, définissez accessId sur votre ID AccessKey, accessSecret sur votre clé secrète AccessKey et sql sur l'instruction SQL que vous souhaitez exécuter, par exempleSHOW DATABASES. Cliquez sur Send.Requête POST : dans Postman, définissez la méthode de requête sur POST et l'URL sur
https://dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com/server/. Dans l'onglet Headers, ajoutez les en-têtes suivants : définissez Content-Type surtext/plain, accessId sur votre ID AccessKey et accessSecret sur votre clé secrète AccessKey. Dans l'onglet Body, sélectionnez raw, choisissez Text et saisissez l'instruction SQL, par exempleSHOW DATABASES, dans la zone de texte. Cliquez sur Send.