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 descritos no artigo 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.
Este guia pressupõe que a sua app é executada sem erros.
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.
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).
Migre a sua app para o Cloud Run
A um nível elevado, o processo de migração da sua app do App Engine para o Cloud Run consiste nos seguintes passos:
- Ative as APIs necessárias
- Configure a conta de serviço do Cloud Run
- Implemente a sua app no Cloud Run
Ative as APIs necessárias
Antes de poder implementar a sua app no Cloud Run, tem de ativar as APIs Cloud Run e Artifact Registry.
Use a Google Cloud consola para ativar as APIs:
Configure a conta de serviço do Cloud Run
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. Na conta de serviço, tem de garantir que as seguintes funções de gestão de identidade e de acesso (IAM) ou as autorizações equivalentes estão configuradas:
Para a implementação no Cloud Run, tem de ter um dos seguintes elementos:
- Proprietário
- Editor
- As funções Administrador do Cloud Run e Utilizador da conta de serviço
- Autorizações do Cloud Run equivalentes
Para ligações de IP público ao Cloud SQL, tem de ter uma das seguintes opções:
- Cliente do Cloud SQL (preferencial)
- Administrador do Cloud SQL
- Autorizações do Cloud SQL equivalentes
Implemente a sua app no 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 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"
Substituição:
- SOURCE com o caminho para o diretório de origem do App Engine
- INSTANCE_CONNECTION_NAME com o nome de ligação da instância da sua instância do Cloud SQL ou 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.