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 como implantar seu código como um pacote ZIP, WAR, JAR ou EAR no Serviço de Aplicativo 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 do Azure, crie uma conta gratuita 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 transferires um repositório do GitHub como um ficheiro ZIP, não podes implementar esse ficheiro diretamente no App Service. O GitHub adiciona diretórios aninhados no 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 você implementar um pacote ZIP, o App Service descompacta seu conteúdo no caminho padrão para o seu aplicativo: 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
Ficheiros no pacote ZIP são copiados apenas se os seus carimbos de data/hora não coincidirem com o que já está implantado.
Implementar com a interface de implantação ZIP no Kudu
- Abra a sua aplicação no portal do Azure e selecione Ferramentas de Desenvolvimento>Ferramentas Avançadas, e em seguida, selecione Ir.
- 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 o App Service 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 no 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 no App Service para executar a sua aplicação web Java utilizando o Azure CLI, PowerShell ou a API de publicação do 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 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 a seguir usa o --src-url
parâmetro para especificar a URL de um arquivo ZIP hospedado em uma conta de 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 .
target-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 target-path . type=jar : Implementar um pacote JAR para /home/site/wwwroot/app.jar . O parâmetro target-path é ignorado. type=ear : Implantar um pacote EAR em /home/site/wwwroot/app.ear . O parâmetro target-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 target-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 padrão, o script é implantado para D:\home\site\scripts\<name-of-source> Windows e home/site/wwwroot/startup.sh Linux. O caminho de destino pode ser especificado com target-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 |
target-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 implantação mais avançados, tente implantar no Azure com o Git. A implantação baseada em Git no Azure permite controle de versão, restauração de pacotes, MSBuild e muito mais.