Conectar-se ao Cloud SQL para PostgreSQL pelo Cloud Functions
Saiba como implantar um app de exemplo no Cloud Functions conectado a uma instância do PostgreSQL usando o Console do Google Cloud e um aplicativo cliente.
Supondo que você conclua todas as etapas em tempo hábil, os recursos criados neste guia de início rápido normalmente custam menos de um dólar (USD).
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Ative as APIs do Cloud necessárias para executar um app de exemplo do Cloud SQL no Cloud Functions.
Console
Clique em Ativar APIs para ativar as APIs necessárias para este guia de início rápido.
Isso permite as seguintes APIs:
- API Cloud Functions
- API Cloud SQL Admin
- API Cloud Run Admin
- API Cloud Build
- API Artifact Registry
- API Eventarc
- API Compute Engine
- API Service Networking
- API Cloud Logging
gcloud
Clique no botão a seguir para abrir o Cloud Shell, que fornece acesso de linha de comando aos recursos do Google Cloud diretamente no navegador. O Cloud Shell pode ser usado para executar os comandos
gcloud
apresentados neste guia de início rápido.Execute o comando
gcloud
a seguir usando o Cloud Shell:gcloud services enable cloudfunctions.googleapis.com sqladmin.googleapis.com run.googleapis.com cloudbuild.googleapis.com artifactregistry.googleapis.com eventarc.googleapis.com compute.googleapis.com servicenetworking.googleapis.com pubsub.googleapis.com logging.googleapis.com
Esse comando ativa as seguintes APIs:
- API Cloud Functions
- API Cloud SQL Admin
- API Cloud Run
- API Cloud Build
- API Artifact Registry
- API Eventarc
- API Compute Engine
- API Service Networking
- API Cloud Logging
Adicione o papel do IAM Invocador do Cloud Functions ao seu usuário.
Configurar o Cloud SQL
crie uma instância do Cloud SQL
Crie um banco de dados
Console
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
- Selecione
quickstart-instance
. - No menu de navegação SQL, selecione Bancos de dados.
- Clique em Criar banco de dados.
- No campo Nome do banco de dados da caixa de diálogo
Novo banco de dados, insira
quickstart-db
. - Clique em Criar.
gcloud
Execute o comando gcloud
sql databases create
para criar um banco de dados.
gcloud sql databases create quickstart-db --instance=quickstart-instance
Criar um usuário
Console
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- No menu de navegação SQL, selecione Usuários.
- Clique em Adicionar conta de usuário.
- Na página Adicionar uma conta de usuário da quickstart-instance,
adicione as seguintes informações:
- No campo Nome de usuário, digite
quickstart-user
. - No campo Password, especifique uma senha para o usuário do banco de dados. Anote-a para usá-la em uma etapa posterior deste guia de início rápido.
- No campo Nome de usuário, digite
- Clique em Add.
gcloud
Antes de executar o comando a seguir, faça estas substituições:
- DB_PASS por uma senha para seu usuário do banco de dados. Anote-a para usá-la em uma etapa posterior deste guia de início rápido.
Execute o comando gcloud sql users create
para criar o usuário.
gcloud sql users create quickstart-user \ --instance=quickstart-instance \ --password=DB_PASS
Os limites de tamanho de nome de usuário são os mesmos no Cloud SQL e no PostgreSQL no local.
Configurar uma conta de serviço do Cloud Functions
Console
-
No Console do Google Cloud, abra a página IAM.
- Na conta de serviço denominada Conta de serviço padrão do Compute Engine, clique no ícone de lápis.
- Clique em ADICIONAR OUTRO PAPEL.
- Adicione o Papel chamado Cliente do Cloud SQL.
- Clique em Save.
gcloud
-
Execute o seguinte comando
gcloud
para ver uma lista de contas de serviço do seu projeto:gcloud iam service-accounts list
- Copie o E-MAIL da conta de serviço do Compute Engine.
- Execute o seguinte comando para adicionar o papel Cliente do Cloud SQL
à conta de serviço do Compute Engine:
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role="roles/cloudsql.client"
Criar uma função
-
No Console do Google Cloud, acesse a página Cloud Functions.
- Clique em Criar função.
- Em Ambiente, selecione 2a geração.
- No campo Nome da função, insira
quickstart-function
. - Na região Autenticação, selecione Permitir invocações não autenticadas.
- Clique em Next.
- No menu Ambiente de execução, selecione um dos seguintes idiomas:
- No menu Código-fonte, verifique se o Editor in-line está selecionado. Nesta etapa, você vai usar a função padrão fornecida no editor.
Idioma | Número da versão |
---|---|
Go | 1.20 |
Java | 17 |
Node.js | 18 |
Python | 3.10 |
Implante a função
- Na parte inferior da página do Cloud Functions, clique em Implantar. O console do Google Cloud redireciona você para a página de detalhes da função.
- Quando a implantação da função estiver concluída, clique no link URL para ver
um navegador da Web que exibe a mensagem
Hello, World!
.
Implantar o app de exemplo do Cloud SQL como uma função
Você configura e implanta o app de exemplo do Cloud SQL como uma função no Cloud Functions. Primeiro, use o Cloud Shell para configurar e criar o app de exemplo. Em seguida, use o Cloud Functions para implantar o app de exemplo.
Há duas maneiras de configurar, criar e implantar o app dependendo se você criou uma instância do Cloud SQL para PostgreSQL com um IP público ou um IP particular.
Configurar um app de exemplo do Cloud SQL
Implantar o app de exemplo
As etapas para implantar o exemplo no Cloud Functions dependem do tipo de endereço IP atribuído à instância do Cloud SQL.
Limpar
Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, siga estas etapas.
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
- Selecione a instância
quickstart-instance
para abrir a página Detalhes da instância. - Na barra de ícones na parte superior da página, clique em Excluir.
- Na caixa de diálogo Excluir instância, digite
quickstart-instance
e clique em Excluir para excluir a instância. -
No Console do Google Cloud, acesse a página Cloud Functions.
- Marque a caixa de seleção ao lado do nome do serviço do
quickstart-function
. - Clique em Excluir na parte de cima da página do Cloud Functions.
Etapas de limpeza opcionais
Se você não estiver usando o papel Cliente do Cloud SQL que foi atribuído à conta de serviço do Compute Engine, será possível removê-lo.
-
No Console do Google Cloud, abra a página IAM.
- Clique no ícone de edição (que parece com um lápis) da conta do IAM chamada conta de serviço padrão do Compute Engine.
- Exclua o papel Cliente do Cloud SQL.
- Clique em Save.
Se você não estiver usando as APIs que foram ativadas como parte deste guia de início rápido, é possível desativá-las.
- APIs que foram ativadas neste guia de início rápido:
- API Compute Engine
- API Cloud SQL Admin
- API Cloud Run
- API Container Registry
- API Cloud Build
No Console do Google Cloud, acesse a página APIs.
Selecione qualquer API que você quer desativar e clique no botão Desativar API.
A seguir
Com base nas suas necessidades, é possível saber mais sobre como criar instâncias do Cloud SQL.Também é possível aprender a criar usuários do PostgreSQL e bancos de dados para sua instância do Cloud SQL.
Para mais informações sobre preços, consulte Preços do Cloud SQL para PostgreSQL.
Saiba mais sobre estas situações:
- Como configurar sua instância do Cloud SQL com um endereço IP público.
- Como configurar sua instância do Cloud SQL com um endereço IP privado.
Além disso, é possível aprender a se conectar a uma instância do Cloud SQL usando outros aplicativos do Google Cloud, como: