Progettare il primo Database di Azure per PostgreSQL tramite l'interfaccia della riga di comando di AzureDesign your first Azure Database for PostgreSQL using Azure CLI

In questa esercitazione, si usano l'interfaccia della riga di comando di Azure e altre utilità per informazioni su come:In this tutorial, you use Azure CLI (command-line interface) and other utilities to learn how to:

  • Creare un database di Azure per il server PostgreSQLCreate an Azure Database for PostgreSQL server
  • Configurare il firewall del serverConfigure the server firewall
  • Usare l'utilità psql per creare un databaseUse psql utility to create a database
  • Caricare dati di esempioLoad sample data
  • Eseguire query sui datiQuery data
  • Aggiornare i datiUpdate data
  • Ripristinare i datiRestore data

È possibile usare Azure Cloud Shell nel browser oppure installare l'interfaccia della riga di comando di Azure 2.0 nel proprio computer per eseguire i comando di questa esercitazione.You may use the Azure Cloud Shell in the browser, or install Azure CLI 2.0 on your own computer to run the commands in this tutorial.

Avviare Azure Cloud ShellLaunch Azure Cloud Shell

Azure Cloud Shell è una shell Bash gratuita che può essere eseguita direttamente nel portale di Azure.The Azure Cloud Shell is a free Bash shell that you can run directly within the Azure portal. Include l'interfaccia della riga di comando di Azure preinstallata e configurata per l'uso con l'account.It has the Azure CLI preinstalled and configured to use with your account. Fare clic sul pulsante Cloud Shell nel menu nel riquadro in alto a destra nel portale di Azure.Click the Cloud Shell button on the menu in the upper-right of the Azure portal.

Cloud ShellCloud Shell

Il pulsante avvia una shell interattiva che è possibile usare per eseguire i passaggi di questo argomento:The button launches an interactive shell that you can use to run the steps in this topic:

Screenshot che mostra la finestra di Cloud Shell nel portaleScreenshot showing the Cloud Shell window in the portal

Se si sceglie di installare e usare l'interfaccia della riga di comando in locale, per questo argomento è necessario eseguire la versione 2.0 o successiva dell'interfaccia della riga di comando di Azure.If you choose to install and use the CLI locally, this topic requires that you are running the Azure CLI version 2.0 or later. Eseguire az --version per trovare la versione.Run az --version to find the version. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure 2.0.If you need to install or upgrade, see Install Azure CLI 2.0.

Se si dispone di più sottoscrizioni, scegliere la sottoscrizione appropriata in cui la risorsa esiste o per cui è configurata.If you have multiple subscriptions, choose the appropriate subscription in which the resource exists or is billed for. Selezionare un ID di sottoscrizione specifico sotto l'account tramite il comando az account set.Select a specific subscription ID under your account using az account set command.

az account set --subscription 00000000-0000-0000-0000-000000000000

Creare un gruppo di risorseCreate a resource group

Creare un gruppo di risorse di Azure con il comando az group create.Create an Azure resource group using the az group create command. Un gruppo di risorse è un contenitore logico in cui le risorse di Azure vengono distribuite e gestite come gruppo.A resource group is a logical container into which Azure resources are deployed and managed as a group. Nell'esempio seguente viene creato un gruppo di risorse denominato myresourcegroup nella posizione westus.The following example creates a resource group named myresourcegroup in the westus location.

az group create --name myresourcegroup --location westus

Creare un database di Azure per il server PostgreSQLCreate an Azure Database for PostgreSQL server

Creare un database di Azure per il server PostgreSQL tramite il comando az postgres server create.Create an Azure Database for PostgreSQL server using the az postgres server create command. Un server contiene un gruppo di database gestiti come gruppo.A server contains a group of databases managed as a group.

Nell'esempio seguente viene creato un server denominato mypgserver-20170401 nel gruppo di risorse myresourcegroup con account di accesso dell'amministratore del server mylogin.The following example creates a server called mypgserver-20170401 in your resource group myresourcegroup with server admin login mylogin. Poiché viene eseguito il mapping del nome di un server a un nome DNS, il nome deve essere univoco a livello globale in Azure.The name of a server maps to DNS name and is thus required to be globally unique in Azure. Sostituire <server_admin_password> con il valore desiderato.Substitute the <server_admin_password> with your own value.

