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

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

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

  1. Une fois que vous êtes connecté au serveur, créez une base de données vide à l’invite :

    CREATE DATABASE mypgsqldb;
    
  2. À 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