Share via


Criar e gerir pontos finais de serviço da VNet para a Base de Dados do Azure para PostgreSQL – Servidor Único com a CLI do Azure

APLICA-SE A: Banco de Dados do Azure para PostgreSQL - Servidor Único

Importante

O Banco de Dados do Azure para PostgreSQL - Servidor Único está no caminho da desativação. É altamente recomendável que você atualize para o Banco de Dados do Azure para PostgreSQL - Servidor Flexível. Para obter mais informações sobre como migrar para o Banco de Dados do Azure para PostgreSQL - Servidor Flexível, consulte O que está acontecendo com o Banco de Dados do Azure para Servidor Único PostgreSQL?.

Os pontos de extremidade e as regras dos serviços de Rede Virtual (VNet) estendem o espaço de endereçamento privado de uma Rede Virtual para o seu Banco de Dados do Azure para o servidor PostgreSQL. Usando comandos convenientes da CLI do Azure, você pode criar, atualizar, excluir, listar e mostrar pontos de extremidade e regras do serviço VNet para gerenciar seu servidor. Para obter uma visão geral dos pontos de extremidade do serviço VNet do Banco de Dados do Azure para PostgreSQL, incluindo limitações, consulte Banco de Dados do Azure para pontos de extremidade do serviço VNet do PostgreSQL Server. Os pontos de extremidade do serviço VNet estão disponíveis em todas as regiões com suporte para o Banco de Dados do Azure para PostgreSQL.

Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.

Pré-requisitos

  • Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para Bash no Azure Cloud Shell.

  • Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.

    • Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.

    • Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.

    • Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.

Nota

O suporte para pontos de extremidade de serviço VNet é apenas para servidores de uso geral e otimizados para memória. No caso de emparelhamento de VNet, se o tráfego estiver fluindo através de um Gateway de VNet comum com pontos de extremidade de serviço e for suposto fluir para o par, crie uma regra ACL/VNet para permitir que as Máquinas Virtuais do Azure na VNet de Gateway acessem o Banco de Dados do Azure para servidor PostgreSQL.

Configurar pontos de extremidade de serviço Vnet

Os comandos az network vnet são usados para configurar redes virtuais. Os pontos de extremidade de serviço podem ser configurados em redes virtuais de forma independente, por um usuário com acesso de gravação à rede virtual.

Para proteger os recursos de serviço do Azure para uma rede virtual, o usuário deve ter permissão para "Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/" para as sub-redes que estão sendo adicionadas. Esta permissão está incluída por predefinição nas funções incorporadas de administrador de serviço e podem ser modificadas mediante a criação de funções personalizadas.

Saiba mais sobre funções incorporadas e a atribuição de permissões específicas a funções personalizadas.

As VNets e os recursos de serviço do Azure podem pertencer às mesmas subscrições ou a subscrições diferentes. Se a VNet e os recursos de serviço do Azure estiverem em assinaturas diferentes, os recursos deverão estar sob o mesmo locatário do Ative Directory (AD). Verifique se ambas as assinaturas têm o provedor de recursos Microsoft.Sql registrado. Para obter mais informações, veja resource-manager-registration.

Importante

É altamente recomendável ler este artigo sobre configurações e considerações de ponto de extremidade de serviço antes de executar o script de exemplo abaixo ou configurar pontos de extremidade de serviço. Ponto de extremidade do serviço de Rede Virtual: um ponto de extremidade do serviço de Rede Virtual é uma sub-rede cujos valores de propriedade incluem um ou mais nomes formais de tipo de serviço do Azure. Os pontos de extremidade dos serviços VNet usam o nome do tipo de serviço Microsoft.Sql, que se refere ao serviço do Azure chamado Banco de Dados SQL. Essa marca de serviço também se aplica ao Banco de Dados SQL do Azure, ao Banco de Dados do Azure para serviços PostgreSQL e MySQL. É importante observar que, ao aplicar a marca de serviço Microsoft.Sql a um ponto de extremidade de serviço VNet, ela configura o tráfego de ponto de extremidade do serviço para todos os serviços do Banco de Dados do Azure, incluindo o Banco de Dados SQL do Azure, o Banco de Dados do Azure para PostgreSQL e o Banco de Dados do Azure para servidores MySQL na sub-rede.

