Tutorial: Criar um PHP (Laravel) e o aplicativo do Banco de Dados do Azure para MySQL – Servidor Flexível no Serviço de Aplicativo do Azure
O Serviço de Aplicativo do Azure fornece um serviço de hospedagem na Web altamente escalonável e com aplicação automática de patches usando o sistema operacional Linux. Este tutorial mostra como criar um aplicativo PHP seguro em Serviço de Aplicativo do Azure conectado a um banco de dados MySQL (usando o servidor flexível do Banco de Dados do Azure para MySQL). Quando terminar, você terá um aplicativo Laravel em execução no Serviço de Aplicativo do Azure no Linux.
Neste tutorial, você aprenderá como:
- Criar um aplicativo PHP e MySQL seguro por padrão
- Configurar segredos de conexão para MySQL usando configurações de aplicativo
- Implantar o código do aplicativo usando o GitHub Actions
- Atualizar o aplicativo e reimplantar
- Execute as migrações de banco de dados com segurança
- Transmitir logs de diagnóstico do Azure
- Gerenciar o aplicativo no portal do Azure
Pré-requisitos
- Uma assinatura do Azure. 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.
Aplicativo de exemplo
Para acompanhar este tutorial, clone ou baixe o aplicativo de exemplo do repositório:
git clone https://github.com/Azure-Samples/laravel-tasks.git
Se você quiser executar o aplicativo localmente, faça o seguinte:
Em .env, defina as configurações do banco de dados (como
DB_DATABASE
,DB_USERNAME
eDB_PASSWORD
) usando as configurações no banco de dados do servidor flexível do Banco de Dados do Azure para MySQL local. Você precisa de uma instância do servidor flexível do Banco de Dados do Azure para MySQL local para executar este exemplo.Na raiz do repositório, inicie o Laravel com os seguintes comandos:
composer install php artisan migrate php artisan key:generate php artisan serve
1 – Criar recursos de servidor flexível do Serviço de Aplicativo e do Banco de Dados do Azure para MySQL
Nesta etapa, você criará os recursos do Azure. As etapas usadas neste tutorial criam uma configuração do Serviço de Aplicativo e Banco de Dados do Azure para MySQL – servidor flexível, que é segura por padrão. Para o processo de criação, você especificará:
- O Nome do aplicativo Web. Esse nome é usado como parte do nome DNS para seu aplicativo Web na forma de
https://<app-name>.azurewebsites.net
. - O Runtime para o aplicativo. É aqui que você seleciona a versão do PHP a ser usada para seu aplicativo.
- O Grupo de Recursos para o aplicativo. Um grupo de recursos permite agrupar (em um contêiner lógico) todos os recursos necessários do Azure para o aplicativo.
Entre no portal do Azure e siga estas etapas para criar seus recursos do Serviço de Aplicativo do Azure.
Instruções | Captura de tela |
---|---|
No portal do Azure:
|
|
Na página Criar aplicativo Web + Banco de dados, preencha o formulário conforme a seguir.
|
|
A implantação leva alguns minutos para ser concluída e cria os seguintes recursos:
|
2 – Configurar a conectividade do banco de dados
O assistente de criação gerou configurações do aplicativo para serem usadas na conexão com o banco de dados, mas não em um formato que seja utilizável para seu código. Nesta etapa, você editará e atualizará as configurações do aplicativo no formato de que seu aplicativo precisa.
Instruções | Captura de tela | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Na página Serviço de Aplicativo, no menu à esquerda, selecione Configuração. | |||||||||||
Na guia Configurações do aplicativo da página Configuração, para cada uma das configurações a seguir, selecione Editar, atualize o campo Nome com novos valores e selecione OK.
|
|||||||||||
Criar uma nova configuração de banco de dados MYSQL_ATTR_SSL_CA :
|
|||||||||||
Crie as seguintes configurações extras de aplicativo seguindo as mesmas etapas e selecione Salvar.
|
3 – Implantar código de exemplo
Nesta etapa, você configurará a implantação do GitHub usando o GitHub Actions. É apenas uma das muitas maneiras de implantar no Serviço de Aplicativo, mas também uma ótima maneira de ter integração contínua em seu processo de implantação. Por padrão, cada git push
em seu repositório GitHub iniciará a ação de compilação e implantação. Você fará algumas alterações na base de código com o Visual Studio Code diretamente no navegador e, em seguida, permitirá que o GitHub Actions implante automaticamente para você.
Instruções | Captura de tela |
---|---|
Em uma nova janela do navegador:
|
|
Na página do GitHub, abra o Visual Studio Code no navegador pressionando a tecla . . |
|
No Visual Studio Code, no navegador, abra config/database.php no explorer. Na conexão mysql , veja se as configurações de aplicativo que você criou anteriormente para a conexão MySQL já estão sendo usadas (DB_HOST , DB_DATABASE , DB_USERNAME , DB_PASSWORD , MYSQL_ATTR_SSL_CA ). |
|
De volta à página Serviço de Aplicativo, no menu à esquerda, selecione Centro de Implantação. | |
Na página Centro de Implantação:
.github/workflows . |
|
Na página Centro de Implantação:
|
|
Para fazer alterações no código, vá para o Visual Studio Code no navegador:
Dica A ação do GitHub é definida pelo arquivo em seu repositório do GitHub, em .github/workflow. Você pode torná-lo mais rápido personalizando o arquivo. |
4 – Gerar esquema de banco de dados
O assistente de criação coloca a instância de servidor flexível do Banco de Dados do Azure para MySQL atrás de um ponto de extremidade privado, portanto, ela só é acessível da rede virtual. Como o aplicativo do Serviço de Aplicativo já está integrado à rede virtual, a maneira mais fácil de executar migrações de banco de dados com seu banco de dados é diretamente de dentro do contêiner do Serviço de Aplicativo.
Instruções | Captura de tela |
---|---|
Na página Serviço de Aplicativo:
https://<app-name>.scm.azurewebsites.net/webssh/host se quiser. |
|
No terminal SSH:
|
5 – Alterar a raiz do site
O ciclo de vida do aplicativo Laravel começa no diretório /public. O contêiner padrão do PHP 8.0 para o Serviço de Aplicativo usa o Nginx, que começa no diretório raiz do aplicativo. Para alterar a raiz do site, você precisa alterar o arquivo de configuração do Nginx no contêiner do PHP 8.0 (/etc/nginx/sites-available/default). Para sua conveniência, o repositório de exemplo contém um arquivo de configuração personalizado chamado padrão. Como mencionado anteriormente, você não deseja substituir esse arquivo usando o shell SSH, pois suas alterações serão perdidas após a reinicialização de um aplicativo.
6 – Navegar até o aplicativo
7 – Logs de diagnóstico de fluxo
Limpar os recursos
Quando tiver terminado, você poderá excluir todos os recursos de sua assinatura do Azure ao excluir o grupo de recursos.
Perguntas frequentes
- Quanto custa essa configuração?
- Como fazer para me conectar a um banco de dados de servidor flexível do Banco de Dados do Azure para MySQL protegido por uma rede virtual?
- Como o desenvolvimento de aplicativos local funciona com o GitHub Actions?
- Por que a implantação do GitHub Actions é tão lenta?
Quanto custa essa configuração?
O preço dos recursos de criação é o seguinte:
- O plano do Serviço de Aplicativo é criado na camada Premium V2 e pode ser verticalmente escalado ou reduzido. Confira Preço do Serviço de Aplicativo.
- A instância de servidor flexível do Banco de Dados do Azure para MySQL é criada na camada B1ms e pode ser verticalmente escalada ou reduzida. Com uma conta gratuita do Azure, a camada B1ms é gratuita por 12 meses até os limites mensais. Confira Preço do servidor flexível do Banco de Dados do Azure para MySQL.
- A rede virtual não incorre em cobrança, a menos que você configure uma funcionalidade extra, como emparelhamento. Consulte os Preços da Rede Virtual do Azure.
- A zona DNS privada incorre em uma pequena cobrança. Consulte os Preços do DNS do Azure.
Como fazer para me conectar a um banco de dados de servidor flexível do Banco de Dados do Azure para MySQL protegido por uma rede virtual?
Para se conectar a um banco de dados do servidor flexível do Banco de Dados do Azure para MySQL, você pode usar vários métodos com base nas ferramentas e ambientes à sua disposição:
- Acesso à ferramenta de linha de comando:
- Use o comando
mysql
do terminal SSH do aplicativo para acesso básico.
- Use o comando
- Ferramentas de área de trabalho (por exemplo, MySQL Workbench):
- Usando o túnel SSH com a CLI do Azure:
- Crie uma sessão SSH para o aplicativo Web usando a CLI do Azure.
- Use a sessão SSH para túnel do tráfego para MySQL.
- Usando VPN site a site ou VM do Azure:
- Seu computador deve fazer parte da rede virtual.
- Considere usar:
- Uma VM do Azure vinculada a uma das sub-redes.
- Um computador em uma rede local que tem uma conexão VPN site a site com a rede virtual do Azure.
- Usando o túnel SSH com a CLI do Azure:
- Integração do Azure Cloud Shell:
- Integre o Azure Cloud Shell à rede virtual para acesso direto.
Como o desenvolvimento de aplicativos local funciona com o GitHub Actions?
Use o arquivo de fluxo de trabalho gerado automaticamente do Serviço de Aplicativo como exemplo, cada git push
inicia uma nova execução de build e implantação. Em um clone local do repositório do GitHub, você faz as atualizações desejadas efetuarem push para o GitHub. Por exemplo:
git add .
git commit -m "<some-message>"
git push origin main
Por que a implantação do GitHub Actions é tão lenta?
O arquivo de fluxo de trabalho gerado automaticamente do Serviço de Aplicativo define a execução de dois trabalhos, compilar e implantar. Como cada trabalho é executado em seu próprio ambiente limpo, o arquivo de fluxo de trabalho garante que o trabalho deploy
tenha acesso aos arquivos do trabalho build
:
- No final do trabalho
build
, carregue arquivos como artefatos. - No início do trabalho
deploy
, baixe os artefatos.
A maior parte do tempo gasto pelo processo de dois trabalhos é carregando e baixando artefatos. Se desejar, você pode simplificar o arquivo de fluxo de trabalho combinando os dois trabalhos em um, o que elimina a necessidade das etapas de carregar e baixar.
Resumo
Neste tutorial, você aprendeu a:
- Criar um aplicativo de servidor flexível do PHP e do Banco de Dados do Azure para MySQL seguro por padrão no Azure
- Configurar segredos de conexão para o servidor flexível do Banco de Dados do Azure para MySQL usando configurações de aplicativo
- Implantar o código do aplicativo usando o GitHub Actions
- Atualizar o aplicativo e reimplantar
- Execute as migrações de banco de dados com segurança
- Transmitir logs de diagnóstico do Azure
- Gerenciar o aplicativo no portal do Azure