Guida introduttiva: Usare un modello di Resource Manager per creare un Database di Azure per PostgreSQL - server singolo

SI APPLICA A: Database di Azure per PostgreSQL - Server singolo

Importante

Database di Azure per PostgreSQL - Server singolo si trova nel percorso di ritiro. È consigliabile eseguire l'aggiornamento a Database di Azure per PostgreSQL - Server flessibile. Per altre informazioni sulla migrazione a Database di Azure per PostgreSQL - Server flessibile, vedere What's happening to Database di Azure per PostgreSQL Single Server?.

Il database di Azure per PostgreSQL è un servizio gestito usato per eseguire, gestire e ridimensionare database PostgreSQL a disponibilità elevata nel cloud. In questo argomento di Avvio rapido si usa un modello di Azure Resource Manager (modello di Resource Manager) per creare un'istanza di Database di Azure per PostgreSQL - server singolo nel portale di Azure, in PowerShell o nell'interfaccia della riga di comando di Azure.

Un modello di Azure Resource Manager è un file JSON (JavaScript Object Notation) che definisce l'infrastruttura e la configurazione per il progetto. Il modello utilizza la sintassi dichiarativa. Si descrive la distribuzione prevista senza scrivere la sequenza di comandi di programmazione per creare la distribuzione.

Se l'ambiente soddisfa i prerequisiti e si ha familiarità con l'uso dei modelli di Resource Manager, selezionare il pulsante Distribuisci in Azure. Il modello verrà aperto nel portale di Azure.

Pulsante per distribuire il modello di Resource Manager in Azure.

Prerequisiti

SI APPLICA A: Database di Azure per PostgreSQL - Server singolo

Importante

Database di Azure per PostgreSQL - Server singolo si trova nel percorso di ritiro. È consigliabile eseguire l'aggiornamento a Database di Azure per PostgreSQL - Server flessibile. Per altre informazioni sulla migrazione a Database di Azure per PostgreSQL - Server flessibile, vedere What's happening to Database di Azure per PostgreSQL Single Server?.

Un account Azure con una sottoscrizione attiva. Crearne una gratuitamente.

Rivedere il modello

È possibile creare un server Database di Azure per PostgreSQL con un set definito di risorse di calcolo e di archiviazione. Per altre informazioni, vedere Piani tariffari nel Database di Azure per PostgreSQL: server singolo. Il server viene creato all'interno di un gruppo di risorse di Azure.

