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
Este tutorial mostra como criar e conectar um Aplicativo Web do Serviço de Aplicativo do Azure a uma instância do Servidor Flexível do Banco de Dados do Azure para MySQL isolada dentro da mesma ou de redes virtuais diferentes.
Neste tutorial, vai aprender a:
- Criar um Banco de Dados do Azure para a instância do Servidor Flexível 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 do Servidor Flexível MySQL isolado em VNets diferentes
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 Usar uma conta gratuita do Azure para experimentar 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 a instância do Servidor Flexível MySQL
Crie um Banco de Dados do Azure privado para a instância do Servidor Flexível 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 e sub-rede do Banco de Dados do Azure para Servidor Flexível MySQL dentro dessa rede virtual para a instância do Banco de Dados do Azure para Servidor Flexível 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 comando a seguir para criar uma nova sub-rede na mesma rede virtual em que a instância do 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 um host de 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 do Banco de Dados do Azure para Servidor Flexível 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 ao Banco de Dados do Azure para a instância do Servidor Flexível 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 recém-criado do Banco de Dados do Azure para Servidor Flexível 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 Banco de Dados do Azure para instância do Servidor Flexível MySQL em diferentes redes virtuais
Se você criou o aplicativo do Serviço de Aplicativo e a instância do Servidor Flexível do Banco de Dados do Azure para MySQL em redes virtuais (VNets) diferentes, 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 o Banco de Dados do Azure para a zona DNS Privada da instância do Servidor Flexível MySQL à VNet do aplicativo Web usando links de rede virtual. Se você usar o portal do Azure ou a CLI do Azure para criar o Banco de Dados do Azure para instâncias do Servidor Flexível 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 do 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