ID da região
O REGION_ID
é um código abreviado que a Google atribui com base na região que seleciona quando cria a sua app. O código não corresponde a um país ou uma província, embora alguns IDs de regiões possam parecer semelhantes aos códigos de países e províncias usados frequentemente. Para apps criadas após
fevereiro de 2020, REGION_ID.r
está incluído nos
URLs do App Engine. Para apps existentes criadas antes desta data, o
ID da região é opcional no URL.
Saiba mais acerca dos IDs de regiões.
Este guia descreve como migrar uma app do App Engine existente que se liga a uma instância do Cloud SQL com um IP público.
Em geral, os passos neste guia demonstram como pode implementar o mesmo código fonte da aplicação no Cloud Run e, em seguida, configurá-lo para usar o mesmo utilizador da base de dados do Cloud SQL para ligar a sua instância e base de dados existentes.
Os passos neste guia não incluem como usar uma ligação de IP privado interno, porque isso requer que modifique primeiro o código da sua aplicação. No entanto, depois de implementar a sua app no Cloud Run, pode usar os passos em Estabeleça ligação ao Cloud SQL a partir do Cloud Run para saber os requisitos e como usar IPs privados.
Para compreender melhor as semelhanças e as diferenças entre o App Engine e o Cloud Run, incluindo as vantagens da migração para o Cloud Run, consulte o resumo da comparação.
Antes de começar
Certifique-se de que o Cloud Run cumpre os requisitos da sua aplicação. Reveja a comparação entre o App Engine e o Cloud Run para determinar se os recursos do Cloud Run, como a CPU e a memória, satisfazem as suas necessidades.
Precisa de acesso à sua instância do Cloud SQL, incluindo o nome de utilizador e a palavra-passe da base de dados para ligar a sua app. O Cloud Run usa encriptação e liga-se através do proxy Auth do Cloud SQL usando sockets Unix ou conetores do Cloud SQL.
Ative a API Cloud Run Admin e a API Artifact Registry.
Reveja as seguintes diferenças do Cloud Run:
O Cloud Run usa o termo
Revision
, em vez deVersion
, para representar cada vez que implementa alterações num serviço específico. A implementação da sua app num serviço no Cloud Run pela primeira vez cria a sua primeira revisão. Cada implementação subsequente de um serviço cria outra revisão. Saiba mais sobre a implementação no Cloud Run.Pode implementar o seu código fonte no Cloud Run através da CLI Google Cloud ou da Google Cloud consola para configurar e gerir as definições das suas apps. O Cloud Run não requer configuração baseada em ficheiros. No entanto, a configuração YAML é suportada e pode usar a ferramenta
app2run
para traduzir o seu ficheiro do App Engine existente para o Cloud Run.Todos os serviços que implementar no Cloud Run usam o domínio run.app no URL para aceder ao serviço publicamente.
Ao contrário dos serviços do App Engine que são públicos por predefinição, os serviços do Cloud Run são privados por predefinição e requerem que os configure para acesso público (não autenticado).
O Cloud Run não suporta os serviços agrupados antigos do App Engine.
Este guia pressupõe que a sua aplicação do App Engine é executada sem erros.
Funções necessárias
Pode optar por criar uma nova conta de serviço ou continuar a usar a mesma conta de serviço gerida pelo utilizador no Cloud Run que está a usar para o App Engine. O utilizador ou o administrador tem de conceder à conta de implementação e à conta de serviço do Cloud Build as seguintes funções do IAM.
Clique para ver as funções necessárias para a conta do implementador
Para receber as autorizações necessárias para criar e implementar a partir da origem, peça ao seu administrador para lhe conceder as seguintes funções de IAM:
- Cloud Run Source Developer (
roles/run.sourceDeveloper
) no seu projeto - Consumidor de utilização do serviço (
roles/serviceusage.serviceUsageConsumer
) no seu projeto - Utilizador da conta de serviço (
roles/iam.serviceAccountUser
) na identidade do serviço do Cloud Run
Clique para ver as funções necessárias para a conta de serviço do Cloud Build
O Cloud Build usa automaticamente a
conta de serviço predefinida do Compute Engine como a conta de serviço predefinida do Cloud Build para compilar o seu código-fonte e o
recurso do Cloud Run, a menos que substitua este comportamento. Para que o Cloud Build compile as suas origens, peça ao administrador para conceder a função
Cloud Run Builder
(roles/run.builder
) à conta de serviço predefinida 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 seu Google Cloud
número do projeto e PROJECT_ID
pelo seu Google Cloud
ID do projeto. Para ver instruções detalhadas sobre como encontrar o ID e o número do projeto,
consulte o artigo Criar
e gerir projetos.
A concessão da função de criador do Cloud Run à conta de serviço predefinida do Compute Engine demora alguns minutos a propagar.
Para ver uma lista de funções e autorizações de IAM associadas ao Cloud Run, consulte os artigos Funções de IAM do Cloud Run e Autorizações de IAM do Cloud Run. Se o seu serviço do Cloud Run interage com Google Cloud APIs, como as bibliotecas cliente da Google Cloud, consulte o guia de configuração da identidade do serviço. Para mais informações sobre a atribuição de funções, consulte as autorizações de implementação e faça a gestão do acesso.
Para ligações de IP público ao Cloud SQL, tem de ter uma das seguintes funções:
- Cliente do Cloud SQL (preferencial)
- Administrador do Cloud SQL
- Autorizações do Cloud SQL equivalentes
Migre a sua app para o Cloud Run
Não é necessário fazer alterações ao código para implementar a sua app do App Engine no Cloud Run.
Nos passos seguintes, implementa a sua app num novo serviço no Cloud Run e configura simultaneamente esse serviço para se ligar ao Cloud SQL.
Tal como o ambiente padrão do App Engine, o Cloud Run suporta implementações baseadas na origem. Precisa de acesso ao repositório de código-fonte.
O Cloud Run usa internamente buildpacks e o Cloud Build para criar automaticamente imagens de contentores a partir do seu código-fonte e não requer que crie manualmente um contentor nem especifique um Dockerfile. No entanto, se existir um Dockerfile, este é usado. A implementação de um serviço do Cloud Run a partir da origem usa o Artifact Registry, pelo que esta funcionalidade só está disponível nas regiões suportadas pelo Artifact Registry.
Para implementar o mesmo código fonte que implementou anteriormente no App Engine:
Altere para o diretório de origem onde reside o código-fonte da sua aplicação.
cd YOUR_APPENGINE_CODE_DIR
Implemente no Cloud Run.
Para compilar o código-fonte e implementar a aplicação, execute o comando deploy com a flag
--source
. Tem de definir as flags de configuração para incluir as mesmas variáveis de ambiente de ligação SQL definidas no ficheiroapp.yaml
da sua app do App Engine:gcloud run deploy run-sql --source . \ --allow-unauthenticated \ --add-cloudsql-instances INSTANCE_CONNECTION_NAME\ --set-env-vars INSTANCE_UNIX_SOCKET="/cloudsql/INSTANCE_CONNECTION_NAME" \ --set-env-vars INSTANCE_CONNECTION_NAME="INSTANCE_CONNECTION_NAME" \ --set-env-vars DB_NAME="DB_NAME" \ --set-env-vars DB_USER="DB_USER" \ --set-env-vars DB_PASS="DB_PASS"
Substitua INSTANCE_CONNECTION_NAME pelo nome de ligação da instância do Cloud SQL ou por uma lista de nomes de ligação separados por vírgulas. Pode encontrar o
INSTANCE_CONNECTION_NAME
executando o seguinte comando:gcloud instances describe INSTANCE_NAME
- DB_NAME com o nome da sua base de dados.
- DB_USER com o nome de utilizador da sua base de dados.
- DB_PASS com a palavra-passe do utilizador da base de dados.
Introduza um nome do SERVIÇO quando lhe for pedido.
Responda a todas as instruções para instalar as APIs necessárias respondendo
y
quando lhe for pedido. Só tem de fazer isto uma vez por projeto. Aguarde pela conclusão da compilação e da implementação. Quando terminar, é apresentada uma mensagem semelhante a esta:Service [my-app] revision [my-app-00000-xxx] has been deployed and is serving 100 percent of traffic. Service URL: https://sample.run.app
Para saber como implementar código fonte no Cloud Run, consulte o artigo Implementação a partir do código fonte.
Passos seguintes
- Reveja as práticas recomendadas do Cloud SQL para ligar a sua instância do Cloud SQL a partir do Cloud Run.
- Saiba como armazenar dependências para o seu serviço que requer chaves de API, palavras-passe ou outras informações confidenciais através de um gestor de segredos.
- Compreenda como gerir os seus serviços do Cloud Run.
- Consulte o contrato de tempo de execução de contentores do Cloud Run para compreender os requisitos e os comportamentos dos contentores no Cloud Run.