Démarrage rapide
Prérequis pour suivre ce tutoriel
Afin de profiter des fonctionnalités de gestion de base de données PostgreSQL depuis la plateforme NumSpot, les prérequis sont :
- Un compte utilisateur NumSpot actif et connecté détenant le rôle
Postgres Admin
. - Ce compte doit être rattaché à un espace NumSpot.
De plus, certaines des commandes fournies à titre d'exemple dans ce document utilisent l'application psql
. Il est donc nécessaire que cet outil soit disponible dans l'environnement d'exécution.
Préparer mon environnement d'exécution
Les interactions avec l'API HTTP de NumSpot nécessitent d'être authentifié par un jeton d'accès (Access Token) dans une région et un espace donné. Il est donc nécessaire de préparer un environnement d'exécution en conséquence. Cet environnement sera utilisé par les commandes fournies dans ce document.
Nous utiliserons la région cloudgouv-eu-west-1
.
Générer mon access token
Les API ont besoin d'avoir un token d'accès
valide pour fonctionner.
Il est de la forme bearer.
export REGION="myregion"
curl -X POST https://api.$REGION.numspot.cloud/iam/token \
-H 'Accept: */*' \
-u "${SA_idKey}":"${SA_KeyPass}" \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'grant_type=client_credentials&scope=openid+offline_access'
Une fois que le token est renvoyé, il faudra l'ajouter aux autres demandes sous cette forme :
curl ... -H "Authorization: Bearer {token}"
Déclarer mon environnement
export REGION="cloudgouv-eu-west-1"
export SPACE_ID="5ab07e66-3e16-4c6b-b8ff-82af206a603a"
export ACCESS_TOKEN="myaccesstoken"
L'identifiant unique de l'espace (SPACE_ID) peut être récupéré via la console à partir de mon menu latéral gauche : IAM > Espaces
Créer mon premier cluster PostgreSQL
Pour commencer, nous allons configurer un cluster PostgreSQL basique adapté à un environnement de développement ou de prototypage.
Pour créer votre premier cluster PostgreSQL managé, requêtez le point d’accès : /postgresql/spaces/$SPACE_ID/clusters
Puis personnalisez certains champs de la requête :
- name : le nom du cluster.
- automaticBackup : les backups automatiques quotidiens (true/false).
- user : le login admin.
- allowedIpRanges : le(s) masque(s) réseau(x) autorisés à accéder à la base PostgreSQL managée.
Le mot de passe admin sera transmis dans la réponse à cette requête.
curl -X POST \
--url https://api.$REGION.numspot.com/postgresql/spaces/$SPACE_ID/clusters \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer ${ACCESS_TOKEN}" \
--data '{
"name": "myfirstcluster",
"automaticBackup": true,
"user": "admin",
"nodeConfiguration": {
"vcpuCount": 2,
"performanceLevel": "MEDIUM",
"memorySizeGiB": 4
},
"volume": {
"type": "GP2",
"sizeGiB": 10
},
"tags": [
{"key": "Key2", "value": "Value3"}
],
"allowedIpRanges": ["X.X.X.X/X"]
}'
Cette commande crée un cluster PostgreSQL nommé “myfirstcluster” dans NumSpot avec les backups quotidiens automatiques, 10 Gio de stockage, 4 Gio de RAM, 2 vCPU en performance Medium et le login admin fourni.
{
"allowedIpRanges": ["X.X.X.X/X"],
"automaticBackup": true,
"createdOn": "2024-10-17T08:26:32Z",
"id": "b95f6603-96f9-4c28-89c8-42555048afde",
"lastOperationName": "CREATE",
"lastOperationResult": "IN_PROGRESS",
"name": "myfirstcluster",
"nodeConfiguration": {
"memorySizeGiB": 4,
"performanceLevel": "MEDIUM",
"vcpuCount": 2
},
"password": "gOMsGFN~HdUuSCq9syfc.695Pao+H/}2",
"status": "CREATING",
"tags": [
{"key": "Key2", "value": "Value3"}
],
"user": "admin",
"volume": {
"sizeGiB": 10,
"type": "GP2"
}
}
- Le champ status indique que l'état actuel de votre cluster est en cours de provisionnement.
- Le champ lastOperationName indique que la dernière opération demandée est la création.
- Le champ lastOperationResult indique que l’état actuel de la dernière opération demandée est en cours.
- Le champ password est le mot de passe de l’utilisateur administrateur spécifié lors de la demande de création.
Veillez à bien enregistrer votre mot de passe administrateur, ce dernier est généré de manière automatique et sécurisée sans être stocké sur nos infrastructures.
Suivre l’état de provisionnement du cluster
L’état d’avancement de la création du cluster et les différentes informations relatives à ce dernier sont disponibles via le point d’accès : /postgresql/spaces/$SPACE_ID/clusters/<CLUSTER_ID>
curl -X GET \
--url https://api.$REGION.numspot.com/postgresql/spaces/$SPACE_ID/clusters/$CLUSTER_ID \
--header "Authorization: Bearer ${ACCESS_TOKEN}"
{
"allowedIpRanges": ["X.X.X.X/X"],
"automaticBackup": true,
"createdOn": "2024-10-17T08:26:32Z",
"host": "b95f6603-96f9-4c28-89c8-42555048afde.cloud-api.cloudgouv-eu-west-1.numspot.com/postgresql",
"id": "b95f6603-96f9-4c28-89c8-42555048afde",
"lastOperationName": "CREATE",
"lastOperationResult": "SUCCEEDED",
"name": "mydatabase",
"nodeConfiguration": {
"memorySizeGiB": 4,
"performanceLevel": "MEDIUM",
"vcpuCount": 2
},
"port": 5432,
"status": "READY",
"tags": [
{"key": "Key2", "value": "Value3"}
],
"user": "admin",
"volume": {
"sizeGiB": 10,
"type": "GP2"
}
}
- Le champ host est l'adresse de connexion du cluster.
- Lorsque le champ status passe à
READY
, alors votre cluster est provisionné et prêt à être utilisé.
Me connecter à mon cluster
Avec l'application psql
, tapez la commande suivante pour vous connecter à votre cluster :
psql -h $CLUSTER_ID.cloud-postgresql.prod.cloudgouv-eu-west-1.numspot.com -p 5432 -U $USER -d postgres -W
-h <host>
: le nom d'hôte ou l'adresse IP du cluster PostgreSQL managé.-p <port>
: le port d'écoute du serveur PostgreSQL.-U <username>
: l'utilisateur admin spécifié à la création du cluster.-d
: la base de données cible à laquelle se connecter.-W
: cette option demandera d'entrer le mot de passe admin après avoir lancé la commande.
Vous avez maintenant un cluster PostgreSQL managé sur NumSpot, prêt à l'emploi. Vous pouvez l'utiliser pour stocker et gérer les données de vos applications tout en bénéficiant des fonctionnalités de la plateforme NumSpot.