Conectar a partir do Cloud Run
Este guia de início rápido orienta você no processo de implantação de um aplicativo de amostra em um serviço do Cloud Run usando o Google Cloud console e um aplicativo cliente. Esse aplicativo de amostra conecta o Cloud Run ao AlloyDB para PostgreSQL.
Código do aplicativo de amostra
O código do aplicativo de amostra para este guia de início rápido está localizado no examples/go
diretório do GoogleCloudPlatform/alloydb-auth-proxy
repositório do GitHub.
O aplicativo é escrito na linguagem de programação Go e serve como uma ferramenta para coletar votos. A lógica principal está contida no arquivo main.go, que inicia um servidor da Web e processa solicitações do usuário.
A conexão do banco de dados é configurada usando variáveis de ambiente, que você configura ao criar o serviço do Cloud Run. Essas variáveis informam ao aplicativo como se conectar à instância do AlloyDB, incluindo o nome do banco de dados, o usuário, a senha e o endereço IP da instância. O código usa essas variáveis para estabelecer uma conexão segura com o banco de dados do AlloyDB.
Repositório de código
O repositório alloydb-auth-proxy contém o proxy de autenticação do AlloyDB,
uma ferramenta que ajuda você a se conectar com segurança às instâncias do AlloyDB.
O repositório também inclui bibliotecas e exemplos relacionados, como o aplicativo Go usado neste guia de início rápido.
Não é necessário o projeto alloydb-auth-proxy inteiro para se conectar ao AlloyDB do Cloud Run. O comando cloudshell_open clona o repositório inteiro para sua conveniência, mas os únicos arquivos usados para criar o contêiner para este guia de início rápido estão localizados no diretório examples/go.
Antes de começar
- Faça login na sua Google Cloud conta do. Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine, Cloud Run, AlloyDB, Cloud Resource Manager, Service Networking, Cloud Build, and Container Registry APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine, Cloud Run, AlloyDB, Cloud Resource Manager, Service Networking, Cloud Build, and Container Registry APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.- Verifique se você tem um cluster do AlloyDB e uma instância principal. Para mais informações, consulte Criar um cluster e a instância principal dele.
Funções exigidas
Para receber as permissões necessárias para se conectar ao Cloud Run, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
-
Administrador de rede do Compute (
roles/compute.networkAdmin) -
Administrador do AlloyDB (
roles/alloydb.admin) -
Administrador do Artifact Registry (
roles/artifactregistry.admin) -
Administrador do Cloud Run (
roles/run.admin) -
Administrador de armazenamento (
roles/storage.admin) -
Editor do Cloud Build (
roles/cloudbuild.builds.editor) -
Administrador do Container Analysis (
roles/containeranalysis.admin) -
Criador do token da conta de serviço (
roles/iam.serviceAccountTokenCreator) -
Gravador de métricas do Monitoring (
roles/monitoring.metricWriter) -
Dev Ops (
roles/iam.devOps)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando personalizados papéis ou outros predefinidos papéis.
Conecte-se à instância e crie um banco de dados
Se você não estiver na página Visão geral do cluster recém-criado, no Google Cloud console, acesse a página Clusters.
Para mostrar a página Visão geral do cluster, clique no nome do cluster
my-cluster.No menu de navegação, clique em AlloyDB Studio.
Na lista Banco de dados da página Fazer login no AlloyDB Studio, selecione
postgres.Na lista suspensa Usuário, selecione
postgres.No campo Senha, insira a senha criada em Criar um cluster e a instância principal dele.
Clique em Autenticar. O painel Explorer mostra uma lista dos objetos no seu banco de dados.
Na guia Editor 1, crie um banco de dados:
CREATE DATABASE quickstart_db;Clique em Executar. Aguarde a mensagem
Statement executed successfullyaparecer no painel Resultados.
Encontrar seu ID do projeto
Acesse a página Painel de controle no Google Cloud console.
Encontre o ID do projeto no card Informações do projeto.
Anote o ID do projeto. Você vai precisar dele na próxima etapa deste guia de início rápido.
Preencha o Artifact Registry com uma imagem do aplicativo de amostra
Noconsole, abra o Cloud Shell. Google Cloud
No editor do Cloud Shell, use o comando a seguir para clonar o repositório com o código do aplicativo de amostra do GitHub:
cloudshell_open --repo_url \ "https://github.com/GoogleCloudPlatform/alloydb-auth-proxy" \ --dir \ "examples/go" \ --force_new_cloneCrie um repositório no Artifact Registry para imagens do Docker:
gcloud artifacts repositories create cloud-run-source-deploy --location us-central1 --repository-format=docker --project PROJECT_IDSubstitua
PROJECT_IDpelo ID do seu projeto.Na caixa de diálogo Autorizar o Cloud Shell, clique em Autorizar. Esse comando não aparece se você já tiver feito essa etapa.
Para criar um contêiner do Docker e publicá-lo no Artifact Registry, use o comando a seguir:
gcloud builds submit --tag us-central1-docker.pkg.dev/PROJECT_ID/cloud-run-source-deploy/run-sql --project PROJECT_IDSubstitua
PROJECT_IDpelo ID do seu projeto.O código do aplicativo de amostra para este guia de início rápido está localizado no
examples/godiretório doGoogleCloudPlatform/alloydb-auth-proxyrepositório do GitHub. O comandocloudshell_openna etapa anterior clona automaticamente esse repositório e abre o diretório correto para você.
Encontrar o endereço IP da nova instância
Noconsole, acesse a página Clusters. Google Cloud
Encontre a linha na tabela cujo Nome do recurso seja
my-primary.Anote o endereço IP privado dessa linha. Você vai precisar dele na próxima etapa deste guia de início rápido.
O formato de exemplo do endereço IP é
172.19.209.2:5432.
Criar um serviço para o Cloud Run
Noconsole, acesse a página do Cloud Run. Google Cloud
Na guia Serviços, clique em Implantar contêiner.
Na página Criar serviço, selecione a opção Implantar uma revisão de uma imagem de contêiner atual.
No campo URL da imagem do contêiner, clique em Selecionar.
No painel Selecionar imagem do contêiner, execute estas etapas:
- Selecione a guia Artifact Registry.
- Expanda
us-central1-docker.pkg.dev/PROJECT_ID/cloud-run-source-deploy. - Expanda
run-sql. - Selecione a imagem mais recente.
- Clique em Selecionar.
No campo Nome da conta de serviço, insira
quickstart-service.Verifique se
us-central1 (Iowa)está selecionado na lista Região por padrão.Na seção Autenticação, selecione Permitir acesso público.
Verifique se a opção A CPU é alocada somente durante o processamento da solicitação está selecionada na seção Alocação e preços da CPU.
Expanda a seção Contêineres, volumes, rede, segurança.
Na guia Contêineres, selecione a guia Variáveis e secrets e conclua as etapas a seguir:
Na seção Variáveis de ambiente, clique em Adicionar variável.
Insira o seguinte nos campos
NameeValue:DB_NAME:quickstart_dbDB_USER:postgresDB_PASS: a senha inserida ao criar o cluster.DB_PORT:5432INSTANCE_HOST: o endereço IP da instância principal do cluster, que você encontrou em Encontrar o endereço IP da nova instância. Não inclua o número da porta. Por exemplo, defina como172.19.209.2e não172.19.209.2:5432.
Mude da guia Contêineres para a guia Rede e conclua as etapas a seguir:
Marque a caixa de seleção Conectar a uma VPC para tráfego de saída.
Selecione a opção Enviar tráfego diretamente para uma VPC.
Na lista suspensa Rede, escolha o valor
default.Na lista suspensa Sub-rede, verifique se o valor
defaultestá selecionado.
Clique em Criar para criar o serviço do Cloud Run.
Depois que o serviço do Cloud Run é implantado, a página quickstart-service mostra o URL do aplicativo de amostra no campo URL.
O aplicativo usa o AlloyDB como repositório de dados.
Ver o aplicativo de amostra
Noconsole, acesse a página do Cloud Run. Google Cloud
Na página quickstart-service, clique em content_copy Copiar para a área de transferência para copiar o URL do aplicativo.
Em uma nova guia do navegador, cole o URL do aplicativo copiado e clique em Enter.
Liberar espaço
Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, siga as etapas abaixo.
Liberar espaço no cluster
Noconsole, acesse a página Clusters. Google Cloud
Ao lado do cluster
my-clusterque você quer excluir, clique em more_vert Ações e depois em delete Excluir.Na caixa de diálogo Excluir cluster que aparece, digite
my-clusterno campo my-cluster, confirmando que você quer excluí-lo.Clique em Excluir.
Liberar memória do serviço
Noconsole, acesse a página do Cloud Run. Google Cloud
Marque a caixa de seleção ao lado do nome do serviço
quickstart-service.Clique em delete Excluir na parte de cima da página do Cloud Run.
Na caixa de diálogo Excluir quickstart-service que aparece, clique em Excluir para confirmar.