Tutorial: conectar um aplicativo Web dos Serviços de Aplicativos ao Banco de Dados do Azure para MySQL – Servidor Flexível em uma rede virtual
Esse tutorial mostra como criar e conectar um aplicativo Web do Serviço de Aplicativo do Azure a uma instância do Banco de Dados do Azure para MySQL servidor flexível isolada dentro da mesma ou de diferentes redes virtuais.
Neste tutorial, você aprenderá a:
- Crie uma instância do Banco de Dados do Azure para MySQL servidor flexível em uma rede virtual
- Criar uma sub-rede a ser delegada ao Serviço de Aplicativo e criar um aplicativo Web
- Adicionar o aplicativo Web à rede virtual
- Conecte-se ao Banco de Dados do Azure para MySQL servidor flexível a partir do aplicativo da Web
- Conecte um aplicativo Web e uma instância do Banco de Dados do Azure para MySQL servidor flexível isolada em diferentes VNets
Pré-requisitos
Caso você não tenha 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 com Servidor Flexível gratuitamente por 12 meses. Para mais informações, consulte Usar uma conta gratuita do Azure para experimentar o Banco de Dados do Azure para MySQL – servidor flexível gratuito.
Este artigo exige 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 você precisa instalar ou atualizar, consulte Instalar a CLI do Azure.
Você precisará fazer logon em sua conta usando o comando login az. Observe a propriedade id da saída do comando para o nome da assinatura correspondente.
az login
Se tiver várias assinaturas, escolha a que for adequada para cobrança do recurso. Selecione a ID da assinatura específica em sua conta usando o comando az account set. Substitua a propriedade ID da assinatura da saída az logon por sua assinatura no espaço reservado da ID de assinatura.
az account set --subscription <subscription ID>
Criar uma instância do servidor flexível do Banco de Dados do Azure para MySQL
Crie uma instância privada do Banco de Dados do Azure para MySQL servidor flexível 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. Esse 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 do servidor, caso não tenha sido fornecido.
- Crie uma nova rede virtual,
VNETName
para sua nova instância do Servidor Flexível do Banco de Dados do Azure para MySQL e uma sub-rede dentro dessa rede virtual para a instância do Servidor Flexível do Banco de Dados do Azure para MySQL. O nome deve ser exclusivo. - Cria o nome de usuário e senha do administrador para o servidor, caso não fornecidos.
- Cria um banco de dados vazio chamado flexibleserverdb.
Observação
Anote a senha que será gerada para você se não for fornecida. Se você esquecer a senha, precisará redefini-la usando o comando az mysql flexible-server update
.
Criar uma 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 os nomes da rede virtual e da sub-rede após esse comando, pois você precisará deles para adicionar a regra de Integração VNET ao aplicativo Web depois que ele for criado.
Criar um aplicativo Web
Nessa seção, você cria um host de aplicativo no aplicativo App Service e conecta esse aplicativo ao banco de dados do Banco de Dados do Azure para MySQL servidor flexível. Verifique se você está na raiz do repositório do código do aplicativo 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
Observação
- Para o argumento --location, use a mesma localização usada 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 <app-name> são A-Z, 0-9 e -. Um bom padrão é usar uma combinação do nome da empresa e um identificador de aplicativo. - A camada Básica do Serviço de Aplicativo não dá suporte à Integração VNET. Use o plano Standard ou Premium.
Esse comando executa as seguintes ações, que podem levar alguns minutos:
- Criar o grupo de recursos se ele ainda não existir. (Neste comando, você usa o mesmo grupo de recursos no qual você criou o banco de dados anteriormente.)
- Crie o plano do Serviço de Aplicativo
testappserviceplan
no tipo de preço Básico (B1), se ele não existir. --plan e --sku são opcionais. - Criar o aplicativo do Serviço de Aplicativo se ele não existir.
- Habilitar o log padrão do aplicativo, se ainda não estiver habilitado.
- Carregar o repositório usando a implantação ZIP com a automação do build 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 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 as variáveis de ambiente para conexão com o banco de dados
Com o código agora implantado no App Service, a próxima etapa é conectar o aplicativo à instância do Banco de Dados do Azure para MySQL servidor flexível no Azure. O código do aplicativo espera encontrar informações sobre o banco de dados em diversas variáveis de ambiente. Para definir variáveis de ambiente no Serviço de Aplicativo, você cria "configurações do aplicativo" com o comando az webapp config appsettings set
.
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 <senha> pelo comando recém-criado Banco de Dados do Azure para MySQL servidor flexível.
- Substitua <username> e <password> 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 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 App Service e instância do Banco de Dados do Azure para MySQL servidor flexível em diferentes redes virtuais
Se você criou o aplicativo App Service e a instância do Banco de Dados do Azure para MySQL servidor flexível em diferentes redes virtuais (VNets), será necessário executar as duas etapas a seguir para estabelecer uma conexão perfeita:
- Conecte as duas VNets usando o emparelhamento VNet (local ou global). Consulte o guia Conectar redes virtuais ao emparelhamento de rede virtual.
- Vincule a zona DNS privado da instância do Servidor Flexível 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 do Servidor Flexível do Banco de Dados do Azure para MySQL em uma VNet, uma nova zona DNS privada será provisionada automaticamente na 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.
Limpar os recursos
Limpe todos os recursos que você criou no tutorial usando o comando a seguir. Esse comando exclui todos os recursos nesse grupo de recursos.
az group delete -n myresourcegroup