Tutorial: Criar um PHP (Laravel) e um Banco de Dados do Azure para MySQL - Aplicativo de 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 escalável e auto-corrigido usando o sistema operacional Linux. Este tutorial mostra como criar um aplicativo PHP seguro no Serviço de Aplicativo do Azure conectado a um banco de dados MySQL (usando o Banco de Dados do Azure para servidor flexível MySQL). Quando terminar, você terá um aplicativo Laravel em execução no Serviço de Aplicativo do Azure no Linux.
Neste tutorial, irá aprender a:
- Criar um aplicativo PHP e MySQL seguro por padrão no Azure
- Configurar segredos de conexão para o MySQL usando as configurações do aplicativo
- Implantar código de aplicativo usando ações do GitHub
- Atualizar e reimplementar a aplicação
- Executar migrações de banco de dados com segurança
- Transmitir os registos de diagnóstico em fluxo a partir do Azure
- Gerir a aplicação no portal do Azure
Pré-requisitos
- Uma assinatura do Azure 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.
Aplicação 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 em seu Banco de Dados do Azure local para o banco de dados do servidor flexível MySQL. Você precisa de uma instância de servidor flexível do Banco de Dados do Azure para MySQL local para executar este exemplo.A partir da 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 Serviço de Aplicativo e Banco de Dados do Azure para recursos de servidor flexíveis do MySQL
Nesta etapa, você cria os recursos do Azure. As etapas usadas neste tutorial criam um Serviço de Aplicativo e um Banco de Dados do Azure para configuração de servidor flexível do MySQL que é seguro por padrão. Para o processo de criação, você especificará:
- O Nome do aplicativo Web. É o nome usado como parte do nome DNS do seu webapp na forma de
https://<app-name>.azurewebsites.net
. - O tempo de execução do aplicativo. É onde você seleciona a versão do PHP para usar em seu aplicativo.
- O Grupo de Recursos para o aplicativo. Um grupo de recursos permite agrupar (em um contêiner lógico) todos os recursos do Azure necessários 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 ecrã |
---|---|
No portal do Azure:
|
|
Na página Criar Aplicativo Web + Banco de Dados, preencha o formulário da seguinte maneira.
|
|
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 de aplicativo para você usar para se conectar ao banco de dados, mas não em um formato que ainda seja utilizável para seu código. Nesta etapa, você edita e atualiza as configurações do aplicativo para o formato que seu aplicativo precisa.
Instruções | Captura de ecrã | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
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.
|
|||||||||||
Crie uma nova MYSQL_ATTR_SSL_CA configuração de banco de dados:
|
|||||||||||
Crie as seguintes configurações extras do aplicativo seguindo as mesmas etapas e selecione Salvar.
|
3 - Implantar código de exemplo
Nesta etapa, você configurará a implantação do GitHub usando as Ações do GitHub. É 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
um no repositório do GitHub iniciará a ação de compilação e implantação. Você fará algumas alterações em sua base de código com o Visual Studio Code diretamente no navegador e, em seguida, permitirá que as Ações do GitHub sejam implantadas automaticamente para você.
Instruções | Captura de ecrã |
---|---|
Em uma nova janela do navegador:
|
|
Na página GitHub, abra o Visual Studio Code no navegador pressionando a . tecla . |
|
No Visual Studio Code no navegador, abra config/database.php no explorador. mysql Na conexão, veja que as configurações do aplicativo que você criou anteriormente para a conexão MySQL já são 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 Central de Implantação. | |
Na página Centro de Implementação:
.github/workflows diretório. |
|
Na página Centro de Implementação:
|
|
Para fazer alterações no seu código, vá para Visual Studio Code no navegador:
Gorjeta A ação do GitHub é definida pelo arquivo no 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, para que seja acessível apenas a partir 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 ecrã |
---|---|
Na página Serviço de Aplicativo:
https://<app-name>.scm.azurewebsites.net/webssh/host vez disso. |
|
No terminal SSH:
|
5 - Alterar raiz do site
Em vez disso, o ciclo de vida do aplicativo Laravel começa no diretório /public . O contêiner PHP 8.0 padrão para o Serviço de Aplicativo usa 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 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 observado anteriormente, você não deseja substituir esse arquivo usando o shell SSH, porque suas alterações serão perdidas após a reinicialização de um aplicativo.
6 - Navegue até o aplicativo
7 - Logs de diagnóstico de fluxo
Clean up resources (Limpar recursos)
Quando terminar, pode eliminar todos os recursos da sua subscrição do Azure eliminando o grupo de recursos.
Perguntas mais frequentes
- Quanto custa esta configuração?
- Como faço para me conectar a um banco de dados de servidor flexível do Banco de Dados do Azure para MySQL protegido por trás de uma rede virtual?
- Como funciona o desenvolvimento de aplicativos locais com o GitHub Actions?
- Por que a implantação do GitHub Actions é tão lenta?
Quanto custa esta 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 dimensionado para cima ou para baixo. Consulte Preços 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 dimensionada para cima ou para baixo. Com uma conta gratuita do Azure, o nível B1ms é gratuito por 12 meses, até os limites mensais. Consulte Banco de Dados do Azure para preços flexíveis do servidor MySQL.
- A rede virtual não incorre em cobrança, a menos que você configure uma funcionalidade extra, como emparelhamento. Consulte Preços da Rede Virtual do Azure.
- A zona DNS privada incorre em uma pequena cobrança. Consulte Preços do DNS do Azure.
Como faço para me conectar a um banco de dados de servidor flexível do Banco de Dados do Azure para MySQL protegido por trás de uma rede virtual?
Para se conectar a um banco de dados de 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
mysql
comando do terminal SSH do aplicativo para acesso básico.
- Use o
- Ferramentas de desktop (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 encapsular o tráfego para o MySQL.
- Usando VPN site a site ou VM do Azure:
- Sua máquina deve fazer parte da rede virtual.
- Considere usar:
- Uma VM do Azure vinculada a uma das sub-redes.
- Uma máquina 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 com a rede virtual para acesso direto.
Como funciona o desenvolvimento de aplicativos locais com o GitHub Actions?
Tome o arquivo de fluxo de trabalho gerado automaticamente do Serviço de Aplicativo como exemplo, cada git push
um inicia uma nova compilação e execução de implantação. A partir de um clone local do repositório GitHub, você faz com que as atualizações desejadas o enviem 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 de compilação e implantação. Como cada trabalho é executado em seu próprio ambiente limpo, o arquivo de fluxo de trabalho garante que o deploy
trabalho tenha acesso aos arquivos do build
trabalho:
- No final do
build
trabalho, carregue arquivos como artefatos. - No início do
deploy
trabalho, baixe os artefatos.
A maior parte do tempo gasto pelo processo de dois trabalhos é gasto 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 upload e download.
Resumo
Neste tutorial, ficou a saber como:
- Criar um PHP seguro por padrão e um Banco de Dados do Azure para o aplicativo de servidor flexível MySQL no Azure
- Configurar segredos de conexão ao Banco de Dados do Azure para servidor flexível MySQL usando as configurações do aplicativo
- Implantar código de aplicativo usando ações do GitHub
- Atualizar e reimplementar a aplicação
- Executar migrações de banco de dados com segurança
- Transmitir os registos de diagnóstico em fluxo a partir do Azure
- Gerir a aplicação no portal do Azure