Conectar a partir do Cloud Run

Para conectar um aplicativo sem servidor ao AlloyDB para PostgreSQL, implante um exemplo de aplicativo da Web em Go em um serviço do Cloud Run no console doGoogle Cloud e configure-o para se comunicar com a instância do AlloyDB por uma rede de nuvem privada virtual (VPC) particular.

Código do aplicativo de amostra

O código do aplicativo de amostra para este guia de início rápido está localizado no diretório examples/go do repositório do GitHub GoogleCloudPlatform/alloydb-auth-proxy.

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 as solicitações do usuário.

A conexão do banco de dados é configurada usando variáveis de ambiente, que você define 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 ter todo o projeto do alloydb-auth-proxy para se conectar ao AlloyDB pelo Cloud Run. O comando cloudshell_open clona todo o repositório para sua conveniência, mas os únicos arquivos usados para criar o contêiner deste guia de início rápido estão localizados no diretório examples/go.

Antes de começar

  1. Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloudagora, 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 sem custos financeiros.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. 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.

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the Compute Engine, Cloud Run, AlloyDB, Cloud Resource Manager, Service Networking, Cloud Build, and Container Registry APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  6. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  7. 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.

  8. Verify that billing is enabled for your Google Cloud project.

  9. Enable the Compute Engine, Cloud Run, AlloyDB, Cloud Resource Manager, Service Networking, Cloud Build, and Container Registry APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  10. 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 primária dele.

Funções exigidas

Para receber as permissões necessárias para se conectar pelo Cloud Run, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:

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 papéis personalizados ou outros papéis predefinidos.

Conectar-se à instância e criar um banco de dados

  1. Se você não estiver na página Visão geral do cluster recém-criado, acesse a página Clusters no console do Google Cloud .

    Acessar Clusters

  2. Para exibir a página Visão geral do cluster, clique no nome do cluster my-cluster.

  3. No menu de navegação, clique em AlloyDB Studio.

  4. Na lista Banco de dados em Fazer login no banco de dados, selecione postgres.

  5. Na lista suspensa Usuário, selecione postgres.

  6. No campo Senha, digite a senha que você criou em Criar um cluster e a instância principal dele.

  7. Clique em Autenticar. O painel Explorer mostra uma lista dos objetos no seu banco de dados.

  8. Na guia Consulta sem título, crie um banco de dados:

    CREATE DATABASE quickstart_db;
    
  9. Clique em Executar. Aguarde até que a mensagem Statement executed successfully apareça no painel Resultados.

Encontrar o ID do projeto

  1. Acesse a página Painel no console do Google Cloud .

    Ir para o painel

  2. Encontre o ID do projeto no card Informações do projeto.

  3. Anote o ID do projeto. Você vai precisar dele para a próxima etapa deste guia de início rápido.

Preencher o Artifact Registry com uma imagem do aplicativo de amostra

  1. No console do Google Cloud , abra o Cloud Shell.

    Abra o Cloud Shell

  2. No editor do Cloud Shell, use o seguinte comando 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_clone
  3. Crie um repositório no Artifact Registry para imagens Docker:

    gcloud artifacts repositories create cloud-run-source-deploy --location us-central1 --repository-format=docker --project PROJECT_ID

    Substitua PROJECT_ID pelo ID do seu projeto.

  4. Na caixa de diálogo Autorizar o Cloud Shell, clique em Autorizar. Essa solicitação não vai aparecer se você já tiver concluído essa etapa.

  5. Para criar um contêiner do Docker e publicá-lo no Artifact Registry, use o seguinte comando:

     gcloud builds submit --tag  us-central1-docker.pkg.dev/PROJECT_ID/cloud-run-source-deploy/run-sql --project PROJECT_ID

    Substitua PROJECT_ID pelo ID do seu projeto.

    O código do aplicativo de amostra para este guia de início rápido está localizado no diretório examples/go do repositório do GitHub GoogleCloudPlatform/alloydb-auth-proxy. O comando cloudshell_open na etapa anterior clona automaticamente esse repositório e abre o diretório correto para você.

