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 atuais no ambiente flexível no Cloud Run.
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 ambiente flexível do App Engine e o Cloud Run são plataformas de aplicativos totalmente gerenciadas e nativas de contêineres, mas diferem estruturalmente. 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, 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 a incompatibilidade do 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 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 flexível. 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
Para implantar o serviço do Cloud Run usando o arquivo app.yaml local de uma configuração atual do App Engine, siga estas etapas:
No terminal, mude para o diretório de origem em que o arquivo
app.yamlexiste.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 o 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, 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
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 a seguinte configuração não aceita:
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 ouvir as solicitações ou usar sondagens de inicialização. Também é possível configurar instâncias mínimas para manter as instâncias aquecidas.
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.