Tutorial: Conectar um aplicativo Web de Serviços de Aplicativo ao Banco de Dados do Azure para MySQL - Servidor flexível em uma rede virtual

APLICA-SE A: Banco de Dados do Azure para MySQL - Servidor Flexível

Este tutorial mostra como criar e conectar um Aplicativo Web do Serviço de Aplicativo do Azure a uma instância de servidor flexível do Banco de Dados do Azure para MySQL isolada dentro da mesma rede virtual ou de redes virtuais diferentes.

Neste tutorial, vai aprender a:

  • Criar uma instância de servidor flexível do Banco de Dados do Azure para MySQL em uma rede virtual
  • Criar uma sub-rede para delegar ao Serviço de Aplicativo e criar um aplicativo Web
  • Adicionar o aplicativo Web à rede virtual
  • Conectar-se ao Banco de Dados do Azure para servidor flexível MySQL a partir do aplicativo Web
  • Conectar um aplicativo Web e o Banco de Dados do Azure para instância de servidor flexível MySQL isolada em diferentes VNets

Pré-requisitos

Se você não tiver uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar. Atualmente, com uma conta gratuita do Azure, você pode experimentar o Banco de Dados do Azure para MySQL - Servidor Flexível gratuitamente por 12 meses. Para obter mais informações, consulte Experimente o Banco de Dados do Azure para MySQL - Servidor flexível gratuitamente.

Este artigo requer que você esteja executando a CLI do Azure versão 2.0 ou posterior localmente. Para ver a versão instalada, execute o comando az --version. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI).

Você precisará fazer login na sua conta usando o comando az login . Anote a propriedade id da saída de comando para o nome de subscrição correspondente.

az login

Se tiver várias subscrições, escolha a subscrição adequada na qual o recurso deve ser cobrado. Selecione o ID da subscrição específica na sua conta com o comando az account set. Substitua a propriedade ID da assinatura da saída az login para sua assinatura no espaço reservado para ID de assinatura.

az account set --subscription <subscription ID>

Criar um Banco de Dados do Azure para instância de servidor flexível do MySQL

Crie uma instância de servidor flexível privada do Banco de Dados do Azure para MySQL dentro de uma rede virtual (VNET) usando o seguinte comando:

az mysql flexible-server create --resource-group myresourcegroup --location westus2 --vnet VNETName

Copie a cadeia de conexão e o nome da rede virtual recém-criada. Este comando executa as seguintes ações, que podem levar alguns minutos:

  • Crie o grupo de recursos se ele ainda não existir.
  • Gera um nome de servidor se ele não for fornecido.
  • Crie uma nova rede VNETName virtual para sua nova instância de servidor flexível do Banco de Dados do Azure para MySQL e sub-rede dentro dessa rede virtual para a instância de servidor flexível do Banco de Dados do Azure para MySQL. Certifique-se de que o nome é exclusivo.
  • Cria nome de usuário de administrador , senha para o seu servidor, se não for fornecido.
  • Cria um banco de dados vazio chamado flexibleserverdb.

Nota

Anote sua senha que é gerada para você se não for fornecida. Se você esquecer a senha, você tem que redefinir a senha usando o az mysql flexible-server update comando.

Criar sub-rede para o ponto de extremidade do Serviço de Aplicativo

Agora você precisa de uma sub-rede delegada ao ponto de extremidade do Aplicativo Web do Serviço de Aplicativo. Execute o seguinte comando para criar uma nova sub-rede na mesma rede virtual em que a instância de servidor flexível do Banco de Dados do Azure para MySQL foi criada.

az network vnet subnet create -g myresourcegroup --vnet-name VNETName --name webappsubnetName  --address-prefixes 10.0.1.0/24  --delegations Microsoft.Web/serverFarms --service-endpoints Microsoft.Web

Anote o nome da rede virtual e o nome da sub-rede após esse comando, pois seria necessário para adicionar a regra de integração VNET para o aplicativo Web depois que ele for criado.

Criar uma aplicação Web

Nesta seção, você cria o host do aplicativo no aplicativo do Serviço de Aplicativo e conecta esse aplicativo ao Banco de Dados do Azure para o banco de dados do servidor flexível MySQL. Certifique-se de que está na raiz do repositório do código da sua aplicação no terminal.

Crie um aplicativo do Serviço de Aplicativo (o processo de host) com o comando az webapp up.

az webapp up --resource-group myresourcegroup --location westus2 --plan testappserviceplan --sku P2V2 --name mywebapp

