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.
Este guia descreve como implantar seus apps no ambiente padrão no Cloud Run. As instruções são aplicáveis a ambientes de execução de segunda geração que não usam os serviços incluídos legados do App Engine.
As etapas descritas neste guia não afetam a funcionalidade ou o fluxo de tráfego do 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 Cloud Run usa grande parte da mesma infraestrutura do ambiente padrão do App Engine, resultando em muitas semelhanças entre as plataformas. Para saber mais sobre 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, escolha uma das seguintes estratégias:
Usar a configuração local de um arquivo
app.yaml(recomendado): escolha essa opção para criar uma imagem de contêiner diretamente do código-fonte local e implantá-la no Cloud Run. Isso garante que todas as modificações locais recentes no código ou na configuração sejam incluídas na nova implantação.Usar uma imagem criada anteriormente: essa opção é útil se você não tiver acesso ao código-fonte. Escolha essa opção para implantar uma cópia exata de uma versão que já está em execução no App Engine, sem recriar a imagem do contêiner. Isso é útil se você quiser verificar o comportamento da implantação ativa sem alterações de código.
Antes de começar
Verifique se o aplicativo do App Engine é executado sem erros. Você precisa de acesso ao código-fonte do App Engine se escolher implantar usando a configuração local.
Ative a API Cloud Run Admin e a API Artifact Registry:
Configure seu projeto e 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 Google Cloud ID do projeto.
- 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-runAnalise os resultados da verificação de compatibilidade e faça as alterações 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 ou Google Cloud console para definir e gerenciar as configurações do app. O Cloud Run não requer configuração baseada em arquivo; no entanto, a configuração YAML é aceita.
Cada serviço implantado no Cloud Run usa o
run.appdomínio no 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 padrão. Você ou seu administrador precisa conceder à conta do implantador e à conta de serviço do Cloud Build as seguintes funções do IAM.
Clique para conferir os papéis necessários para a conta do implantador
Para receber as permissões necessárias para criar e implantar a partir da origem, peça ao administrador para conceder a você as seguintes funções do IAM roles:
- Desenvolvedor de origem do Cloud Run (
roles/run.sourceDeveloper) no seu projeto - Consumidor do Service Usage (
roles/serviceusage.serviceUsageConsumer) no seu projeto - Usuário da conta de serviço (
roles/iam.serviceAccountUser) na identidade do 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 criador do Cloud Run
(roles/run.builder) à conta de serviço padrão do Compute Engine
no seu projeto:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/run.builder
Substitua PROJECT_NUMBER por seu Google Cloud
número do projeto e PROJECT_ID por seu Google Cloud
ID do projeto. 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 Google Cloud APIs, 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
Implante a configuração local do App Engine no Cloud Run usando
o Google Cloud console ou a CLI gcloud.
Console
No Google Cloud console, acesse a página do App Engine.
No menu de navegação, clique em Central de migração para implantar o app do App Engine no Cloud Run. A Central de migração também permite verificar a economia estimada no Cloud Run para estimativa de custos e recomendações.
Selecione o serviço que você quer migrar e clique em Verificar compatibilidade.
Selecione o Serviço e a Versão para conferir os resultados de compatibilidade. A central de migração executa um verificador de compatibilidade para identificar recursos incompatíveis.
Analise os resultados para verificar se o app é totalmente compatível com o Cloud Run e clique em Continuar para acessar a seção Analisar e implantar.
Copie o comando na seção Implantar usando a gcloud e execute-o no diretório do projeto.
Clique em Conferir versões implantadas para ver os serviços do App Engine implantados no Cloud Run.
gcloud
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?, insiraYpara criar uma imagem de contêiner do código-fonte e implantar o serviço no Cloud Run.
- Quando solicitado
Acesse o serviço do Cloud Run implantado abrindo o URL de serviço em um navegador da Web.
Opcional:
Se o arquivo
app.yamlestiver em um diretório diferente, especifique o caminho usando a flag--appyaml:gcloud beta app migrate-to-run --appyaml=PATHSubstitua PATH pelo caminho do arquivo
app.yaml.Para gerar e exportar a configuração
service.yamldo Cloud Run sem implantar o serviço, use a flag--export-only:gcloud beta app migrate-to-run --export-only=EXPORT_PATHSubstitua EXPORT_PATH pelo diretório ou caminho em que você quer salvar o
service.yamlarquivo.
Usar uma imagem criada anteriormente
Para implantar usando uma imagem de contêiner criada anteriormente de uma versão implantada do App Engine em vez de recriar a imagem do contêiner de um arquivo app.yaml local, siga estas etapas:
Não é necessário o código-fonte do aplicativo para essa implantação.
Execute o comando a seguir para implantar o serviço no Cloud Run. Esse comando usa a imagem de contêiner de uma implantação ativa do App Engine e não captura mudanças recentes do arquivo
app.yamllocal, o que pode resultar em uma implantação desatualizada:gcloud beta app migrate-to-run --service=SERVICE --version=VERSION --from-imageSubstitua:
- SERVICE: o nome do serviço do App Engine.
- VERSION: o ID da versão do serviço.
Esse comando busca a configuração do serviço e da versão especificados para gerar o arquivo
service.yamlpara o Cloud Run. Para mais informações, consultegcloud beta app migrate-to-run.- Quando solicitado com
Proceed with the deployment?, insiraYpara exportar a imagem de contêiner do App Engine e implantar o serviço no Cloud Run.
Acesse o serviço do Cloud Run implantado abrindo o URL de serviço em um navegador da Web.
Opcional:
Para gerar a configuração
service.yamldo Cloud Run sem implantar o serviço, execute o seguinte comando:gcloud beta app migrate-to-run --service=SERVICE \ --version=VERSION \ --from-image \ --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 falha se o arquivoapp.yaml contiver alguma das seguintes configurações não aceitas:
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 veicular o tráfego, configure o serviço para executá-lo na inicialização, antes de detectar solicitações ou usar sondagens de inicialização. Também é possível configurar instâncias mínimas para manter as instâncias aquecidas.
Páginas de erro personalizadas:
error_handlers: - file: default_error.html - error_code: over_quota file: over_quota.htmlSolução: exclua a seção
error_handlersdo arquivoapp.yaml, e siga uma ou ambas as estratégias a seguir:- Implemente o tratamento de erros diretamente no código do aplicativo. Capture códigos de erro HTTP padrão, como
404ou500, e veicule suas páginas de erro HTML personalizadas na lógica do aplicativo. - Se você estiver usando o Cloud Load Balancing com o Cloud Run, configure respostas de erro personalizadas no nível do balanceador de carga. Isso permite veicular páginas de erro personalizadas do Cloud Storage com base no código de resposta do serviço do Cloud Run.
- Implemente o tratamento de erros diretamente no código do aplicativo. Capture códigos de erro HTTP padrão, como
Serviços incluídos para ambientes de execução de segunda geração:
app_engine_apis: trueSolução: exclua a configuração
app_engine_apisdo arquivoapp.yamle migre para Google Cloud APIs ou alternativas de terceiros. Para mais informações, consulte Migrar de serviços incluídos.Ambientes de execução de primeira geração:
runtime: python27Solução: faça upgrade do aplicativo para um ambiente de execução de segunda geração compatível. Para mais informações, consulte a Visão geral da migração para ambientes de execução de segunda geração.
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 confidenciais usando um gerenciador de secrets.