Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo mostra-lhe como implementar o seu código como um pacote ZIP, WAR, JAR ou EAR para Serviço de Aplicações do Azure. Também lhe mostra como implantar arquivos individuais para o App Service, separadamente do seu pacote de aplicações.
Pré-requisitos
Para concluir as etapas neste artigo, crie um aplicativo do Serviço de Aplicativo ou use um aplicativo que você criou para outro tutorial.
Se não tiver uma conta Azure, crie uma conta free antes de começar.
Criar um pacote ZIP de projeto
Importante
Ao criar o pacote ZIP para implantação, não inclua o diretório raiz. Inclua apenas os arquivos e diretórios no diretório raiz. Se descarregares um repositório GitHub como ficheiro ZIP, não podes implementar esse ficheiro as-is para o App Service. O GitHub adiciona diretórios aninhados ao nível superior, o que não funciona com o App Service.
Em uma janela de terminal local, navegue até o diretório raiz do seu projeto de aplicativo.
Este diretório deve conter o ficheiro de entrada da sua aplicação web, como index.html, index.php e app.js. Pode também conter ficheiros de gestão de pacotes como project.json, composer.json, package.json, bower.json e requirements.txt.
Se não quiser que o App Service execute a automação de implantação por si, execute todas as tarefas de construção. Por exemplo: npm, bower, gulp, composer, and pip. Certifique-se de que tem todos os ficheiros de que necessita para executar a aplicação. Esta etapa é necessária se você quiser executar o pacote diretamente.
Crie um arquivo ZIP de tudo no seu projeto. Para projetos dotnet, adicione tudo no diretório de saída do comando dotnet publish, excluindo o próprio diretório de saída. Por exemplo, introduza o seguinte comando no seu terminal para criar um pacote ZIP que inclua o conteúdo do diretório atual.
# Bash
zip -r <file-name>.zip .
# PowerShell
Compress-Archive -Path * -DestinationPath <file-name>.zip
Implantar um pacote ZIP
Quando implementas um pacote ZIP, o App Service desempacota o seu conteúdo no caminho predefinido para a tua app: D:\home\site\wwwroot para Windows e /home/site/wwwroot para Linux.
Esta implantação de pacote ZIP usa o mesmo serviço Kudu que alimenta implantações baseadas em integração contínua. O Kudu suporta a seguinte funcionalidade para implantação de pacotes ZIP:
- Eliminação de ficheiros remanescentes de uma implementação anterior
- Opção para ativar o processo de compilação padrão, que inclui a restauração de pacotes
- Personalização de implementação, incluindo a execução de scripts de implementação.
- Registos de implementação
- Limite de tamanho do pacote de 2.048 megabytes
Nota
Os ficheiros no pacote ZIP só são copiados se os seus carimbos de data não coincidirem com o que já foi implementado.
Implementar com a interface de implantação ZIP no Kudu
- Abra a sua aplicação no portal Azure e selecione Ferramentas de Desenvolvimento>Ferramentas Avançadas, depois selecione Go.
- No Kudu, selecione Ferramentas>Zip Push Deploy.
- Carregue o pacote ZIP que criou em Criar um pacote ZIP do projeto. Arraste-o para a área do explorador de ficheiros na página Web.
Quando a implementação estiver em curso, um ícone no canto superior direito mostrará a percentagem de progresso. A página também exibe mensagens para a operação abaixo da área do Explorador de Ficheiros. Quando a implementação terminar, a última mensagem deve indicar "Implementação bem-sucedida."
Este endpoint não funciona para Serviço de Aplicações no Linux neste momento. Em vez disso, considere usar FTP ou a API de implantação ZIP.
Implementação sem interface de ZIP deploy no Kudu
Implante um pacote ZIP na sua aplicação web utilizando o comando az webapp deploy. O comando CLI usa a API de publicação do Kudu para implantar os arquivos e pode ser totalmente personalizado.
O exemplo a seguir envia um pacote ZIP para seu site. Especifique o caminho do seu pacote ZIP local para --src-path.
az webapp deploy --resource-group <group-name> --name <app-name> --src-path <zip-package-path>
Este comando reinicia o aplicativo após a implantação do pacote ZIP.
Ativar a automação de build para deployment ZIP
Por padrão, o mecanismo de implantação assume que um pacote ZIP está pronto para ser executado como está e não executa nenhuma automação de compilação. Para ativar a mesma automação de construção usada numa implementação do Git, defina a configuração da aplicação SCM_DO_BUILD_DURING_DEPLOYMENT. Execute o seguinte comando em Azure Cloud Shell:
az webapp config appsettings set --resource-group <group-name> --name <app-name> --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
Para obter mais informações, consulte a documentação do Kudu.
Implementar pacotes WAR, JAR ou EAR
Pode implementar o seu pacote WAR, JAR ou EAR para o App Service para correr a sua Java aplicação web usando a API de publicação CLI do Azure, PowerShell ou Kudu.
O processo de implementação mostrado aqui coloca o pacote na partilha de conteúdos da aplicação com a convenção de nomes e estrutura de diretórios corretas. Para obter mais informações, consulte Referência da API de publicação do Kudu. Recomendamos esta abordagem. Se implementar pacotes WAR, JAR ou EAR usando FTP ou Web Deploy, poderá encontrar falhas desconhecidas devido a erros na nomenclatura ou estrutura.
Desenvolva um pacote WAR no Tomcat ou JBoss EAP utilizando o comando az webapp deploy. Especifique o caminho para o seu pacote de Java local para --src-path.
az webapp deploy --resource-group <group-name> --name <app-name> --src-path ./<package-name>.war
O comando CLI usa a API de publicação do Kudu para implantar o pacote e pode ser totalmente personalizado.
Desdobrar arquivos individuais
Implemente um script de inicialização, uma biblioteca e um ficheiro estático na sua aplicação web usando o comando az webapp deploy com o parâmetro --type.
Se você implantar um script de inicialização dessa forma, o Serviço de Aplicativo usará automaticamente o script para iniciar seu aplicativo.
O comando CLI usa a API de publicação Kudu para implantar os arquivos. O comando pode ser totalmente personalizado.
Implantar um script de inicialização
az webapp deploy --resource-group <group-name> --name <app-name> --src-path scripts/startup.sh --type=startup
Implantar um arquivo de biblioteca
az webapp deploy --resource-group <group-name> --name <app-name> --src-path driver.jar --type=lib
Implantar um arquivo estático
az webapp deploy --resource-group <group-name> --name <app-name> --src-path config.json --type=static
Implementar em aplicações protegidas por rede
Dependendo da configuração de rede da sua aplicação web, o acesso direto à aplicação a partir do seu ambiente de desenvolvimento pode ser bloqueado. (Consulte Implementação em sites protegidos por rede e Implementação em sites protegidos por rede, parte 2.) Em vez de enviar o pacote ou arquivo diretamente para a aplicação web, pode publicá-lo num sistema de armazenamento acessível a partir da aplicação web e acionar a aplicação para buscar o arquivo ZIP a partir do local de armazenamento.
O URL remoto pode ser qualquer local acessível publicamente, mas é melhor usar um contentor de armazenamento de blobs com uma chave SAS (assinatura de acesso partilhado) para protegê-lo.
Use o az webapp deploy comando como faria nas outras seções, mas use --src-url em vez de --src-path. O exemplo seguinte utiliza o parâmetro --src-url para especificar a URL de um ficheiro ZIP alojado numa conta Armazenamento do Azure.
az webapp deploy --resource-group <group-name> --name <app-name> --src-url "https://storagesample.blob.core.windows.net/sample-container/myapp.zip?sv=2021-10-01&sb&sig=slk22f3UrS823n4kSh8Skjpa7Naj4CG3 --type zip
Referência da API de Publicação do Kudu
A publish API Kudu permite que você especifique os mesmos parâmetros do comando CLI como parâmetros de consulta de URL. Para autenticar com a API REST do Kudu, recomendamos a autenticação de token, mas você também pode usar a autenticação básica com as credenciais de implantação do seu aplicativo.
A tabela a seguir mostra os parâmetros de consulta disponíveis, seus valores permitidos e descrições.
| Chave | Valores permitidos | Descrição | Obrigatório | Tipo |
|---|---|---|---|---|
type |
war|jar|ear|lib|startup|static|zip |
Este é o tipo de artefacto que está a ser implementado. Define o caminho de destino padrão e informa a aplicação web sobre como a implantação deve ser realizada. type=zip: Implante um pacote ZIP descompactando o conteúdo em /home/site/wwwroot.
path parâmetro é opcional. type=war: Implementar um pacote WAR. Por padrão, o pacote WAR é implantado no /home/site/wwwroot/app.war. O caminho de destino pode ser especificado com path. type=jar: Implementar um pacote JAR para /home/site/wwwroot/app.jar. O parâmetro path é ignorado. type=ear: Implantar um pacote EAR em /home/site/wwwroot/app.ear. O parâmetro path é ignorado. type=lib: Implementar um ficheiro de biblioteca JAR. Por padrão, o arquivo é implantado no /home/site/libs. O caminho de destino pode ser especificado com path. type=static: Implantar um ficheiro estático, como um script. Por padrão, o arquivo é implantado no /home/site/wwwroot. type=startup: Implementar um script que o serviço App utilize automaticamente como o script de inicialização para a sua aplicação. Por defeito, o script é implementado em D:\home\site\scripts\<name-of-source> para Windows e home/site/wwwroot/startup.sh para Linux. O caminho de destino pode ser especificado com path. |
Sim | Corda |
restart |
true|false |
Por padrão, a API reinicia o aplicativo após a operação de implantação (restart=true). Ao implementar múltiplos artefatos, pode evitar reinicializações em todos, exceto na implementação final, definindo restart=false. |
Não | booleano |
clean |
true|false |
** Especifica se a implantação alvo deve ser limpa (eliminada) antes de implantar o artefato. | Não | booleano |
ignorestack |
true|false |
A API de publicação usa a WEBSITE_STACK variável de ambiente para escolher padrões seguros, dependendo da pilha de idiomas do seu site. Definir esse parâmetro para false desativar quaisquer padrões específicos do idioma. |
Não | booleano |
path |
Um caminho absoluto | O caminho absoluto para onde implantar o artefacto. Por exemplo, /home/site/deployments/tools/driver.jar ou /home/site/scripts/helper.sh. |
Não | Corda |
Conteúdos relacionados
Para cenários de implementação mais avançados, experimenta deploying para Azure com Git. A implementação baseada em Git no Azure permite controlo de versões, restauro de pacotes, MSBuild e mais.