Encontrar o endereço IP da nova instância

  1. No Google Cloud console, acesse a página Clusters.

    Acessar Clusters

  2. Encontre a linha na tabela em que o Nome do recurso é my-primary.

  3. Anote o endereço IP particular dessa linha. Você vai precisar dele para a próxima etapa deste guia de início rápido.

    O exemplo de formato do endereço IP é 172.19.209.2:5432.

Criar um serviço para o Cloud Run

  1. No console do Google Cloud , acesse a página do Cloud Run.

    Acessar o Cloud Run

  2. Na guia Serviços, clique em Implantar contêiner.

  3. Na página Criar serviço, selecione a opção Implantar uma revisão de uma imagem de contêiner atual.

  4. No campo URL da imagem do contêiner, clique em Selecionar.

  5. No painel Selecionar imagem do contêiner, execute estas etapas:

    1. Selecione a guia Artifact Registry.
    2. Abra us-central1-docker.pkg.dev/PROJECT_ID/cloud-run-source-deploy.
    3. Abra run-sql.
    4. Selecione a imagem mais recente.
    5. Clique em Selecionar.
  6. No campo Nome da conta de serviço, insira quickstart-service.

  7. Verifique se us-central1 (Iowa) está selecionado na lista Região por padrão.

  8. Na seção Autenticação, selecione Permitir acesso público.

  9. Verifique se a opção A CPU é alocada somente durante o processamento da solicitação está selecionada na seção Alocação de CPU e preços.

  10. Abra a seção Contêineres, volumes, rede, segurança.

  11. Na guia Contêineres, selecione a guia Variáveis e secrets e siga estas etapas:

    1. Na seção Variáveis de ambiente, clique em Adicionar variável.

    2. Insira o seguinte nos campos Name e Value:

      • DB_NAME: quickstart_db
      • DB_USER: postgres
      • DB_PASS: a senha que você inseriu ao criar o cluster.
      • DB_PORT: 5432
      • INSTANCE_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 como 172.19.209.2, e não 172.19.209.2:5432.
  12. Alterne da guia Contêineres para a guia Rede e siga estas etapas:

    1. Marque a caixa de seleção Conectar a uma VPC para tráfego de saída.

    2. Selecione a opção Enviar tráfego diretamente para uma VPC.

    3. Na lista suspensa Rede, escolha o valor default.

    4. Na lista suspensa Sub-rede, verifique se o valor default está selecionado.

  13. 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 exibe o URL do aplicativo de amostra no campo URL.

    O aplicativo usa o AlloyDB como repositório de dados.

Ver o aplicativo de amostra

  1. No console do Google Cloud , acesse a página do Cloud Run.

    Acessar o Cloud Run

  2. Na página quickstart-service, clique em Copiar para a área de transferência para copiar o URL do aplicativo.

  3. Em uma nova guia do navegador, cole o URL do aplicativo copiado e clique em Enter.

Limpar

Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, siga as etapas abaixo.

Limpar o cluster

  1. No Google Cloud console, acesse a página Clusters.

    Acessar Clusters

  2. Ao lado do cluster do my-cluster que você quer excluir, clique em Ações e depois em Excluir.

  3. Na caixa de diálogo Excluir cluster que aparece, digite my-cluster no campo my-cluster, confirmando que você quer excluí-lo.

  4. Clique em Excluir.

Limpar o serviço

  1. No console do Google Cloud , acesse a página do Cloud Run.

    Acessar o Cloud Run

  2. Marque a caixa de seleção ao lado do nome do serviço do quickstart-service.

  3. Clique em Excluir na parte de cima da página do Cloud Run.

  4. Na caixa de diálogo Excluir quickstart-service, clique em Excluir para confirmar.

A seguir