az postgres server create --resource-group myresourcegroup --name mypgserver-20170401 --location westus --admin-user mylogin --admin-password <server_admin_password> --performance-tier Basic --compute-units 50 --version 9.6

Importante

L'account di accesso amministratore server e la password qui specificati sono necessari per accedere al server e ai relativi database più avanti in questa guida introduttiva.The server admin login and password that you specify here are required to log in to the server and its databases later in this quick start. Prendere nota di queste informazioni per usarle in seguito.Remember or record this information for later use.

Per impostazione predefinita, il database postgres viene creato al di sotto del server.By default, postgres database gets created under your server. Il database postgres è un database predefinito che può essere usato da utenti, utilità e applicazioni di terze parti.The postgres database is a default database meant for use by users, utilities, and third-party applications.

Configurare una regola del firewall a livello di serverConfigure a server-level firewall rule

Creare una regola del firewall a livello di server per PostgreSQL Azure tramite il comando az postgres server firewall-rule create.Create an Azure PostgreSQL server-level firewall rule with the az postgres server firewall-rule create command. Una regola del firewall a livello di server consente a un'applicazione esterna, ad esempio psql o PgAdmin, di connettersi al server tramite il firewall del servizio PostgreSQL Azure.A server-level firewall rule allows an external application, such as psql or PgAdmin to connect to your server through the Azure PostgreSQL service firewall.

È possibile impostare una regola del firewall che copra un intervallo di indirizzi IP per consentire la connessione dalla rete in uso.You can set a firewall rule that covers an IP range to be able to connect from your network. L'esempio seguente usa az postgres server firewall-rule create per creare una regola del firewall AllowAllIps che consenta la connessione da qualsiasi indirizzo IP.The following example uses az postgres server firewall-rule create to create a firewall rule AllowAllIps that allows connection from any IP address. Per aprire tutti gli indirizzi IP, usare 0.0.0.0 come indirizzo IP iniziale e 255.255.255.255 come indirizzo finale.To open all IP addresses, use 0.0.0.0 as the starting IP address and 255.255.255.255 as the ending address.

Per limitare l'accesso al server Azure PostgreSQL a una sola rete, impostare una regola del firewall che copra l'intervallo di indirizzi IP della rete aziendale.To restrict access to your Azure PostgreSQL server to only your network, you can set the firewall rule to only cover your corporate network IP address range.

az postgres server firewall-rule create --resource-group myresourcegroup --server mypgserver-20170401 --name AllowAllIps --start-ip-address 0.0.0.0 --end-ip-address 255.255.255.255

Nota

Il server PostgreSQL Azure comunica sulla porta 5432.Azure PostgreSQL server communicates over port 5432. Quando si esegue la connessione da una rete aziendale, il traffico in uscita sulla porta 5432 potrebbe non essere consentito dal firewall della rete.When connecting from within a corporate network, outbound traffic over port 5432 may not be allowed by your network's firewall. Richiedere al reparto IT di aprire la porta 5432 per connettersi al server di database SQL di Azure.Have your IT department open port 5432 to connect to your Azure SQL Database server.

Ottenere le informazioni di connessioneGet the connection information

Per connettersi al server, è necessario specificare le informazioni sull'host e le credenziali di accesso.To connect to your server, you need to provide host information and access credentials.

az postgres server show --resource-group myresourcegroup --name mypgserver-20170401

Il risultato è in formato JSON.The result is in JSON format. Annotare l'administratorLogin e il fullyQualifiedDomainName.Make a note of the administratorLogin and fullyQualifiedDomainName.

{
  "administratorLogin": "mylogin",
  "fullyQualifiedDomainName": "mypgserver-20170401.postgres.database.azure.com",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.DBforPostgreSQL/servers/mypgserver-20170401",
  "location": "westus",
  "name": "mypgserver-20170401",
  "resourceGroup": "myresourcegroup",
  "sku": {
    "capacity": 50,
    "family": null,
    "name": "PGSQLS2M50",
    "size": null,
    "tier": "Basic"
  },
  "sslEnforcement": null,
  "storageMb": 51200,
  "tags": null,
  "type": "Microsoft.DBforPostgreSQL/servers",
  "userVisibleState": "Ready",
  "version": "9.6"
}

