ID da região
O REGION_ID é um código abreviado que o Google atribui
com base na região que você selecionou ao criar o aplicativo. O código não
corresponde a um país ou estado, ainda que alguns IDs de região sejam semelhantes
aos códigos de país e estado geralmente usados. Para apps criados após
fevereiro de 2020, o REGION_ID.r está incluído nos
URLs do App Engine. Para apps existentes criados antes dessa data, o
ID da região é opcional no URL.
Saiba mais sobre IDs de região.
Neste guia, descrevemos como implantar seus apps atuais no ambiente flexível para o Cloud Run.
As etapas descritas neste guia não afetam a funcionalidade ou o fluxo de tráfego do seu app do App Engine. O serviço do Cloud Run recém-criado é uma réplica do serviço do App Engine que pode ser testada de forma independente.
O ambiente flexível do App Engine e o Cloud Run são plataformas de aplicativos totalmente gerenciadas e nativas de contêiner, mas são estruturalmente diferentes. Para entender as semelhanças e diferenças entre o App Engine e o Cloud Run, incluindo os benefícios da migração para o Cloud Run, consulte o resumo de comparação. Para implantar no Cloud Run, use a configuração local do arquivoapp.yaml. Isso cria uma imagem de contêiner com base no código-fonte local. Assim, todas as alterações recentes no código ou na configuração são incluídas na nova implantação.
Antes de começar
Verifique se o aplicativo do App Engine é executado sem erros. Você precisará de acesso ao código-fonte do App Engine se optar por implantar usando sua configuração local.
Ative a API Cloud Run Admin e a API Artifact Registry:
Configure o projeto e a região usando o seguinte comando:
gcloud auth login gcloud config set project PROJECT_ID gcloud config set run/region REGION gcloud components updateSubstitua:
- PROJECT_ID: o ID do projeto Google Cloud .
- REGION: a região em que você quer implantar o serviço do Cloud Run.
Verifique se há recursos incompatíveis no aplicativo e remova-os antes de migrar para o Cloud Run. Para verificar se há incompatibilidade no aplicativo sem realizar uma migração ou implantação, execute o seguinte comando:
gcloud beta app migrate-to-run --dry-runRevise os resultados da verificação de compatibilidade e faça as mudanças recomendadas, se necessário.
Analise as seguintes diferenças do Cloud Run:
O Cloud Run usa o termo
Revisionem vez deVersionpara representar cada vez que você implanta alterações em um serviço específico. Implantar o app em um serviço no Cloud Run pela primeira vez cria a primeira revisão. Cada implantação subsequente de um serviço cria outra revisão. Saiba mais sobre como implantar no Cloud Run.É possível implantar o código-fonte no Cloud Run usando a CLI gcloud para definir e gerenciar as configurações do app. O Cloud Run não requer configuração baseada em arquivo. No entanto, Configuração do YAML tem suporte.
Cada serviço implantado no Cloud Run usa o domínio
run.appno URL para acessar o serviço publicamente.Ao contrário dos serviços do App Engine que são públicos por padrão, os serviços do Cloud Run são particulares por padrão e exigem que você os configure para acesso público (não autenticado).
Funções exigidas
É possível criar uma nova conta de serviço ou usar a mesma conta de serviço gerenciado pelo usuário no Cloud Run que você está usando para o ambiente flexível. Você ou seu administrador precisa conceder à conta de implantador e à conta de serviço do Cloud Build os seguintes papéis do IAM.
Clique para conferir os papéis necessários para a conta de implantador
Para receber as permissões necessárias para criar e implantar a partir da origem, peça ao administrador para conceder a você os seguintes papéis do IAM:
- Desenvolvedor de origem do Cloud Run (
roles/run.sourceDeveloper) no projeto - Consumidor do Service Usage (
roles/serviceusage.serviceUsageConsumer) no seu projeto - Usuário da conta de serviço (
roles/iam.serviceAccountUser) na identidade de serviço do Cloud Run
Clique para conferir os papéis necessários para a conta de serviço do Cloud Build
O Cloud Build usa automaticamente a
conta de serviço padrão do Compute Engine
como a conta de serviço padrão do Cloud Build para criar o código-fonte e o
recurso do Cloud Run, a menos que você substitua esse comportamento. Para que o Cloud Build crie suas origens, peça ao administrador para conceder o papel de Criador do Cloud Run (roles/run.builder) à conta de serviço padrão do Compute Engine no projeto:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/run.builder
Substitua PROJECT_NUMBER pelo número do projeto do Google Cloude PROJECT_ID pelo ID do projeto do Google Cloud. Para instruções detalhadas sobre como encontrar o ID do projeto e o número do projeto,
consulte Criar
e gerenciar projetos.
A concessão do papel de criador do Cloud Run à conta de serviço padrão do Compute Engine leva alguns minutos para se propagar.
Para uma lista de papéis e permissões do IAM associados ao Cloud Run, consulte Papéis do IAM do Cloud Run e Permissões do IAM do Cloud Run. Se o serviço do Cloud Run interage com as APIs doGoogle Cloud , como as bibliotecas de cliente do Cloud, consulte o guia de configuração de identidade de serviço. Para mais informações sobre como conceder papéis, consulte permissões de implantação e gerenciar acesso.
Usar a configuração local de um arquivo app.yaml
Para implantar o serviço do Cloud Run usando o arquivo app.yaml local de uma
configuração do App Engine, siga estas etapas:
No terminal, mude para o diretório de origem em que o arquivo
app.yamlestá.Execute o comando a seguir para implantar o serviço no Cloud Run:
gcloud beta app migrate-to-runEsse comando gera a configuração do arquivo
service.yamlpara o Cloud Run e a salva localmente no mesmo diretório do arquivoapp.yaml. Para mais informações, consultegcloud beta app migrate-to-run.- Quando solicitado
Proceed with the deployment?, digiteYpara criar uma imagem do contêiner com base no código-fonte e implantar o serviço no Cloud Run.
- Quando solicitado
Acesse o serviço do Cloud Run implantado abrindo o URL dele em um navegador da Web.
Opcional:
Se o arquivo
app.yamlestiver em um diretório diferente, especifique o caminho dele usando a flag--appyaml:gcloud beta app migrate-to-run --appyaml=PATHSubstitua PATH pelo caminho do seu arquivo
app.yaml.Para gerar e exportar a configuração
service.yamldo Cloud Run sem implantar o serviço, execute o seguinte comando:gcloud beta app migrate-to-run --export-only=EXPORT_PATHSubstitua EXPORT_PATH pelo diretório ou caminho em que você quer salvar o arquivo
service.yaml.
Recursos incompatíveis
O comando de migração vai falhar se o arquivoapp.yaml tiver a
seguinte configuração incompatível:
Serviços de entrada:
inbound_services: - warmupSolução: exclua a seção
inbound_servicesdo arquivoapp.yaml. O Cloud Run aquece as instâncias usando o ponto de entrada do contêiner, portanto, não é necessário configurar solicitações de aquecimento. Se você precisar executar o código de inicialização antes de exibir o tráfego, configure o serviço para executá-lo na inicialização, antes de detectar solicitações, ou use sondagens de inicialização. Também é possível configurar instâncias mínimas para manter as instâncias ativas.
A seguir
- Saiba como gerenciar os serviços do Cloud Run.
- Consulte o contrato de ambiente de execução de contêineres do Cloud Run para entender os requisitos e comportamentos dos contêineres no Cloud Run.
- Saiba como armazenar dependências para seu serviço que exige chaves de API, senhas ou outras informações sensíveis usando um Secret Manager.