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 no ambiente padrão no Cloud Run usando a Google Cloud CLI. As instruções são válidas para ambientes de execução de segunda geração que não usam os serviços incluídos legados do App Engine.
O Cloud Run usa grande parte da mesma infraestrutura do ambiente padrão do App Engine, o que resulta 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 da comparação.
Para implantar no Cloud Run usando o comando gcloud beta app migrate,
escolha uma das seguintes estratégias:
Use o arquivo
app.yamlpara implantar um serviço no Cloud Run usando sua configuração atual do App Engine.Implante um aplicativo do App Engine diretamente no Cloud Run.
Antes de começar
Verifique se você tem acesso ao código-fonte do App Engine e se o aplicativo do App Engine é executado sem erros.
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 com o ID do seu projeto Google Cloud .
- REGION pela região.
Revise os recursos incompatíveis no aplicativo e remova-os antes de migrar para o Cloud Run. Se houver recursos incompatíveis no aplicativo atual, o processo de migração será interrompido e listará as incompatibilidades.
Analise as seguintes diferenças do Cloud Run:
O Cloud Run usa o termo
Revisionem vez deVersionpara representar cada vez que você implanta mudanças 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 o console Google Cloud para configurar e gerenciar as configurações do app. O Cloud Run não requer configuração baseada em arquivo. No entanto, a configuração YAML é compatível.
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 App Engine. Você ou seu administrador precisa conceder à conta do 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 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ê os seguintes papéis do IAM:
- 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 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 seu 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
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 pelo número do projeto do Google Cloud
e PROJECT_ID pelo ID do projeto do Google Cloud. Para instruções detalhadas sobre como encontrar o ID e o número do projeto,
consulte Criar
e gerenciar projetos.
A concessão do papel de builder 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 APIsGoogle 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 o arquivo app.yaml
Traduza o arquivo app.yaml do App Engine para um serviço do Cloud Run executando o seguinte comando:
gcloud beta app migrate-to-run --appyaml=PATH --entrypoint=ENTRYPOINT
Substitua:
- PATH com o caminho para o arquivo
app.yaml. - ENTRYPOINT com o comando de ponto de entrada do seu aplicativo.
Se você estiver no diretório do projeto, os argumentos PATH e ENTRYPOINT serão opcionais.
Para mais informações sobre os argumentos que podem ser usados com o comando gcloud beta app migrate-to-run,
consulte gcloud beta app migrate-to-run.
Implantar um aplicativo do App Engine
Implante um app do App Engine diretamente no Cloud Run executando o comando a seguir:
gcloud beta app migrate-to-run --service=SERVICE --version=VERSION --entrypoint=ENTRYPOINT
Esse comando pede que você especifique o caminho relativo para o diretório do código-fonte.
Substitua:
- SERVICE com o nome do seu serviço do App Engine.
- VERSION com o ID da versão do seu serviço.
- ENTRYPOINT com o comando de ponto de entrada do seu aplicativo. Se você estiver no diretório do projeto, esse argumento será opcional.
Para mais informações sobre os argumentos que podem ser usados com o comando gcloud beta app migrate,
consulte gcloud beta app migrate-to-run.
Recursos incompatíveis
O comando de migração falha se o arquivo app.yaml tiver alguma das seguintes configurações não compatíveis:
Serviços de entrada:
inbound_services: - warmupPáginas de erro personalizadas:
error_handlers: - file: default_error.html - error_code: over_quota file: over_quota.htmlServiços agrupados para ambientes de execução de segunda geração:
app_engine_apis: trueVariáveis de ambiente de build:
build_env_variables: Foo: BarAmbientes de execução de primeira geração:
runtime: python27
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 o Secret Manager.