Consultar um banco de dados

No momento, seu webhook usa dados fixados no código na função accountBalanceCheck. Nesta etapa do tutorial, você criará um banco de dados do Spanner, o preencherá com dados de saldo e atualizará a função para consultar o banco de dados.

Configuração do projeto

É importante que o agente do Dialogflow e o banco de dados estejam no mesmo projeto. Essa é a maneira mais fácil de sua função ter acesso seguro ao seu banco de dados. Além disso, você precisa ativar a API Spanner.

  1. Antes de criar o banco de dados, selecione seu projeto no console do Google Cloud.

    Acessar o seletor de projetos

  2. Ativar a API Spanner para o projeto.

    Ativar a API Spanner

Criar uma instância do Spanner

Quando você usa o Spanner pela primeira vez, é necessário criar uma instância, que é uma alocação de recursos usados pelos bancos de dados do Spanner naquela instância.

  1. No Console do Google Cloud, acesse a página Instâncias do Spanner.

    Acessar "Instâncias do Spanner"

  2. Clique em Criar instância.

  3. Para o nome da instância, insira Tutorial Instance.

  4. O ID da instância é inserido automaticamente com base no nome da instância.

  5. Em Escolher sua configuração, mantenha a opção padrão Regional e selecione a mesma região local escolhida ao criar a função.

  6. Em Alocar capacidade de computação, insira 100 unidades de processamento. Isso fornece uma capacidade mínima para o tutorial.

  7. Clique em Criar. O console do Google Cloud exibe a página Visão geral da instância que você criou.

Criar um banco de dados do Spanner

Agora que você tem uma instância, é preciso criar um banco de dados. Para criar um banco de dados:

  1. Na página Visão geral da instância, clique em Criar banco de dados.
  2. Para o nome do banco de dados, insira tutorial-database.
  3. Selecione o dialeto do banco de dados SQL padrão do Google.
  4. Clique em Criar. O console do Google Cloud exibe a página Visão geral do banco de dados que você criou.

Criar tabelas para seu banco de dados

Agora que você tem um banco de dados, precisa criar tabelas para ele. Para criar tabelas:

  1. Na seção "Tabelas" da página Visão geral do banco de dados, clique em Criar tabela.
  2. Na página Escrever instruções DDL, digite:

    CREATE TABLE Checking (
      AccountId INT64,
      Balance INT64,
    ) PRIMARY KEY(AccountId);
    
  3. Clique em Enviar. O console do Google Cloud retorna à página Visão geral do banco de dados e mostra que as atualizações do esquema estão em andamento. Aguarde a conclusão da atualização.

  4. Na seção "Tabelas" da página Visão geral do banco de dados, clique em Criar tabela.

  5. Na página Escrever instruções DDL, digite:

    CREATE TABLE Savings (
      AccountId INT64,
      Balance INT64,
    ) PRIMARY KEY(AccountId);
    
  6. Clique em Enviar. O console do Google Cloud retorna à página Visão geral do banco de dados e mostra que as atualizações do esquema estão em andamento. Aguarde a conclusão da atualização.

Inserir dados nas suas tabelas

Agora que o banco de dados tem tabelas, você precisa adicionar dados a elas. Para adicionar dados:

  1. Na lista de tabelas da página Visão geral do banco de dados, clique na tabela Em verificação. O console do Google Cloud exibe a página Esquema da tabela.
  2. No menu de navegação à esquerda, clique em Dados para exibir a página Dados da tabela.
  3. Clique em Insert. O console do Google Cloud exibe a página Consulta da tabela com uma nova guia de consulta que contém as instruções INSERT e SELECT. Substitua essas instruções pelo seguinte:

    INSERT INTO Checking (AccountId, Balance)
    VALUES(1, 1000),
          (2, 2000);
    
  4. Clique em Run.

  5. No menu de navegação à esquerda, clique novamente em Dados para exibir os dados da tabela. Confirme se a tabela contém os dados desejados.

  6. Clique no link tutorial-database: Visão geral para retornar à página de visão geral do banco de dados.

  7. Na lista de tabelas da página Visão geral do banco de dados, clique na tabela "Economia". O console do Google Cloud exibe a página Esquema da tabela.

  8. No menu de navegação à esquerda, clique em Dados para exibir a página Dados da tabela.

  9. Clique em Insert. O console do Google Cloud exibe a página Consulta da tabela com uma nova guia de consulta que contém as instruções INSERT e SELECT. Substitua essas instruções pelo seguinte:

    INSERT INTO Savings (AccountId, Balance)
    VALUES(1, 10000),
          (2, 20000);
    
  10. Clique em Run.

  11. No menu de navegação à esquerda, clique novamente em Dados para exibir os dados da tabela. Confirme se a tabela contém os dados desejados.

Atualizar a função do Cloud para consultar o banco de dados

A função accountBalanceCheck no código do webhook verifica se variáveis de ambiente específicas estão definidas com informações para se conectar ao banco de dados. Se essas variáveis de ambiente não forem definidas, a função usará um saldo de conta fixado no código.

Agora que você tem um banco de dados configurado, atualize a função do Cloud para definir as variáveis de ambiente necessárias:

  1. Abra a página de visão geral do Cloud Functions.

    Acessar a visão geral do Cloud Functions

  2. Clique na função tutorial-banking-webhook para acessar a página de detalhes dela.

  3. Clique em Editar.

  4. Abra a seção Configurações de ambiente de execução, criação e conexões.

  5. Selecione a guia Ambiente de execução.

  6. Adicione as seguintes variáveis na seção de variáveis de ambiente de execução:

    • PROJECT_ID: ID do projeto;
    • SPANNER_INSTANCE_ID: o ID da instância do Spanner (provavelmente tutorial-instance)
    • SPANNER_DATABASE_ID: o ID do banco de dados do Spanner (provavelmente tutorial-database)
  7. Clique em Próxima.

  8. Clique em Implantar.

  9. Aguarde até que o indicador de status mostre que a função foi implantada com sucesso.

Teste seu agente

Seu agente está pronto para tentar. Clique no botão Test Agent no console do Dialogflow para abrir o simulador. Tente fazer a seguinte conversa com o agente:

Turno da conversa Você Agente
1 Olá Olá, agradecemos por escolher o ACME Bank.
2 Quero saber o saldo da minha conta Para qual conta você quer o saldo: poupança ou corrente?
3 Verificando Aqui está seu saldo mais recente: US$ 10,00

Se você examinar o código, US$ 10 não será o valor fixado no código. Isso significa que o webhook se conectou ao banco de dados, que tem um saldo de US $10.

Solução de problemas

O código do webhook inclui instruções de geração de registros. Se você estiver com problemas, tente ver os registros da sua função do Cloud.

Se a função não estiver se conectando ao banco de dados e você encontrar um erro de permissão nos registros, talvez seja necessário corrigir o papel da conta de serviço padrão usada pela função. Essa conta de serviço tem o formato PROJECT_ID@appspot.gserviceaccount.com. Isso pode ser corrigido de uma das seguintes maneiras:

Mais informações

Para mais informações sobre as etapas acima, consulte: