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 migrar um aplicativo do App Engine que se conecta a uma instância do Cloud SQL com um IP público.
Em geral, as etapas deste guia demonstram como implantar o mesmo código-fonte do aplicativo no Cloud Run e, em seguida, configurá-lo para usar o mesmo usuário do banco de dados do Cloud SQL para conectar a instância e o banco de dados existentes.
As etapas deste guia não incluem como usar uma conexão de IP particular interna, porque isso exige que você primeiro modifique o código do aplicativo. No entanto, depois de implantar o app no Cloud Run, é possível usar as etapas em Conectar-se ao Cloud SQL pelo Cloud Run para saber os requisitos e como usar os IPs Privados.
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.
Antes de começar
- Verifique se o Cloud Run atende aos requisitos do seu aplicativo. Analise a comparação do App Engine e do Cloud Run para determinar se os recursos do Cloud Run, como CPU e memória, atendem às suas necessidades.
Este guia pressupõe que seu app seja executado sem erros.
É preciso ter acesso à instância do Cloud SQL, incluindo o nome de usuário e a senha do banco de dados para conectar o app. O Cloud Run usa criptografia e se conecta por meio do proxy do Cloud SQL Auth usando: Soquetes Unix ou conectores do Cloud SQL.
Analise as seguintes diferenças do Cloud Run:
O Cloud Run usa o termo
Revision
em vez deVersion
para 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 Google Cloud CLI ou o console do Google Cloud para definir e gerenciar as configurações dos apps. O Cloud Run não requer configuração baseada em arquivo. No entanto, Configuração do YAML tem suporte, e você pode usar a
app2run
ferramenta para converter o arquivo existente do App Engine no Cloud Run.Cada serviço implantado no Cloud Run usa o domínio run.app 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).
Migrar seu app para o Cloud Run
Em um nível alto, o processo de migração do aplicativo do App Engine para o Cloud Run consiste nas seguintes etapas:
Ative as APIs necessárias
Antes de implantar o app no Cloud Run, é necessário ativar as APIs Cloud Run e Artifact Registry.
Use o console do Google Cloud para ativar as APIs:
Configurar a conta de serviço do Cloud Run
É possível criar uma nova conta de serviço ou continuar usando a mesma conta de serviço gerenciada pelo usuário no Cloud Run que você está usando para o App Engine. Na conta de serviço, verifique se os seguintes papéis do Identity and Access Management (IAM) ou as permissões equivalentes estão configurados:
Para implantar no Cloud Run, você precisa ter um dos seguintes requisitos:
- Proprietário
- Editor
- Os papéis Administrador do Cloud Run e Usuário da conta de serviço.
- Permissões equivalentes do Cloud Run
Para conexões de IP público com o Cloud SQL, é preciso ter um dos seguintes:
- Cliente do Cloud SQL (preferencial)
- Administrador do Cloud SQL
- Permissões do Cloud SQL equivalentes
Implantar o app no Cloud Run
Não é necessário fazer alterações no código para implantar o aplicativo do App Engine no Cloud Run.
Nas etapas a seguir, você implantará seu aplicativo em um novo serviço no Cloud Run e configurará simultaneamente esse serviço para se conectar ao Cloud SQL.
Assim como o ambiente padrão do App Engine, o Cloud Run é compatível com implantações baseadas na origem. Você precisa acessar seu repositório de código-fonte.
O Cloud Run usa internamente os buildpacks e o Cloud Build para criar automaticamente imagens de contêiner do seu código-fonte, sem a necessidade de criar manualmente um contêiner ou especificar um Dockerfile. No entanto, se um Dockerfile estiver presente, ele será usado.
A implantação de um serviço do Cloud Run a partir da origem usa o Artifact Registry. Portanto, esse recurso só está disponível em regiões compatíveis com o Artifact Registry.
Para implantar o mesmo código-fonte implantado anteriormente no App Engine, faça o seguinte:
Mude para o diretório de origem do código-fonte do seu aplicativo.
cd YOUR_APPENGINE_CODE_DIR
Implantar no Cloud Run
Para criar o código-fonte e implantar o aplicativo, execute o comando de implantação com a sinalização
--source
. Defina as sinalizações de configuração para incluir as mesmas variáveis de ambiente de conexão SQL definidas no arquivoapp.yaml
do aplicativo 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"
Substitua:
- SOURCE pelo caminho para o diretório de origem do App Engine.
- INSTANCE_CONNECTION_NAME pelo nome da conexão da instância do
Cloud SQL ou uma lista de
nomes de conexões separados por vírgulas.
Para encontrar
o
INSTANCE_CONNECTION_NAME
, execute:
gcloud instances describe INSTANCE_NAME
- DB_NAME pelo nome do banco de dados.
- DB_USER pelo nome de usuário do banco de dados.
- DB_PASS pela senha do usuário do banco de dados.
Quando solicitado, insira um nome para o SERVICE.
Responda a todas as solicitações para instalar as APIs necessárias respondendo ao
y
quando solicitado. Você só precisa fazer isso uma vez para um projeto. Aguarde a conclusão da criação e da implantação. Quando terminar, uma mensagem semelhante a esta será exibida: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 mais sobre como implantar código-fonte no Cloud Run, consulte Como implantar a partir do código-fonte.
Próximas etapas
- Consulte as práticas recomendadas do Cloud SQL para conectar sua instância do Cloud SQL ao 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.
- 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.