Script de exemplo

Iniciar o Azure Cloud Shell

O Azure Cloud Shell é um shell interativo gratuito que pode utilizar para executar os passos neste artigo. Tem as ferramentas comuns do Azure pré-instaladas e configuradas para utilização com a sua conta.

Para abrir o Cloud Shell, basta selecionar Experimentar no canto superior direito de um bloco de código. Também pode iniciar o Cloud Shell num separador do browser separado ao aceder a https://shell.azure.com.

Quando o Cloud Shell abrir, verifique se o Bash está selecionado para o seu ambiente. As sessões subsequentes usarão a CLI do Azure em um ambiente Bash, selecione Copiar para copiar os blocos de código, cole-o no Cloud Shell e pressione Enter para executá-lo.

Iniciar sessão no Azure

O Cloud Shell é autenticado automaticamente na conta inicial com a qual entrou conectado. Use o script a seguir para entrar usando uma assinatura diferente, substituindo <Subscription ID> pela sua ID de Assinatura do Azure. Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.

subscription="<subscriptionId>" # add subscription here

az account set -s $subscription # ...or use 'az login'

Para obter mais informações, consulte definir assinatura ativa ou fazer login interativamente

Executar o script

# Create a PostgreSQL server and configure a vNet rule

# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
location="East US"
resourceGroup="msdocs-postgresql-rg-$randomIdentifier"
tag="create-postgresql-server"
server="msdocs-postgresql-server-$randomIdentifier"
sku="GP_Gen5_2"
vNet="vNet-$randomIdentifier"
vNetAddressPrefix="10.0.0.0/16"
subnet="subnet-$randomIdentifier"
subnetAddressPrefix="10.0.1.0/24"
rule="rule-$randomIdentifier"
login="azureuser"
password="Pa$$w0rD-$randomIdentifier"

echo "Using resource group $resourceGroup with login: $login, password: $password..."

# Create a resource group
echo "Creating $resourceGroup in $location..."
az group create --name $resourceGroup --location "$location" --tags $tag

# 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

# Get available service endpoints for Azure region output is JSON
echo "List of available service endpoints for $location"
az network vnet list-endpoint-services --location "$location"

# Add Azure SQL service endpoint to a subnet while creating the virtual network
echo "Adding service endpoint to $subnet in $vNet"
az network vnet create --resource-group $resourceGroup --name $vNet --address-prefixes $vNetAddressPrefix --location "$location"

# Creates the service endpoint
echo "Creating a service endpoint to $subnet in $vNet"
az network vnet subnet create --resource-group $resourceGroup --name $subnet --vnet-name $vNet --address-prefix $subnetAddressPrefix --service-endpoints Microsoft.SQL

# View service endpoints configured on a subnet
echo "Viewing the service endpoint to $subnet in $vNet"
az network vnet subnet show --resource-group $resourceGroup --name $subnet --vnet-name $vNet

# Create a VNet rule on the server to secure it to the subnet
# Note: resource group (-g) parameter is where the database exists.
# VNet resource group if different should be specified using subnet id (URI) instead of subnet, VNet pair.
echo "Creating a VNet rule on $server to secure it to $subnet in $vNet"
az postgres server vnet-rule create --name $rule --resource-group $resourceGroup --server $server --vnet-name $vNet --subnet $subnet

Limpar a implementação

Use o comando a seguir para remover o grupo de recursos e todos os recursos associados a ele usando o comando az group delete - a menos que você tenha uma necessidade contínua desses recursos. Alguns desses recursos podem demorar um pouco para criar, bem como para excluir.

echo "Cleaning up resources by removing the resource group..."
az group delete --name $resourceGroup -y