Il modello usato in questo avvio rapido proviene dai modelli di avvio rapido di Azure.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.26.54.24096",
      "templateHash": "16694921643873529380"
    }
  },
  "parameters": {
    "serverName": {
      "type": "string",
      "metadata": {
        "description": "Server Name for Azure Database for PostgreSQL"
      }
    },
    "administratorLogin": {
      "type": "string",
      "minLength": 1,
      "metadata": {
        "description": "Database administrator login name"
      }
    },
    "administratorLoginPassword": {
      "type": "securestring",
      "minLength": 8,
      "metadata": {
        "description": "Database administrator password"
      }
    },
    "skuCapacity": {
      "type": "int",
      "defaultValue": 2,
      "metadata": {
        "description": "Azure Database for PostgreSQL compute capacity in vCores (2,4,8,16,32)"
      }
    },
    "skuName": {
      "type": "string",
      "defaultValue": "GP_Gen5_2",
      "metadata": {
        "description": "Azure Database for PostgreSQL sku name "
      }
    },
    "skuSizeMB": {
      "type": "int",
      "defaultValue": 51200,
      "metadata": {
        "description": "Azure Database for PostgreSQL Sku Size "
      }
    },
    "skuTier": {
      "type": "string",
      "defaultValue": "GeneralPurpose",
      "allowedValues": [
        "Basic",
        "GeneralPurpose",
        "MemoryOptimized"
      ],
      "metadata": {
        "description": "Azure Database for PostgreSQL pricing tier"
      }
    },
    "skuFamily": {
      "type": "string",
      "defaultValue": "Gen5",
      "metadata": {
        "description": "Azure Database for PostgreSQL sku family"
      }
    },
    "postgresqlVersion": {
      "type": "string",
      "defaultValue": "11",
      "allowedValues": [
        "9.5",
        "9.6",
        "10",
        "10.0",
        "10.2",
        "11"
      ],
      "metadata": {
        "description": "PostgreSQL version"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    },
    "backupRetentionDays": {
      "type": "int",
      "defaultValue": 7,
      "metadata": {
        "description": "PostgreSQL Server backup retention days"
      }
    },
    "geoRedundantBackup": {
      "type": "string",
      "defaultValue": "Disabled",
      "metadata": {
        "description": "Geo-Redundant Backup setting"
      }
    },
    "virtualNetworkName": {
      "type": "string",
      "defaultValue": "azure_postgresql_vnet",
      "metadata": {
        "description": "Virtual Network Name"
      }
    },
    "subnetName": {
      "type": "string",
      "defaultValue": "azure_postgresql_subnet",
      "metadata": {
        "description": "Subnet Name"
      }
    },
    "virtualNetworkRuleName": {
      "type": "string",
      "defaultValue": "AllowSubnet",
      "metadata": {
        "description": "Virtual Network RuleName"
      }
    },
    "vnetAddressPrefix": {
      "type": "string",
      "defaultValue": "10.0.0.0/16",
      "metadata": {
        "description": "Virtual Network Address Prefix"
      }
    },
    "subnetPrefix": {
      "type": "string",
      "defaultValue": "10.0.0.0/16",
      "metadata": {
        "description": "Subnet Address Prefix"
      }
    }
  },
  "variables": {
    "firewallrules": [
      {
        "Name": "rule1",
        "StartIpAddress": "0.0.0.0",
        "EndIpAddress": "255.255.255.255"
      },
      {
        "Name": "rule2",
        "StartIpAddress": "0.0.0.0",
        "EndIpAddress": "255.255.255.255"
      }
    ]
  },
  "resources": [
    {
      "type": "Microsoft.DBforPostgreSQL/servers/virtualNetworkRules",
      "apiVersion": "2017-12-01",
      "name": "[format('{0}/{1}', parameters('serverName'), parameters('virtualNetworkRuleName'))]",
      "properties": {
        "virtualNetworkSubnetId": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworkName'), parameters('subnetName'))]",
        "ignoreMissingVnetServiceEndpoint": true
      },
      "dependsOn": [
        "[resourceId('Microsoft.DBforPostgreSQL/servers', parameters('serverName'))]",
        "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworkName'), parameters('subnetName'))]"
      ]
    },
    {
      "type": "Microsoft.Network/virtualNetworks",
      "apiVersion": "2023-09-01",
      "name": "[parameters('virtualNetworkName')]",
      "location": "[parameters('location')]",
      "properties": {
        "addressSpace": {
          "addressPrefixes": [
            "[parameters('vnetAddressPrefix')]"
          ]
        }
      }
    },
    {
      "type": "Microsoft.Network/virtualNetworks/subnets",
      "apiVersion": "2023-09-01",
      "name": "[format('{0}/{1}', parameters('virtualNetworkName'), parameters('subnetName'))]",
      "properties": {
        "addressPrefix": "[parameters('subnetPrefix')]"
      },
      "dependsOn": [
        "[resourceId('Microsoft.Network/virtualNetworks', parameters('virtualNetworkName'))]"
      ]
    },
    {
      "type": "Microsoft.DBforPostgreSQL/servers",
      "apiVersion": "2017-12-01",
      "name": "[parameters('serverName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('skuName')]",
        "tier": "[parameters('skuTier')]",
        "capacity": "[parameters('skuCapacity')]",
        "size": "[format('{0}', parameters('skuSizeMB'))]",
        "family": "[parameters('skuFamily')]"
      },
      "properties": {
        "createMode": "Default",
        "version": "[parameters('postgresqlVersion')]",
        "administratorLogin": "[parameters('administratorLogin')]",
        "administratorLoginPassword": "[parameters('administratorLoginPassword')]",
        "storageProfile": {
          "storageMB": "[parameters('skuSizeMB')]",
          "backupRetentionDays": "[parameters('backupRetentionDays')]",
          "geoRedundantBackup": "[parameters('geoRedundantBackup')]"
        },
        "sslEnforcement": "Enabled",
        "minimalTlsVersion": "TLS1_2"
      }
    },
    {
      "copy": {
        "name": "firewallRules",
        "count": "[length(variables('firewallrules'))]",
        "mode": "serial",
        "batchSize": 1
      },
      "type": "Microsoft.DBforPostgreSQL/servers/firewallRules",
      "apiVersion": "2017-12-01",
      "name": "[format('{0}/{1}', parameters('serverName'), variables('firewallrules')[copyIndex()].Name)]",
      "properties": {
        "startIpAddress": "[variables('firewallrules')[copyIndex()].StartIpAddress]",
        "endIpAddress": "[variables('firewallrules')[copyIndex()].EndIpAddress]"
      },
      "dependsOn": [
        "[resourceId('Microsoft.DBforPostgreSQL/servers', parameters('serverName'))]"
      ]
    }
  ],
  "outputs": {
    "name": {
      "type": "string",
      "value": "[parameters('serverName')]"
    },
    "resourceId": {
      "type": "string",
      "value": "[resourceId('Microsoft.DBforPostgreSQL/servers', parameters('serverName'))]"
    },
    "resourceGroupName": {
      "type": "string",
      "value": "[resourceGroup().name]"
    },
    "location": {
      "type": "string",
      "value": "[parameters('location')]"
    }
  }
}

