Eventos
17 de mar., 21 - 21 de mar., 10
Junte-se à série de encontros para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registrar agoraNão há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
Observação
Não há suporte para a execução por meio do pacote em aplicativos Python. Ao implantar um arquivo ZIP de seu código Python, você precisa definir um sinalizador para habilitar a automação de build do Azure. A automação de build criará o ambiente virtual do Python para seu aplicativo e instalará todos os requisitos e pacotes necessários. Confira Automação de build para obter mais detalhes.
No Serviço de Aplicativo do Azure, você pode executar aplicativos diretamente de um arquivo de pacote zip de implantação. Este artigo mostra como habilitar essa funcionalidade em seu aplicativo.
Todos os outros métodos de implantação no Serviço de Aplicativo têm algo em comum: os arquivos são implantados em D:\home\site\wwwroot no aplicativo (ou /home/site/wwwroot para aplicativos Linux). Como o mesmo diretório é usado pelo aplicativo no runtime, é possível que a implantação falhe devido a conflitos de bloqueio de arquivo e que o aplicativo se comporte de maneira inesperada porque alguns dos arquivos ainda não foram atualizados.
Por outro lado, quando você executa diretamente de um pacote, os arquivos no pacote não são copiados para o diretório wwwroot. Em vez disso, o próprio pacote ZIP é montado diretamente como o diretório wwwroot somente leitura. Há vários benefícios na execução direta de um pacote:
Observação
No momento, apenas arquivos de pacote ZIP têm suporte.
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ê fizer download de um repositório do GitHub como um arquivo ZIP, não poderá implantar esse arquivo no estado em que se encontra no serviço de aplicativo. O GitHub adiciona diretórios aninhados no nível superior, que não funcionam com o Serviço de Aplicativo.
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 no seu aplicativo Web, como index.html, index.php e app.js. Além disso, é possível conter arquivos de gerenciamento de pacotes como project.json, composer.json, package.json, bower.json e requirements.txt.
A menos que você queira 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 do dotnet
, adicione tudo no diretório de saída do comando dotnet publish
, com exceção do próprio diretório de saída. Por exemplo, o seguinte comando em seu terminal para criar um pacote ZIP do conteúdo do diretório atual:
# Bash
zip -r <file-name>.zip .
# PowerShell
Compress-Archive -Path * -DestinationPath <file-name>.zip
A configuração do aplicativo WEBSITE_RUN_FROM_PACKAGE
habilita a execução por meio de pacote. Para vê-la, execute o seguinte comando com a CLI do Azure.
az webapp config appsettings set --resource-group <group-name> --name <app-name> --settings WEBSITE_RUN_FROM_PACKAGE="1"
WEBSITE_RUN_FROM_PACKAGE="1"
permite executar um aplicativo por meio de um pacote local para seu aplicativo. Você também pode executar por meio de um pacote remoto.
A maneira mais fácil de executar um pacote no Serviço de Aplicativo é com o comando az webapp deploy da CLI do Azure. Por exemplo:
az webapp deploy --resource-group <group-name> --name <app-name> --src-path <filename>.zip
Como a configuração WEBSITE_RUN_FROM_PACKAGE
do aplicativo está definida, o comando não extrai o conteúdo do pacote para o diretório D:\home\site\wwwroot do aplicativo. Em vez disso, ele carrega o arquivo ZIP como está em D:\home\data\SitePackages e cria o arquivo packagename.txt no mesmo diretório, que contém o nome do pacote ZIP a ser carregado no runtime. Se você carregar o pacote ZIP de outra maneira (como FTP), precisará criar manualmente o diretório D:\home\data\SitePackages e o arquivo packagename.txt.
O comando também reinicia o aplicativo. Como WEBSITE_RUN_FROM_PACKAGE
está definido, o Serviço de Aplicativo monta o pacote carregado como o diretório wwwroot somente leitura e executa o aplicativo diretamente no diretório montado.
Você também pode executar um pacote por meio de uma URL externa, como o Armazenamento de Blobs do Azure. Você pode usar o Gerenciador de Armazenamento do Azure para carregar arquivos de pacote para sua conta de armazenamento de Blobs. Você deve usar um contêiner de armazenamento privado com uma SAS (Assinatura de Acesso Compartilhado) ou usar uma identidade gerenciada para permitir que o runtime do Serviço de Aplicativo acesse o pacote com segurança.
Observação
Atualmente, um recurso existente do Serviço de Aplicativo que executa um pacote local não pode ser migrado para execução de um pacote remoto. Você precisará criar um novo recurso do Serviço de Aplicativo configurado para ser executado em uma URL externa.
Depois de carregar o arquivo no armazenamento de blobs e conseguir a URL de SAS, defina a configuração WEBSITE_RUN_FROM_PACKAGE
do aplicativo como a URL. Veja como fazer isso com a CLI do Azure:
az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings WEBSITE_RUN_FROM_PACKAGE="https://myblobstorage.blob.core.windows.net/content/SampleCoreMVCApp.zip?st=2018-02-13T09%3A48%3A00Z&se=2044-06-14T09%3A48%3A00Z&sp=rl&sv=2017-04-17&sr=b&sig=bNrVrEFzRHQB17GFJ7boEanetyJ9DGwBSV8OM3Mdh%2FM%3D"
Se você publicar um pacote atualizado com o mesmo nome no armazenamento de blobs, será necessário reiniciar o aplicativo para que o pacote atualizado seja carregado no Serviço de Aplicativo.
Você pode configurar o Armazenamento de Blobs do Azure para autorizar solicitações com o Microsoft Entra ID. Essa configuração significa que, em vez de gerar uma chave SAS com uma expiração, você pode usar a identidade gerenciada do aplicativo. Por padrão, será usada a identidade do aplicativo atribuída pelo sistema. Se você quiser especificar uma identidade atribuída pelo usuário, defina a configuração de aplicativo WEBSITE_RUN_FROM_PACKAGE_BLOB_MI_RESOURCE_ID
como a ID do recurso dessa identidade. A configuração também pode aceitar SystemAssigned
como um valor, o que equivale a omitir a configuração.
Para permitir que o pacote seja buscado usando a identidade:
Verifique se o blob está configurado para acesso privado.
Conceda à identidade à função Leitor de Dados do Blob do Armazenamento com escopo no blob do pacote. Confira Atribuir uma função do Azure para acesso aos dados do blob para obter detalhes sobre como criar a atribuição de função.
Defina a configuração de aplicativo WEBSITE_RUN_FROM_PACKAGE
como a URL do blob do pacote. Essa URL geralmente é do formulário https://{storage-account-name}.blob.core.windows.net/{container-name}/{path-to-package}
ou semelhante.
Há duas maneiras de implantar arquivos de WebJob ao habilitar a execução de um aplicativo do pacote:
<project-root>\app_data\jobs\...
(que mapeia para o caminho de implantação \site\wwwroot\app_data\jobs\...
conforme especificado no Guia de início rápido do WebJobs).\site\wwwroot\app_data\jobs\...
usual agora é somente leitura, você não pode implantar arquivos de WebJob nele. Em vez disso, implante arquivos de WebJob em \site\jobs\...
, que não é somente leitura. WebJobs implantados em \site\wwwroot\app_data\jobs\...
e \site\jobs\...
são executados.Observação
Quando \site\wwwroot
se torna somente leitura, operações como a criação de disable.job falharão.
wwwroot
somente leitura. Ocorrerá um erro se o aplicativo tentar gravar arquivos nesse diretório.WEBSITE_RUN_FROM_PACKAGE
= 1).Eventos
17 de mar., 21 - 21 de mar., 10
Junte-se à série de encontros para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registrar agoraTreinamento
Roteiro de aprendizagem
Roteiro de aprendizagem "Implantar um site no Azure com o Serviço de Aplicativo do Azure" - Training
Neste roteiro de aprendizagem, familiarize-se com o uso do Serviço de Aplicativo do Azure para criar e implantar seu site sem servidores subjacentes, armazenamento nem ativos de rede.
Certificação
Microsoft Certified: Azure Developer Associate - Certifications
Crie soluções de ponta a ponta no Microsoft Azure para criar Funções do Azure, implementar e gerenciar aplicativos Web, desenvolver soluções utilizando o Armazenamento do Microsoft Azure e muito mais.