Tutoriel : Concevoir une base de données Azure pour PostgreSQL (serveur unique) à l’aide d’Azure CLI
S’APPLIQUE À : Azure Database pour PostgreSQL – Serveur unique versions
Important
Azure Database pour PostgreSQL - Serveur unique est en voie de mise hors service. Nous vous recommandons vivement de procéder à une mise à niveau vers un serveur flexible Azure Database pour PostgreSQL. Pour obtenir plus d’informations sur la migration vers Azure Database pour PostgreSQL – Serveur flexible, consultez Qu’en est-il du Serveur unique Azure Database pour PostgreSQL ?.
Dans ce didacticiel, vous allez utiliser l’interface Azure CLI (interface de ligne de commande) et d’autres utilitaires pour apprendre à :
- Créer un serveur Azure Database pour PostgreSQL
- Configurer le pare-feu du serveur
- Utiliser l’utilitaire psql pour créer une base de données
- Charger un exemple de données
- Interroger des données
- Mettre à jour des données
- Restaurer des données
Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.
Prérequis
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour plus d’informations, consultez Démarrage rapide pour Bash dans Azure Cloud Shell.
Si vous préférez exécuter les commandes de référence de l’interface de ligne de commande localement, installez l’interface Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Guide pratique pour exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour connaître les autres options de connexion, consultez Se connecter avec Azure CLI.
Lorsque vous y êtes invité, installez l’extension Azure CLI lors de la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
Lancement d’Azure Cloud Shell
Azure Cloud Shell est un interpréteur de commandes interactif et gratuit que vous pouvez utiliser pour exécuter les étapes de cet article. Il contient des outils Azure courants préinstallés et configurés pour être utilisés avec votre compte.
Pour ouvrir Cloud Shell, sélectionnez simplement Essayer en haut à droite d’un bloc de code. Vous pouvez aussi lancer Cloud Shell dans un onglet distinct du navigateur en accédant à https://shell.azure.com.
Quand Cloud Shell s’ouvre, vérifiez que Bash est sélectionné pour votre environnement. Les sessions ultérieures utiliseront Azure CLI dans un environnement Bash. Sélectionnez Copier pour copier les blocs de code, collez-les dans Cloud Shell, puis appuyez sur Entrée pour les exécuter.
Connexion à Azure
Cloud Shell est automatiquement authentifié sous le compte initial utilisé pour la connexion. Utilisez le script suivant pour vous connecter avec un autre abonnement, en remplaçant <Subscription ID>
par votre ID d’abonnement Azure. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.
subscription="<subscriptionId>" # add subscription here
az account set -s $subscription # ...or use 'az login'
Pour plus d’informations, consultez Définir l’abonnement actif ou Se connecter de manière interactive
Définir les valeurs de paramètres
Les valeurs ci-dessous sont utilisées dans les commandes suivantes pour créer la base de données et les ressources requises. Les noms de serveur doivent être globalement uniques dans l’ensemble d’Azure, de sorte que la fonction $RANDOM est utilisée pour créer le nom du serveur.
Modifiez l’emplacement, le cas échéant, en fonction de votre environnement. Remplacez 0.0.0.0
par la plage d’adresses IP pour les faire correspondre à votre environnement spécifique. Utilisez l’adresse IP publique de l’ordinateur que vous utilisez pour limiter l’accès au serveur à votre adresse IP uniquement.
# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
location="East US"
resourceGroup="msdocs-postgresql-rg-$randomIdentifier"
tag="create-postgresql-server-and-firewall-rule"
server="msdocs-postgresql-server-$randomIdentifier"
sku="GP_Gen5_2"
login="azureuser"
password="Pa$$w0rD-$randomIdentifier"
# Specify appropriate IP address values for your environment
# to limit / allow access to the PostgreSQL server
startIp=0.0.0.0
endIp=0.0.0.0
echo "Using resource group $resourceGroup with login: $login, password: $password..."
Créer un groupe de ressources
Créez un groupe de ressources avec la commande az group create. Un groupe de ressources Azure est un conteneur logique dans lequel les ressources Azure sont déployées et gérées. L’exemple suivant crée un groupe de ressources nommé myResourceGroup à l’emplacement eastus :
# Create a resource group
echo "Creating $resourceGroup in $location..."
az group create --name $resourceGroup --location "$location" --tags $tag
Créer un serveur
Créez un serveur avec la commande az postgres server create.
# Create a PostgreSQL server in the resource group
# Name of a server maps to DNS name and is thus required to be globally unique in Azure.
echo "Creating $server in $location..."
az postgres server create --name $server --resource-group $resourceGroup --location "$location" --admin-user $login --admin-password $password --sku-name $sku
Notes
- Le nom de serveur ne peut contenir que des lettres minuscules, des chiffres et le caractère de trait d’union (-). Il doit contenir entre 3 et 63 caractères. Pour plus d’informations, consultez les règles de nommage d’Azure Database pour PostgreSQL.
- Le nom d’utilisateur de l’administrateur ne peut pas être azure_superuser, admin, administrator, root, guest ni public.
- Le mot de passe doit contenir entre 8 et 128 caractères appartenant à 3 des catégories suivantes : lettres majuscules, lettres minuscules, chiffres et caractères non alphanumériques.
- Pour plus d’informations sur les niveaux tarifaires, consultez Tarification d’Azure Database pour PostgreSQL.
Important
- La version PostgreSQL par défaut sur votre serveur est 9.6. Pour voir toutes les versions prises en charge, consultez Versions majeures de PostgreSQL prises en charge.
- Le protocole SSL est activé par défaut sur votre serveur. Pour plus d’informations sur le protocole SSL, consultez Configurer la connectivité SSL.
Configurer une règle de pare-feu basée sur le serveur
Créez une règle de pare-feu à l’aide de la commande az postgres server firewall-rule create afin d’accorder à votre environnement local un accès pour se connecter au serveur.
# Configure a firewall rule for the server
echo "Configuring a firewall rule for $server for the IP address range of $startIp to $endIp"
az postgres server firewall-rule create --resource-group $resourceGroup --server $server --name AllowIps --start-ip-address $startIp --end-ip-address $endIp
Conseil
Si vous ne connaissez pas votre adresse IP, accédez à WhatIsMyIPAddress.com pour l’obtenir.
Notes
Pour éviter les problèmes de connectivité, assurez-vous que le pare-feu de votre réseau autorise le port 5432. Les serveurs Azure Database pour PostgreSQL utilisent ce port.
Répertorier les règles de pare-feu basées sur un serveur
Pour répertorier les règles de pare-feu de serveur existant, exécutez la commande az postgres server firewall-rule list.
# List firewall rules for the server
echo "List of server-based firewall rules for $server"
az postgres server firewall-rule list --resource-group $resourceGroup --server-name $server
# You may use the switch `--output table` for a more readable table format as the output.
La sortie répertorie les règles de pare-feu éventuelles, par défaut au format JSON. Vous pouvez utiliser le commutateur --output table
pour obtenir une sortie dans un format de tableau plus lisible.
Obtenir les informations de connexion
Pour vous connecter à votre serveur, fournissez des informations sur l’hôte et des informations d’identification pour l’accès.
az postgres server show --resource-group $resourceGroup --name $server
Prenez note des valeurs administratorLogin et fullyQualifiedDomainName.
Se connecter au serveur Azure Database pour PostgreSQL à l’aide de psql
Le client psql est un choix répandu pour la connexion aux serveurs PostgreSQL. Vous pouvez vous connecter à votre serveur par l’intermédiaire de psql
avec Azure Cloud Shell. Vous pouvez également utiliser psql
sur votre environnement local s’il est disponible. Une base de données vide, postgres, est automatiquement créée avec un nouveau serveur PostgreSQL. Vous pouvez utiliser cette base de données pour vous connecter à psql
, comme illustré dans le code suivant.
psql --host=<server_name>.postgres.database.azure.com --port=5432 --username=<admin_user>@<server_name> --dbname=postgres
Conseil
Si vous préférez utiliser un chemin d’URL pour vous connecter à Postgres, encodez par URL le signe @ dans le nom d’utilisateur avec %40
. La chaîne de connexion pour psql serait, par exemple :
psql postgresql://<admin_user>%40<server_name>@<server_name>.postgres.database.azure.com:5432/postgres
Créer une base de données vide
Une fois que vous êtes connecté au serveur, créez une base de données vide à l’invite :
CREATE DATABASE mypgsqldb;
À l’invite, exécutez la commande suivante pour basculer la connexion sur la base de données mypgsqldb nouvellement créée :
\c mypgsqldb
Créer des tables dans la base de données
Maintenant que vous savez comment vous connecter à la base de données Azure Database pour PostgreSQL, vous pouvez effectuer certaines tâches de base :
Tout d’abord, créez une table et chargez-y des données. Par exemple, créez une table qui assure le suivi des informations d’inventaire :
CREATE TABLE inventory (
id serial PRIMARY KEY,
name VARCHAR(50),
quantity INTEGER
);
Vous pouvez localiser cette nouvelle table dans la liste des tables en tapant :
\dt
Charger des données dans la table
Maintenant qu’une table a été créée, insérez des données dans celle-ci. Dans la fenêtre d’invite de commandes ouverte, exécutez la requête suivante pour insérer des lignes de données :
INSERT INTO inventory (id, name, quantity) VALUES (1, 'banana', 150);
INSERT INTO inventory (id, name, quantity) VALUES (2, 'orange', 154);
La table que vous avez créée précédemment contient maintenant deux lignes d’exemples de données.
Interroger et mettre à jour les données des tables
Exécutez la requête suivante pour récupérer des informations à partir de la table d’inventaire :
SELECT * FROM inventory;
Vous pouvez également mettre à jour les données de la table d’inventaire :
UPDATE inventory SET quantity = 200 WHERE name = 'banana';
Vous pouvez voir les valeurs mises à jour quand vous récupérez les données :
SELECT * FROM inventory;
Restaurer une version antérieure d’une base de données
Imaginez que vous avez supprimé une table par inadvertance. Il s’agit de quelque chose que vous ne pouvez pas récupérer facilement. Azure Database pour PostgreSQL vous permet de revenir à n’importe quel point dans le temps pour lequel votre serveur possède des sauvegardes (selon la période de rétention de sauvegarde que vous avez configuré) et de restaurer ce point dans le temps vers un nouveau serveur. Vous pouvez alors utiliser ce nouveau serveur pour récupérer les données supprimées.
La commande suivante permet de restaurer l’exemple de serveur à un point dans le temps antérieur à l’ajout de la table.
az postgres server restore --resource-group myresourcegroup --name mydemoserver-restored --restore-point-in-time 2017-04-13T13:59:00Z --source-server mydemoserver
La commande az postgres server restore
a besoin des paramètres suivants :
Paramètre | Valeur suggérée | Description |
---|---|---|
resource-group | myResourceGroup | Groupe de ressources dans lequel se trouve le serveur source. |
name | mydemoserver-restored | Nom du serveur créé par la commande de restauration. |
restore-point-in-time | 2017-04-13T13:59:00Z | Choisissez la date et l’heure à utiliser pour la restauration. Elles doivent être comprises dans la période de rétention de la sauvegarde du serveur source. Utilisez le format de date et d’heure ISO8601. Par exemple, vous pouvez utiliser votre fuseau horaire local, comme 2017-04-13T05:59:00-08:00 , ou le format UTC Zulu 2017-04-13T13:59:00Z . |
source-server | mydemoserver | Nom ou identifiant du serveur source à partir duquel la restauration s’effectuera. |
La restauration d’un serveur à un point antérieur dans le temps entraîne la création d’un nouveau serveur, qui est la copie du serveur d’origine tel qu’il était à l’instant spécifié. Les valeurs d’emplacement et de niveau tarifaire du serveur restauré sont les mêmes que celles du serveur source.
La commande est synchrone ; elle est renvoyée après la restauration du serveur. Une fois la restauration terminée, recherchez le serveur créé. Vérifiez que les données ont été restaurées comme prévu.
Nettoyer les ressources
Utilisez la commande suivante pour supprimer le groupe de ressources et toutes les ressources associées à celui-ci à l’aide de la commande az group delete, sauf si vous avez toujours besoin de ces ressources. La création, ainsi que la suppression, de certaines de ces ressources peut prendre du temps.
az group delete --name $resourceGroup
Étapes suivantes
Dans ce didacticiel, vous avez appris à utiliser l’interface Azure CLI (interface de ligne de commande) et d’autres utilitaires pour :
- Créer un serveur Azure Database pour PostgreSQL
- Configurer le pare-feu du serveur
- Utiliser l’utilitaire psql pour créer une base de données
- Charger un exemple de données
- Interroger des données
- Mettre à jour des données
- Restaurer des données