Nota

  • Para o argumento --location, use o mesmo local que você fez para o banco de dados na seção anterior.
  • Substitua <app-name> por um nome exclusivo em todo o Azure (o ponto de extremidade do servidor é https://\<app-name>.azurewebsites.net). Os caracteres permitidos para <o nome> do aplicativo são A-Z, 0-9 e -. Um bom padrão é usar uma combinação do nome da sua empresa e um identificador de aplicativo.
  • A camada Básica do Serviço de Aplicativo não oferece suporte à integração com VNET. Por favor, use Standard ou Premium.

Este comando executa as seguintes ações, que podem levar alguns minutos:

  • Crie o grupo de recursos se ele ainda não existir. (Neste comando, você usa o mesmo grupo de recursos no qual criou o banco de dados anteriormente.)
  • Crie o plano testappserviceplan do Serviço de Aplicativo no nível de preço Básico (B1), se ele não existir. --plan e --sku são opcionais.
  • Crie o aplicativo do Serviço de Aplicativo se ele não existir.
  • Habilite o log padrão para o aplicativo, se ainda não estiver habilitado.
  • Carregue o repositório usando a implantação ZIP com a automação de compilação habilitada.

Adicionar o aplicativo Web à rede virtual

Use o comando az webapp vnet-integration para adicionar uma integração de rede virtual regional a um webapp. Substitua <vnet-name> e <subnet-name pelo nome da rede virtual e da sub-rede que a instância de servidor flexível do Banco de Dados do Azure para MySQL está usando.

az webapp vnet-integration add -g myresourcegroup -n  mywebapp --vnet VNETName --subnet webappsubnetName

Configurar variáveis de ambiente para conectar o banco de dados

Com o código agora implantado no Serviço de Aplicativo, a próxima etapa é conectar o aplicativo à instância flexível do servidor flexível do Banco de Dados do Azure para MySQL no Azure. O código do aplicativo espera encontrar informações do banco de dados em várias variáveis de ambiente. Para definir variáveis de ambiente no Serviço de Aplicativo, crie "configurações do aplicativo" com o az webapp config appsettings set comando.

az webapp config appsettings set --settings DBHOST="<mysql-server-name>.mysql.database.azure.com" DBNAME="flexibleserverdb" DBUSER="<username>" DBPASS="<password>"
  • Substitua <mysql-server-name>, <username> e <password> pelo comando de servidor flexível recém-criado do Banco de Dados do Azure para MySQL.
  • Substitua o nome> de usuário e< a senha> pelas credenciais que o comando também gerou para você.<
  • O grupo de recursos e o nome do aplicativo são extraídos dos valores armazenados em cache no arquivo .azure/config.
  • O comando cria configurações chamadas DBHOST, DBNAME, DBUSER e DBPASS. Se o código do seu aplicativo estiver usando um nome diferente para as informações do banco de dados, use esses nomes para as configurações do aplicativo, conforme mencionado no código.

Configure o aplicativo Web para permitir todas as conexões de saída de dentro da rede virtual.

az webapp config set --name mywebapp --resource-group myresourcesourcegroup --generic-configurations '{"vnetRouteAllEnabled": true}'

Aplicativo Web do Serviço de Aplicativo e instância de servidor flexível do Banco de Dados do Azure para MySQL em diferentes redes virtuais

Se você criou o aplicativo do Serviço de Aplicativo e a instância de servidor flexível do Banco de Dados do Azure para MySQL em diferentes redes virtuais (VNets), precisará executar as duas etapas a seguir para estabelecer uma conexão perfeita:

  • Conecte as duas VNets usando o emparelhamento de VNet (local ou global). Consulte Guia Conectar redes virtuais com emparelhamento de rede virtual.
  • Vincule a zona DNS privada da instância flexível do servidor do Banco de Dados do Azure para MySQL à VNet do aplicativo Web usando links de rede virtual. Se você usar o portal do Azure ou a CLI do Azure para criar instâncias de servidor flexíveis do Banco de Dados do Azure para MySQL em uma rede virtual, uma nova zona DNS privada será provisionada automaticamente em sua assinatura usando o nome do servidor fornecido. Navegue até a zona DNS privada da instância de servidor flexível do Banco de Dados do Azure para MySQL e siga o guia Como vincular a zona DNS privada a uma rede virtual para configurar um link de rede virtual.

Clean up resources (Limpar recursos)

Limpe todos os recursos criados no tutorial usando o comando a seguir. Este comando exclui todos os recursos desse grupo de recursos.

az group delete -n myresourcegroup

Próximos passos