Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo mostra como implantar seu código como um pacote ZIP, WAR, JAR ou EAR para o Serviço de Aplicativo do Azure. Ele também mostra como implantar arquivos individuais no Serviço de Aplicativo, separados do pacote de aplicativos.
Pré-requisitos
Para concluir as etapas neste artigo, crie um aplicativo do Serviço de Aplicativo ou use um aplicativo criado para outro tutorial.
Se você ainda não tiver uma conta do Azure, crie uma conta gratuita antes de começar.
Criar um pacote ZIP do 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 você baixar um repositório do GitHub como arquivo ZIP, não poderá implantar esse arquivo 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 do terminal local, navegue até o diretório raiz do projeto do aplicativo.
Esse diretório deve conter o arquivo de entrada para seu aplicativo Web, como index.html
, index.php
e app.js
. Ele também pode conter arquivos de gerenciamento de pacotes, comoproject.json
, composer.json
, package.json
e bower.json
requirements.txt
.
Se você não quiser que o Serviço de Aplicativo execute a automação de implantação para você, execute todas as tarefas de build. Por exemplo: npm
, , bower
, gulp
, composer
e pip
. Verifique se você tem todos os arquivos necessários para executar o aplicativo. Esta etapa será necessária se desejar executar o pacote diretamente.
Criar um arquivo zip de tudo em 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, insira o seguinte comando em 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ê implanta um pacote ZIP, o Serviço de Aplicativo descompacta seu conteúdo no caminho padrão para seu aplicativo: D:\home\site\wwwroot
para Windows e /home/site/wwwroot
para Linux.
Essa implantação do pacote ZIP usa o mesmo serviço Kudu que alimenta implementações baseadas em integração contínua. O Kudu dá suporte para a seguinte funcionalidade para a implantação de um pacote ZIP:
- Exclusão de arquivos que sobraram de uma implantação anterior
- Opção para ativar o processo de build padrão, que inclui a restauração do pacote
- Personalização da implantação, incluindo a execução de scripts de implantação
- Logs de implantação
- Um limite de tamanho de pacote de 2.048 megabytes
Observação
Os arquivos no pacote ZIP só serão copiados se seus timestamps não corresponderem ao que já está implantado.
Implantar com a interface do usuário de implantação ZIP no Kudu
- Abra seu aplicativo no portal do Azure e selecione Ferramentas de Desenvolvimento>Ferramentas Avançadas, depois selecione Ir.
- No Kudu, selecione Ferramentas>Implantação por push do Zip.
- Carregue o pacote ZIP criado em Criar um pacote ZIP do projeto. Arraste-o para a área do explorador de arquivos na página da Web.
Quando a implantação está em andamento, um ícone no canto superior direito mostra a porcentagem de progresso. A página também exibe mensagens para a operação abaixo da área do Explorador de Arquivos . Quando a implantação for concluída, a última mensagem deverá dizer "Implantação bem-sucedida".
Esse endpoint não funciona para o Serviço de Aplicativo no Linux atualmente. Considere usar o FTP ou a API de implantação de ZIP em vez disso.
Implantar no Kudu sem usar a interface de implantação do tipo ZIP
Implante um pacote ZIP em seu aplicativo Web usando o az webapp deploy
comando. O comando da 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 por push para seu site. Especifique o caminho para seu pacote ZIP local para --src-path
.
az webapp deploy --resource-group <group-name> --name <app-name> --src-path <zip-package-path>
Esse comando reinicia o aplicativo depois de implantar o pacote ZIP.
Habilitar a automação de build para implantação ZIP
Por padrão, o mecanismo de implantação assume que um pacote ZIP está pronto para ser executado no estado em que se encontra e não executa nenhuma automação de compilação. Para habilitar a mesma automação de build usada em uma implantação do Git, defina a configuração do SCM_DO_BUILD_DURING_DEPLOYMENT
aplicativo. 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 Documentação do Kudu.
Implantar pacotes WAR, JAR ou EAR
Você pode implantar seu pacote WAR, JAR ou EAR no Serviço de Aplicativo para executar seu aplicativo Web Java usando a CLI do Azure, o PowerShell ou a API de publicação do Kudu.
O processo de implantação mostrado aqui coloca o pacote no compartilhamento de conteúdo do aplicativo com a convenção de nomenclatura e a estrutura de diretórios corretas. Para obter mais informações, confira Referência da API de publicação do Kudu. Recomendamos essa abordagem. Se você implantar pacotes WAR, JAR ou EAR usando FTP ou Implantação da Web, poderá ver falhas desconhecidas devido a erros no nome ou na estrutura.
Implante um pacote WAR no Tomcat ou JBoss EAP usando o az webapp deploy
comando. Especifique o caminho para seu pacote Java local como --src-path
.
az webapp deploy --resource-group <group-name> --name <app-name> --src-path ./<package-name>.war
O comando da CLI usa a API de publicação do Kudu para implantar o pacote e pode ser totalmente personalizado.
Implantar arquivos individuais
Implante um script de inicialização, biblioteca e arquivo estático em seu aplicativo Web usando o az webapp deploy
comando com o --type
parâmetro.
Se você implantar um script de inicialização dessa forma, o Serviço de Aplicativo usará automaticamente seu script para iniciar o aplicativo.
O comando da CLI usa a API de publicação do 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
Implantar em aplicativos protegidos pela rede
Dependendo da configuração de rede do aplicativo Web, o acesso direto ao aplicativo do seu ambiente de desenvolvimento pode ser bloqueado. (Consulte Implantação em sites protegidos pela rede e Implantação em sites protegidos pela rede, parte 2.) Em vez de enviar o pacote ou arquivo diretamente para o aplicativo Web, você pode publicá-lo em um sistema de armazenamento acessível a partir do aplicativo Web e disparar o aplicativo para efetuar pull do ZIP do local de armazenamento.
A URL remota pode ser qualquer local acessível publicamente, mas é melhor usar um contêiner de armazenamento de blobs com uma chave SAS (assinatura de acesso compartilhado) para protegê-la.
Use o comando az webapp deploy
como faria nas outras seções, mas use --src-url
em vez de --src-path
. O exemplo a seguir usa o parâmetro --src-url
para especificar a URL de um arquivo ZIP hospedado em uma conta de Armazenamento do Microsoft 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 API do Kudu publish
permite que você especifique os mesmos parâmetros do comando da CLI que os parâmetros de consulta de URL. Para autenticar com a API REST do Kudu, recomendamos a autenticação por 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, os valores permitidos e as descrições.
Chave | Valores permitidos | Descrição | Obrigatório | Tipo |
---|---|---|---|---|
type |
war |jar |ear |lib |startup |static |zip |
Esse é o tipo do artefato que está sendo implantado. Ele define o caminho de destino padrão e informa ao aplicativo Web como a implantação deve ser tratada. type=zip : implante um pacote ZIP descompactando o conteúdo para /home/site/wwwroot . O parâmetro target-path é opcional. type=war : implantar um pacote WAR. Por padrão, o pacote WAR é implantado em /home/site/wwwroot/app.war . O caminho de destino pode ser especificado com target-path . type=jar : implantar um pacote JAR em /home/site/wwwroot/app.jar . O parâmetro target-path é ignorado. type=ear : implante um pacote EAR em /home/site/wwwroot/app.ear . O parâmetro target-path é ignorado. type=lib : implante um arquivo de biblioteca JAR. Por padrão, o arquivo é implantado em /home/site/libs . O caminho de destino pode ser especificado com target-path . type=static : implante um arquivo estático, como um script. Por padrão, o arquivo é implantado em /home/site/wwwroot . type=startup : implante um script que o Serviço de Aplicativo usa automaticamente como o script de inicialização para seu aplicativo. Por padrão, o script é implantado no D:\home\site\scripts\<name-of-source> para o Windows e no home/site/wwwroot/startup.sh para o Linux. O caminho de destino pode ser especificado com target-path . |
Sim | Cadeia de caracteres |
restart |
true |false |
Por padrão, a API reinicia o aplicativo após a operação de implantação (restart=true ). Ao implantar vários artefatos, você pode impedir reinicializações em todos, exceto na implantação final, definindo restart=false . |
Não | Booliano |
clean |
true |false |
Especifica se o destino da implantação deve ser limpo (excluído) antes de implantar o artefato. | Não | Booliano |
ignorestack |
true |false |
A API de publicação usa a variável de ambiente WEBSITE_STACK para escolher os padrões seguros, dependendo da pilha de linguagens do site. Definir esse parâmetro como false desabilita qualquer padrão específico de linguagem. |
Não | Booliano |
target-path |
Um caminho absoluto | O caminho absoluto para implantar o artefato. Por exemplo, /home/site/deployments/tools/driver.jar ou /home/site/scripts/helper.sh . |
Não | Cadeia de caracteres |
Conteúdo relacionado
Para cenários mais avançados de implantação, tente implantação no Azure com Git. Implantação baseada em Git no Azure permite o controle de versão, restauração do pacote, MSBuild e muito mais.