Il modello definisce cinque risorse di Azure:

Altri modelli campione di Database di Azure per PostgreSQL sono disponibili in Modelli di avvio rapido di Azure.

Distribuire il modello

SI APPLICA A: Database di Azure per PostgreSQL - Server singolo

Importante

Database di Azure per PostgreSQL - Server singolo si trova nel percorso di ritiro. È consigliabile eseguire l'aggiornamento a Database di Azure per PostgreSQL - Server flessibile. Per altre informazioni sulla migrazione a Database di Azure per PostgreSQL - Server flessibile, vedere What's happening to Database di Azure per PostgreSQL Single Server?.

Selezionare il collegamento seguente per distribuire il modello di database di Azure per il server PostgreSQL nel portale di Azure:

Pulsante per distribuire il modello di Resource Manager in Azure.

Nella pagina Distribuire Database di Azure per PostgreSQL con la rete virtuale:

  1. In Gruppo di risorse selezionare Crea nuovo, immettere un nome per il nuovo gruppo di risorse e quindi fare clic su OK.

  2. Se è stato creato un nuovo gruppo di risorse, selezionare un valore per Località per il gruppo di risorse e il nuovo server.

  3. Immettere i valori per Nome server, Account di accesso amministratore e Password di accesso amministratore.

    Finestra Distribuisci Database di Azure per PostgreSQL con la rete virtuale, modello di avvio rapido di Azure, portale di Azure

  4. Modificare le altre impostazioni predefinite in base alle esigenze:

    • Sottoscrizione: sottoscrizione di Azure da usare per il server.
    • Capacità SKU: capacità di vCore, che può essere 2 (impostazione predefinita), 4, 8, 16, 32o 64.
    • Nome SKU: prefisso del livello SKU, famiglia SKU e capacità dello SKU, uniti da caratteri di sottolineatura, ad esempio B_Gen5_1, GP_Gen5_2 (impostazione predefinita) o MO_Gen5_32.
    • Dimensioni SKU (MB): dimensioni di archiviazione in megabyte del database di Azure per il server PostgreSQL (impostazione predefinita 51200).
    • Livello SKU: livello di distribuzione, ad esempio Basic, Utilizzo generico (impostazione predefinita) o Ottimizzato per la memoria.
    • Famiglia di SKU: Gen4 o Gen5 (impostazione predefinita), che indica la generazione hardware per la distribuzione del server.
    • Versione di PostgreSQL: versione del server PostgreSQL da distribuire, ad esempio 9.5, 9.6, 10 o 11 (impostazione predefinita).
    • Giorni di conservazione backup: periodo desiderato per la conservazione del backup con ridondanza geografica, in giorni (impostazione predefinita 7).
    • Backup con ridondanza geografica: abilitato o disabilitato (impostazione predefinita), a seconda dei requisiti di ripristino di emergenza geografico.
    • Nome rete virtuale: nome della rete virtuale (impostazione predefinita azure_postgresql_vnet).
    • Nome subnet: nome della subnet (impostazione predefinita azure_postgresql_subnet).
    • Nome regola di rete virtuale:nome della regola di rete virtuale che consente la subnet (impostazione predefinita AllowSubnet).
    • Prefisso dell'indirizzo della rete virtuale: prefisso dell'indirizzo della rete virtuale (impostazione predefinita 10.0.0.0/16).
    • Prefisso subnet: prefisso dell'indirizzo per la subnet (impostazione predefinita 10.0.0.0/16).
  5. Leggere le condizioni, quindi selezionare Accetto le condizioni riportate sopra.

  6. Selezionare Acquista.

