Entender a hospedagem de apps e como ela funciona

O App Hosting lida com 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

O App Hosting oferece suporte para criação e implantação de apps da Web sem necessidade de configuração desenvolvidos nestas estruturas:

  • Next.js 13 ou mais recente
  • Angular 17.2 ou mais recente

O App Hosting identifica qual framework você está usando inspecionando package-lock.json ou outro arquivo de bloqueio no seu repositório. Se você tentar implantar um app Node.js sem um arquivo de bloqueio, a Hospedagem de apps 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 do App Hosting têm dois papéis principais:

  1. 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.
  2. 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. O App Hosting vai tentar builds com um build personalizado 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 do 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:

  1. 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
  2. você autoriza o app do Firebase no GitHub a acessar seu GitHub repositório.
  3. 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 criação e ambiente de execução para que você possa inicializar o SDK Admin do Firebase com o Google Application Default Credentials. Assim, 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 do App Hosting

Durante a criação e no ambiente de execução, seu back-end do App Hosting é autenticado 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 a hospedagem de aplicativos em um 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 como o carregamento de dados do Cloud Firestore. Consulte Papéis do Firebase App Hosting

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: o conjunto de recursos gerenciados que o 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 do App Hosting tem algumas limitações conhecidas:

  • A otimização de imagens ainda não está disponível.
  • Em alguns casos, um back-end de hospedagem de apps 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 tiver a capacidade de limpar rapidamente o cache implantar, esse limite será suspenso.
  • Os cabeçalhos Set-Cookie são removidos das respostas veiculadas por meio do Plano de dados do App Hosting. Uma correção será disponibilizada em uma versão posterior.
  • Arquivos estáticos sem cache são disponibilizados pelo Cloud Run. em um de lançamento, eles serão armazenados e disponibilizados pela origem do 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 do 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.