O App Hosting processa uma série complexa de tarefas em segundo plano para simplificar a implantação do seu app. Esta página descreve as principais partes desse fluxo de tarefas, fornecendo informações sobre os pontos em que você pode querer personalizar o fluxo dependendo das necessidades do seu app.
Suporte do framework
App Hosting: sem necessidade de configuração, para criação e implantação de apps da Web desenvolvidos nestas estruturas:
- Next.js 13 ou mais recente
- Angular 17.2 ou mais recente
App Hosting identifica qual framework você está usando inspecionando
package-lock.json
ou outro arquivo de bloqueio no repositório. Se você tentar
implantar um app Node.js sem um arquivo de bloqueio, o App Hosting não conseguirá
criar e executar seu app. É possível criar package-lock.json
executando npm
install
no diretório raiz.
Os adaptadores de framework App Hosting têm dois papéis principais:
- Eles analisam seu código-fonte e quaisquer arquivos de configuração específicos do framework (como
next.config.js
) para entender o comportamento configurado do app. - Eles executam o comando de compilação do aplicativo para gerar recursos estáticos e criar uma otimizada do seu app para produção.
Os adaptadores de framework criam seu app Node.js com npm run build
, funcionando melhor
com os scripts de build padrão para cada framework: next build
para Next.js e
ng build
para Angular. App Hosting vai tentar criar builds personalizados
comandos, mas não pode garantir o sucesso de maneira confiável.
Como funciona a integração de repositórios do App Hosting
A conexão importante entre seu repositório do GitHub e o App Hosting é processado por Developer Connect, Plataforma de conectividade do Google Cloud ferramentas externas de DevOps. Durante a criação de um back-end App Hosting, O fluxo de trabalho da interface do Developer Connect orienta você durante a instalação do App do Firebase no GitHub. As principais etapas desse processo são:
- Você concede ao Developer Connect o Administrador do Secret Manager de rede. Isso permite que o sistema armazene credenciais com segurança como "segredos" no Cloud Secret Manager
- você autoriza o app do Firebase no GitHub a acessar seu GitHub repositório.
- O Developer Connect armazena um token de autorização dedicado do GitHub em seu repositório do Secret Manager do projeto; não modifique nem exclua esse token.
Além disso, o App Hosting se integra à API de verificações do GitHub para oferecer uma para verificar se há lançamentos. Essa verificação permite que você veja o status do lançamento em GitHub e depurar o processo de implantação em caso de erros.
Integração com o Firebase e outros serviços do Google
O App Hosting configura os ambientes de build e de execução para que você possa: inicializar o SDK Admin do Firebase com o Google Application Default Credentials. Dessa forma, o back-end pode se comunicar com outros produtos do Firebase durante a criação e a implantação.
A conta de serviço de back-end App Hosting
Durante a criação e no ambiente de execução, seu back-end App Hosting se autentica com outros Serviços do Google a uma conta de serviço. Uma conta de serviço padrão para essas finalidades são criadas na primeira vez que você ativa App Hosting em uma Projeto do Firebase:
firebase-app-hosting-compute@PROJECT ID.iam.gserviceaccount.com
Esta conta de serviço se aplica a todos os back-ends por padrão e tem um conjunto mínimo de para criar, executar e monitorar seu app. Ele também tem permissão para autenticar o SDK Admin com o Application Default Credentials, por realizar operações, como carregar dados de Cloud Firestore. Consulte Papéis do App Hosting do Firebase.
Caso seu app precise interagir com serviços adicionais do Google durante a criação
ou de um back-end em execução, é possível personalizar a conta de serviço
a adição de papéis. Por exemplo, se o app exigir permissões para a Vertex AI:
pode precisar adicionar
roles/aiplatform.user
ou alguma função relacionada.
Principais termos e definições
- Back-end: a coleção de recursos gerenciados que App Hosting cria para criar e executar seu app da Web.
- Lançamento: uma versão específica do seu app ativo, vinculada a uma confirmação do git.
- Ramificação ativa: a ramificação do repositório do GitHub que é implantada em seu URL ativo. Muitas vezes, é a ramificação em que as ramificações ou as ramificações de desenvolvimento são mescladas.
Limitações e problemas conhecidos
A visualização App Hosting tem algumas limitações conhecidas:
- A otimização de imagens ainda não está disponível.
- Em alguns casos, um back-end App Hosting pode retornar
Intermittent connection error
mensagens no URL do seu app. Uma correção vai serão disponibilizadas em uma próxima versão. - Os cabeçalhos de controle de cache são modificados para limitar os caches de CDN a 60 segundos. no no futuro, quando o App Hosting puder limpar rapidamente o cache em implantar, esse limite será suspenso.
- Os cabeçalhos Set-Cookie são removidos das respostas veiculadas por meio do Plano de dados App Hosting. Uma correção será disponibilizada em uma versão posterior.
- Arquivos estáticos sem cache são exibidos fora de Cloud Run. em um depois da versão, eles serão armazenados e veiculados pela origem App Hosting para melhorar o desempenho.
- As SKUs do App Hosting não podem ser exibidas na página de uso de back-end na Console do Firebase. Eles estarão disponíveis em uma próxima versão.
- O console Firebase pode mostrar intermitentemente a mensagem "O build não foi encontrado e é inválido" na criação do back-end.
- Atualmente, todos os back-ends no mesmo projeto compartilham uma organização/conta do GitHub. Eles podem ser conectados a diferentes repositórios nessa organização/conta. Para criar back-ends conectados a diferentes contas do GitHub, e colocá-los em projetos separados.
- No momento, só há suporte para a região
us-central1
. - O middleware, as substituições e os redirecionamentos do Next.js são executados Cloud Run, atrás da CDN. Como eles não protegem de resposta, defina diretivas de controle apropriadas para o conteúdo renderizado.