Esaminare le risorse distribuite

SI APPLICA A: Database di Azure per PostgreSQL - Server singolo

Importante

Database di Azure per PostgreSQL - Server singolo si trova nel percorso di ritiro. È consigliabile eseguire l'aggiornamento a Database di Azure per PostgreSQL - Server flessibile. Per altre informazioni sulla migrazione a Database di Azure per PostgreSQL - Server flessibile, vedere What's happening to Database di Azure per PostgreSQL Single Server?.

Seguire questa procedura per visualizzare una panoramica del nuovo database di Azure per il server PostgreSQL:

  1. Nel portale di Azure cercare e selezionare Database di Azure per i server PostgreSQL.

  2. Nell'elenco dei database selezionare il nuovo server. Verrà visualizzata la pagina Panoramica per il nuovo database di Azure per il server PostgreSQL.

Esportazione del modello di Resource Manager dal portale

È possibile esportare un modello di Resource Manager dal portale di Azure. Per esportare un modello sono disponibili due modi:

Quando si esporta il modello, nella "properties":{ } sezione della risorsa server PostgreSQL si noterà che administratorLogin e administratorLoginPassword non verranno inclusi per motivi di sicurezza. È NECESSARIO aggiungere questi parametri al modello prima di distribuire il modello o il modello avrà esito negativo.

"resources": [
    {
      "type": "Microsoft.DBforPostgreSQL/servers",
      "apiVersion": "2017-12-01",
      "name": "[parameters('servers_name')]",
      "location": "southcentralus",
      "sku": {
                "name": "B_Gen5_1",
                "tier": "Basic",
                "family": "Gen5",
                "capacity": 1
            },
      "properties": {
        "administratorLogin": "[parameters('administratorLogin')]",
        "administratorLoginPassword": "[parameters('administratorLoginPassword')]",

Pulire le risorse

Quando non è più necessario, eliminare il gruppo di risorse per eliminare tutte le risorse contenute al suo interno.

SI APPLICA A: Database di Azure per PostgreSQL - Server singolo

Importante

Database di Azure per PostgreSQL - Server singolo si trova nel percorso di ritiro. È consigliabile eseguire l'aggiornamento a Database di Azure per PostgreSQL - Server flessibile. Per altre informazioni sulla migrazione a Database di Azure per PostgreSQL - Server flessibile, vedere What's happening to Database di Azure per PostgreSQL Single Server?.

  1. Nel portale di Azure cercare e selezionare Gruppi di risorse.

  2. Nell'elenco dei gruppi di risorse scegliere il nome del gruppo di risorse.

  3. Nella pagina Panoramica del gruppo di risorse selezionare Elimina gruppo di risorse.

  4. Nella finestra di dialogo di conferma, digitare il nome del gruppo di risorse e quindi selezionare Elimina.

Passaggi successivi

Per un'esercitazione dettagliata che illustra il processo di creazione di un modello, vedere: