Implantar vários ambientes usando uma base de código

É comum ter vários ambientes implantados na mesma base de código, cada um com configurações ligeiramente diferentes. Por exemplo, convém atribuir menos CPU e RAM ao seu ambiente de preparo ou garantir que o ambiente de produção mantenha pelo menos uma instância ativa e pronta para atender solicitações.

Para saber mais sobre ambientes, consulte a Visão geral de ambientes e as Práticas recomendadas gerais para configurar projetos do Firebase.

Pré-requisitos

Etapa 0: configurar a ramificação do git de produção

Se você preferir implantar o ambiente de produção da ramificação main, pule para a próxima etapa. Se você quiser implantar a produção de outra ramificação, como production, é preciso criá-lo primeiro no GitHub.

Para criar o branch de produção com a IU do GitHub, consulte Como criar e excluir ramificações no repositório.

Para criar a ramificação de produção localmente:

$ git checkout -b production
$ git push origin production:production

Etapa 1: configurar o apphosting.yaml de produção

Digamos que você queira garantir que sua produção sempre mantenha pelo menos uma máquina em execução e tenha algumas variáveis de ambiente específicas de produção. Você pode configurar isso criando um arquivo apphosting.yaml na raiz do projeto com algo semelhante ao seguinte:

# Saved at <repository root>/apphosting.yaml

runConfig:
  minInstances: 1

env:
  - variable: STORAGE_BUCKET
    value: <production Cloud Storage bucket name>

Para conferir uma lista completa das configurações compatíveis, consulte Configurar o App Hosting.

Depois de editar apphosting.yaml, envie-o para o repositório do GitHub:

$ git add apphosting.yaml
$ git commit -m "Added production App Hosting backend configuration."
$ git push origin

Etapa 2: implantar a base de código na produção

Depois que a ramificação do Git de produção estiver configurada, será possível criar o novo back-end do App Hosting de produção. Para instruções detalhadas, consulte Introdução ao App Hosting.

Para criar um novo back-end com o Console do Firebase, acesse https://console.firebase.google.com/project/_/apphosting para começar.

Para criá-la localmente, você precisa primeiro ter a Firebase CLI instalada e, em seguida, executar:

firebase apphosting:backends:create --project <replace with your PRODUCTION project ID>

Quando esse comando for bem-sucedido, seu back-end de produção deverá ser ativado e todas as novas confirmações na ramificação de produção serão automaticamente criadas e implantadas pela Hospedagem de apps.

Etapa 3: configurar a ramificação do git de teste

Siga as mesmas etapas acima para criar sua ramificação de teste no GitHub:

$ git checkout -b staging
$ git push origin staging:staging

Etapa 4: configurar o apphosting.yaml de preparo

É necessário que a ramificação de teste já tenha uma cópia do apphosting.yaml de produção. Vamos modificá-lo para que o App Hosting possa desativar seu ambiente de preparo quando ele não estiver sendo usado ativamente e também definir um valor diferente para a variável de ambiente STORAGE_BUCKET.

# Saved at <repository root>/apphosting.yaml

runConfig:
  minInstances: 0

env:
  - variable: STORAGE_BUCKET
    value: <some other staging Cloud Storage bucket name>

Depois de concluir as edições, envie o arquivo para o branch do git de teste:

$ git add apphosting.yaml
$ git commit -m "Added staging App Hosting backend configuration."
$ git push origin

Etapa 5: implantar a base de código no preparo

Depois que a ramificação do git de preparo estiver configurada, siga as mesmas etapas acima para implantar a base de código no preparo:

firebase apphosting:backends:create --project <replace with your STAGING project ID>

Após concluir esta etapa, você terá dois back-ends do App Hosting com a mesma base de código, um para produção e outro para preparo, cada um em um projeto diferente do Firebase.

Próximas etapas