Connettersi al Database di Azure per il database PostgreSQL tramite psqlConnect to Azure Database for PostgreSQL database using psql

Se nel computer client è installato PostgreSQL, è possibile usare un'istanza locale di psql o la console Cloud di Azure per connettersi a un server PostgreSQL di Azure.If your client computer has PostgreSQL installed, you can use a local instance of psql, or the Azure Cloud Console to connect to an Azure PostgreSQL server. Si usi ora l'utilità della riga di comando psql per connettersi al Database di Azure per il server PostgreSQL.Let's now use the psql command-line utility to connect to the Azure Database for PostgreSQL server.

  1. Eseguire il comando psql seguente per connettersi a un Database di Azure per PostgreSQL:Run the following psql command to connect to an Azure Database for PostgreSQL database:

    psql --host=<servername> --port=<port> --username=<user@servername> --dbname=<dbname>
    

    Ad esempio, il comando seguente permette di connettersi al database predefinito chiamato postgres nel server PostgreSQL mypgserver-20170401.postgres.database.azure.com usando le credenziali di accesso.For example, the following command connects to the default database called postgres on your PostgreSQL server mypgserver-20170401.postgres.database.azure.com using access credentials. Immettere il valore di <server_admin_password> scelto quando viene chiesta la password.Enter the <server_admin_password> you chose when prompted for password.

    psql --host=mypgserver-20170401.postgres.database.azure.com --port=5432 --username=mylogin@mypgserver-20170401 ---dbname=postgres
    
  2. Dopo aver eseguito la connessione al server, creare un database vuoto al prompt:Once you are connected to the server, create a blank database at the prompt:

    CREATE DATABASE mypgsqldb;
    
  3. Nel prompt, eseguire il comando seguente per cambiare la connessione nel database appena creato mypgsqldb:At the prompt, execute the following command to switch connection to the newly created database mypgsqldb:

    \c mypgsqldb
    

Creare tabelle nel databaseCreate tables in the database

Dopo aver appreso come connettersi al Database di Azure per PostgreSQL, si può passare al completamento di alcune attività di base.Now that you know how to connect to the Azure Database for PostgreSQL, we can go over how to complete some basic tasks.

In primo luogo, è possibile creare una tabella e caricarla con alcuni dati.First, we can create a table and load it with some data. Creare una tabella che tenga traccia delle informazioni riguardanti l'inventario:Let's create a table that tracks inventory information:

CREATE TABLE inventory (
    id serial PRIMARY KEY, 
    name VARCHAR(50), 
    quantity INTEGER
);

È possibile visualizzare ora la tabella appena creata nell'elenco di tabelle digitando:You can see the newly created table in the list of tables now by typing:

\dt

Caricare i dati nella tabellaLoad data into the table

Ora che abbiamo una tabella, possiamo inserire alcuni dati al suo interno.Now that we have a table, we can insert some data into it. Nella finestra del prompt dei comandi aperta, eseguire la query seguente per inserire alcune righe di dati:At the open command prompt window, run the following query to insert some rows of data:

INSERT INTO inventory (id, name, quantity) VALUES (1, 'banana', 150); 
INSERT INTO inventory (id, name, quantity) VALUES (2, 'orange', 154);

A questo punto, sono presenti due righe di dati di esempio nella tabella creata in precedenza.You have now added two rows of sample data into the table you created earlier.

Eseguire una query e aggiornare i dati nelle tabelleQuery and update the data in the tables

Eseguire la query seguente per recuperare informazioni dalla tabella di inventario:Execute the following query to retrieve information from the inventory table:

SELECT * FROM inventory;

Si possono anche aggiornare query e dati nella tabella:You can also update the data in the inventory table:

UPDATE inventory SET quantity = 200 WHERE name = 'banana';

Quando si recuperano i dati, è possibile visualizzare i valori aggiornati:You can see the updated values when you retrieve the data:

SELECT * FROM inventory;

Ripristinare un database a un momento precedenteRestore a database to a previous point in time

Si supponga di aver eliminato accidentalmente una tabella.Imagine you have accidentally deleted a table. Si tratta di un elemento che non è facile da ripristinare.This is something you cannot easily recover from. Il Database di Azure per PostgreSQL consente di tornare in qualsiasi punto nel tempo (fino 7 giorni in Basic e 35 in giorni Standard) e ripristinare questo punto nel tempo in un nuovo server.Azure Database for PostgreSQL allows you to go back to any point-in-time (up to 7 days in Basic and 35 days in Standard) and restore this point-in-time to a new server. È possibile usare questo nuovo server per ripristinare i dati eliminati.You can use this new server to recover your deleted data.

La procedura seguente consente di ripristinare il server di esempio in un punto precedente all'aggiunta della tabella:The following command restores the sample server to a point before the table was added:

az postgres server restore --resource-group myResourceGroup --name mypgserver-restored --restore-point-in-time 2017-04-13T13:59:00Z --source-server mypgserver-20170401

Il comando az postgres server restore richiede i parametri seguenti:The az postgres server restore command needs the following parameters:

ImpostazioneSetting Valore consigliatoSuggested value DescrizioneDescription
--resource-group--resource-group myResourceGroupmyResourceGroup Il gruppo di risorse in cui si trova il server di origine.The resource group in which the source server exists.
--name--name mypgserver-restoredmypgserver-restored Il nome del nuovo server creato con il comando di ripristino.The name of the new server that is created by the restore command.
restore-point-in-timerestore-point-in-time 2017-04-13T13:59:00Z2017-04-13T13:59:00Z Selezionare un punto di ripristino temporizzato.Select a point-in-time to restore to. La data e l'ora devono trovarsi all'interno del periodo di memorizzazione dei backup del server di origine.This date and time must be within the source server's backup retention period. Usare il formato ISO8601 per la data e l'ora.Use ISO8601 date and time format. È possibile usare il fuso orario locale, ad esempio 2017-04-13T05:59:00-08:00, o il formato UTC Zulu 2017-04-13T13:59:00Z.For example, you may use your own local timezone, such as 2017-04-13T05:59:00-08:00, or use UTC Zulu format 2017-04-13T13:59:00Z.
--source-server--source-server mypgserver-20170401mypgserver-20170401 Il nome o l'ID del server di origine da cui eseguire il ripristino.The name or ID of the source server to restore from.

Il ripristino di un server in un punto nel tempo crea un nuovo server, ovvero una copia del server originale nel momento specificato.Restoring a server to a point-in-time creates a new server, copied as the original server as of the point in time you specify. I valori relativi al percorso e al piano tariffario del server ripristinato sono gli stessi del server di origine.The location and pricing tier values for the restored server are the same as the source server.

Il comando è sincrono e il risultato verrà restituito dopo il ripristino del server.The command is synchronous, and will return after the server is restored. Una volta terminato il ripristino, individuare il nuovo server creato.Once the restore finishes, locate the new server that was created. Verificare che i dati siano stati ripristinati come previsto.Verify the data was restored as expected.

Passaggi successiviNext steps

In questa esercitazione è stato illustrato come usare l'interfaccia della riga di comando di Azure e altre utilità per:In this tutorial, you learned how to use Azure CLI (command-line interface) and other utilities to:

  • Creare un database di Azure per il server PostgreSQLCreate an Azure Database for PostgreSQL server
  • Configurare il firewall del serverConfigure the server firewall
  • Usare l'utilità psql per creare un databaseUse psql utility to create a database
  • Caricare dati di esempioLoad sample data
  • Eseguire query sui datiQuery data
  • Aggiornare i datiUpdate data
  • Ripristinare i datiRestore data

Successivamente, per informazioni su come usare il portale di Azure per eseguire attività simili, esaminare questa esercitazione: Progettare il primo Database di Azure per PostgreSQL tramite il portale di AzureNext, learn how to use the Azure portal to do similar tasks, review this tutorial: Design your first Azure Database for PostgreSQL using the Azure portal