Executar operações CRUD em um banco de dados MySQL

Neste tutorial, mostramos como se conectar a uma instância de banco de dados MySQL usando uma integração de amostra e executar operações de List, Get, Create, Update e Delete em uma tabela de banco de dados MySQL.

Para concluir este tutorial, execute as seguintes tarefas:

Antes de começar

  • Verifique se você tem acesso às integrações.
  • Faça o seguinte no seu projeto do Google Cloud:

    • Conceda os seguintes papéis à conta de serviço que você quer usar para criar a conexão:
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor
    • Ative os seguintes serviços:
      • secretmanager.googleapis.com (API Secret Manager)
      • connectors.googleapis.com (API Connectors)

      Se esses serviços não tiverem sido ativados no projeto anteriormente, será solicitado que você os ative ao criar a conexão na página Criar conexão.

  • Verifique se você tem acesso a um servidor MySQL que pode ser usado para criar um banco de dados.

Configurar um banco de dados e uma tabela no seu servidor MySQL

Conecte-se ao servidor MySQL e crie um banco de dados e uma tabela para usar neste tutorial.
  1. Para se conectar ao seu servidor MySQL, execute o seguinte comando em um sistema que tenha um cliente MySQL instalado:
    mysql --host=MySQL server host name or IP address --port=MySQL server port number -uusername -ppassword
    Neste exemplo, substitua:
    • MySQL server host name or IP address pelo nome ou endereço IP do seu servidor MySQL.
    • MySQL server port number pelo número da porta do seu servidor MySQL.
    • username pelo nome de usuário do seu servidor MySQL.
    • password pela senha do servidor do MySQL.
  2. Para criar um banco de dados MySQL para usar neste tutorial, execute o seguinte comando no cliente MySQL:
    CREATE DATABASE tutorialDB;
  3. Para criar uma tabela para usar neste tutorial, execute o seguinte comando no seu cliente MySQL:
    create table employee
      (
      employee_id int auto_increment primary key,
      employee_first_name varchar(500) NOT null,
      employee_last_name varchar(500) NOT null,
      employee_emailID varchar(500)
      ); 
  4. Para adicionar linhas à tabela employee que você criou, execute o seguinte comando no seu cliente MySQL:
    INSERT INTO employee (employee_first_name,employee_last_name,employee_emailID) values ("Peter","Dilliard","test-01@test.com");
    INSERT INTO employee (employee_first_name,employee_last_name,employee_emailID) values ("Meaghan","Webb","test-02@test.com");
    
  5. Verifique se a tabela foi criada e se as linhas foram adicionadas executando o seguinte comando:
    SELECT * FROM employee;
    As linhas da tabela a seguir serão exibidas:
    +-------------+---------------------+--------------------+------------------+
    | employee_id | employee_first_name | employee_last_name | employee_emailID |
    +-------------+---------------------+--------------------+------------------+
    |           1 | Peter               | Dilliard           | test-01@test.com |
    |           2 | Meaghan             | Webb               | test-02@test.com |
    +-------------+---------------------+--------------------+------------------+
    

Criar uma conexão do MySQL

Para permitir que uma integração se conecte ao seu banco de dados MySQL, crie uma nova conexão com o banco de dados MySQL:

  1. Clique em + CRIAR NOVO para abrir a página Criar conexão.
  2. Na seção Local, escolha o local da conexão.
    1. Na lista Região, selecione a região em que você quer criar a conexão.

      Para conferir a lista de todas as regiões com suporte, consulte Locais.

    2. Clique em Próxima.
  3. Na seção Detalhes da conexão, insira os seguintes detalhes:
    1. Na lista Conector, selecione MySQL (pré-lançamento).
    2. Na lista Versão do conector, selecione a versão.
    3. No campo Nome da conexão, insira um nome para a instância de conexão.

      Os nomes de conexão precisam atender aos seguintes critérios:

      • Use letras, números ou hifens.
      • As letras precisam ser minúsculas.
      • Os nomes precisam começar com uma letra e terminar com uma letra ou um número.
      • Os nomes não podem exceder 63 caracteres.
    4. Opcional: no campo Descrição, adicione uma descrição da instância de conexão.
    5. Opcional: ative o Cloud Logging.
    6. Na lista Conta de serviço, selecione uma conta que tenha os papéis necessários.
    7. No campo Nome do banco de dados, insira o nome do banco de dados MySQL.
    8. Opcionalmente, defina as Configurações do nó de conexão:

      • Número mínimo de nós: digite o número mínimo de nós de conexão.
      • Número máximo de nós: digite o número máximo de nós de conexão.

      Um nó é uma unidade (ou réplica) de uma conexão que processa transações. Mais nós são necessários para processar mais transações para uma conexão e, por outro lado, menos nós são necessários para processar menos transações. Para entender como os nós afetam os preços do conector, consulte Preços dos nós de conexão. Se você não inserir qualquer valor, por padrão, os nós mínimos serão definidos como 2 (para melhor disponibilidade) e os nós máximos serão definidos como 50.

    9. Usar proxy: marque esta caixa de seleção para configurar um servidor proxy para a conexão e defina os seguintes valores:
      • Esquema de autenticação de proxy: selecione o tipo de autenticação para autenticar com o servidor proxy. Há compatibilidade com os seguintes tipos de autenticação:
        • Básico: autenticação HTTP básica.
        • Resumo: autenticação HTTP de resumo.
      • Usuário proxy: um nome de usuário a ser usado para autenticar com o servidor proxy.
      • Senha de proxy: a chave secreta do Secret Manager da senha do usuário.
      • Tipo de SSL de proxy: o tipo de SSL a ser usado para se conectar ao servidor proxy. Há compatibilidade com os seguintes tipos de autenticação:
        • Automático: configuração padrão. Se o URL for HTTPS, a opção Túnel será usada. Se o URL for HTTP, a opção NUNCA será usada.
        • Sempre: a conexão será sempre com SSL ativado.
        • Nunca: a conexão não está com SSL ativado.
        • Túnel: a conexão é feita por um proxy de encapsulamento. O servidor proxy abre uma conexão com o host remoto e o tráfego flui de ida e volta pelo proxy.
      • Na seção Servidor proxy, insira os detalhes do servidor proxy.
        1. Clique em + Adicionar destino.
        2. Selecione um Tipo de destino.
          • Endereço do host: especifique o nome do host ou o endereço IP do destino.

            Se quiser estabelecer uma conexão privada com seu sistema de back-end, faça o seguinte:

    10. Opcional: para adicionar um rótulo à conexão, clique em + Adicionar rótulo.
    11. Clique em Próxima.
    12. Na seção Destinos, insira detalhes do host remoto (sistema de back-end) a que você quer se conectar.
      • Na lista Tipo de destino, selecione um endereço de host.
        1. No campo Endereço do host, especifique o nome do host ou o endereço IP do destino.
          1. Se você quiser estabelecer uma conexão privada com seus sistemas de back-end, siga estas etapas:
            1. Crie um anexo do serviço PSC.
            2. Crie um anexo de endpoint e insira os detalhes dele no campo Endereço do host.
          2. Para estabelecer uma conexão pública com os sistemas de back-end com mais segurança, considere configurar endereços IP de saída estáticos para suas conexões e configure as regras de firewall para autorizar apenas os endereços IP estáticos específicos.

        Para inserir outros destinos, clique em + Adicionar destino.

      • Clique em Próxima.
    13. Na seção Autenticação, é possível fornecer as credenciais:
      • No campo Nome de usuário, digite o nome de usuário do MySQL para a conexão.
      • No campo Senha, insira o secret do Secret Manager que contém a senha associada ao nome de usuário do MySQL.
        • Se você tiver criado um secret anteriormente e não estiver disponível na lista, selecione Inserir secret manualmente. Na caixa de diálogo Adicionar um secret por ID do recurso, copie e cole o ID do recurso do Gerenciador de secrets.
          • Para usar a versão mais recente, copie e cole o ID do recurso do secret pai, no formato: "projects/project-number/secrets/secret-name"
          • Para selecionar uma versão específica, copie e cole o código do recurso para essa versão específica, no formato "projects/project-number/secrets/secret-name/versions/1"

          Para adicionar o secret, clique em Adicionar secret.

        • Se você não tiver criado um secret para uso com o MySQL, clique em Criar novo secret. Na caixa de diálogo Criar secret, insira os seguintes detalhes:
          • No campo Nome, insira o nome do secret.
          • No campo Valor do secret, insira o conteúdo do secret ou faça upload de um arquivo que o contenha.
          • Clique em Criar secret.
      • Na lista Versão do secret, selecione a versão do secret Senha na lista de versões disponíveis no menu suspenso.
      • Clique em Próxima.
  4. Na seção Revisão, revise os detalhes de conexão e autenticação.
  5. Clique em Criar.

Configurar a autenticação

Digite os detalhes com base na autenticação que você quer usar.

  • Nome de usuário e senha
    • Nome de usuário: o nome de usuário do MySQL a ser usado para a conexão.
    • Senha: o Secret do Secret Manager que contém a senha associada ao nome de usuário do MySQL.

Configurar uma integração para usar a conexão do MySQL

Para usar a conexão MySQL que você criou em uma integração, adicione uma tarefa Conectores em uma integração com um acionador de API. O acionador da API está conectado à tarefa Conectores usando uma conexão Edge.

Criar uma nova integração

  1. No console do Google Cloud, acesse a página Conectores de integração.

    Acessar Integration Connectors

  2. No menu de navegação, clique em Integrações.

    A página Lista de integrações é exibida.

  3. Selecione uma integração existente ou clique em CRIAR INTEGRAÇÃO.

    Isso abre a integração na página do editor de integração.

  4. No editor de integração, clique em + Adicionar uma tarefa/acionador > Tarefas para acessar a lista de tarefas disponíveis.
  5. Clique em CRIAR NOVA.
  6. Insira um nome e, se quiser, uma descrição na caixa de diálogo Criar integração.
  7. Clique em Criar para abrir o editor de integração.

Adicionar e configurar um gatilho de API

Para adicionar e configurar um gatilho de API na integração, faça o seguinte:

  1. No designer de integração, selecione Adicionar uma tarefa/gatilho > Gatilhos para exibir uma lista de gatilhos disponíveis.
  2. Arraste o elemento Gatilho da API para o designer de integração.

Adicionar e configurar uma tarefa do Connectors

Siga as etapas abaixo para configurar uma tarefa Connectors para listar todas as entidades na tabela employee:

  1. Selecione + Adicionar uma tarefa/acionador > Tarefas no editor de integração para exibir a lista de tarefas disponíveis.
  2. Arraste o elemento Connectors para o editor de integração.
  3. Clique no elemento de tarefa dos Conectores no designer para conferir o painel de configuração da tarefa.
  4. Clique em Configurar tarefa.

    A caixa de diálogo Configurar conector será exibida.

  5. Na caixa de diálogo Configurar conector da tarefa, faça o seguinte:
    1. Selecione a região da conexão em que você criou a conexão do MySQL.
    2. Depois que uma região for escolhida, a coluna Conexão será exibida. Selecione a conexão MySQL que você criou na lista de conexões disponíveis.
    3. Depois que uma conexão é escolhida, a coluna Tipo é exibida. Selecione Entities e depois funcionário na lista de entidades disponíveis.
    4. Depois que um tipo é escolhido, a coluna Operação é exibida. Selecione Lista.
    5. Clique em Concluído para concluir a configuração da conexão e feche o painel.

Conectar o elemento acionador de API ao elemento de tarefa dos conectores

Em seguida, adicione uma conexão de borda para conectar o acionador da API à tarefa "Conectores". Uma borda é a conexão entre dois elementos em uma integração. Para mais informações sobre as bordas e as condições das bordas, consulte Arestas.

Para adicionar a conexão de borda, clique no ponto de controle Fork na parte inferior do elemento API Trigger. Arraste e solte a conexão de borda no ponto de controle Join na parte superior do elemento de tarefa do Connectors.

Testar a integração

Para testar a integração, faça o seguinte:

  1. Clique no botão Test na barra de ferramentas do editor de integração.
  2. Se quiser, altere o valor do Prazo de execução (em minutos) e clique em Testar integração.
  3. Quando a integração for concluída, a caixa de diálogo Testar integração exibirá a mensagem Execução de integração concluída. Para visualizar os registros, clique em Visualizar registros.
  4. Em Parâmetros de resposta, em Payload de saída do conector, você verá a seguinte saída:
    [ {
        "employee_id": 1.0,
        "employee_first_name": "Peter",
        "employee_last_name": "Dilliard",
        "employee_emailID": "test-01@test.com"
      },
      {
        "employee_id": 2.0,
        "employee_first_name": "Meaghan",
        "employee_last_name": "Webb",
        "employee_emailID": "test-02@test.com"
      } ]

Realizar outras operações na tabela do banco de dados MySQL

Ao configurar uma tarefa do Connectors na sua integração, você pode selecionar qualquer uma das seguintes operações:

  • Lista
  • Get
  • Criar
  • Atualizar
  • Excluir

Você já usou a operação de lista para conferir todas as linhas na tabela employee. Nas seções a seguir deste tutorial, você usará as operações Get, Create, Update e Delete para adicionar, modificar ou remover linhas da tabela employee.

Recuperar uma linha de uma tabela

Se você souber o ID da entidade (ou chave primária) da linha que quer buscar, forneça esse valor como entrada a uma operação Get na integração. Os detalhes retornados pela operação Get são semelhantes aos detalhes retornados pela operação List. No entanto, enquanto a operação de lista busca detalhes de todas as linhas da tabela que correspondem à consulta especificada, a operação Get busca detalhes apenas da linha da tabela que corresponde ao ID da entidade especificada.

A operação "List" retorna por padrão todas as linhas na tabela, mas a operação "Get" exige um ID de entidade como parâmetro de pesquisa. Portanto, para usar a operação Get, é necessário saber o ID da entidade da linha que você quer buscar ou fornecer um valor padrão para o ID da entidade.

Para conferir detalhes de uma linha especificada, siga estas etapas para configurar a tarefa Connectors criada anteriormente:

  1. Clique no elemento de tarefa dos Conectores no designer para conferir o painel de configuração da tarefa.
  2. Clique em Configurar tarefa.

    A caixa de diálogo Configurar conector será exibida.

  3. Na caixa de diálogo Configurar conector da tarefa, na coluna Operação, selecione Receber e clique em Concluído.
  4. No painel de configuração de tarefas, em Entrada de tarefas, clique em ID da entidade.
  5. Na caixa de diálogo Configurar variável, selecione Usar como entrada para integração e clique em Salvar.
  6. Clique no botão Test na barra de ferramentas do editor de integração.
  7. Mude o valor de Execution Deadline (in minutes), se quiser.
  8. Digite o ID da entidade que você quer buscar detalhes. Insira 2
  9. Clique em Testar integração.
  10. Quando a integração for concluída, a caixa de diálogo Testar integração exibirá a mensagem Execução de integração concluída. Para visualizar os registros, clique em Visualizar registros.
  11. Em Parâmetros de resposta, em Payload de saída do conector, você verá a seguinte saída:
    [ {
        "employee_id": 2.0,
        "employee_first_name": "Meaghan",
        "employee_last_name": "Webb",
        "employee_emailID": "test-02@test.com"
      } ]
  12. Verifique se as informações mostradas aqui correspondem aos dados na linha correspondente da sua tabela MySQL. Para conferir essas informações na tabela do MySQL, execute o seguinte comando no cliente MySQL:
    SELECT * FROM employee WHERE employee_id=2;
    A linha da tabela a seguir será exibida:
    +-------------+---------------------+--------------------+------------------+
    | employee_id | employee_first_name | employee_last_name | employee_emailID |
    +-------------+---------------------+--------------------+------------------+
    |           2 | Meaghan             | Webb               | test-02@test.com |
    +-------------+---------------------+--------------------+------------------+
        

Adicionar uma linha a uma tabela

Com a operação de criação, você pode adicionar uma linha em uma tabela. Ao usar a operação de criação, você precisa fornecer todos os valores da entidade no payload de entrada do conector.

Para adicionar uma linha usando a operação de criação, siga as etapas a seguir para configurar a tarefa Conectores, criada anteriormente:

  1. Clique no elemento de tarefa dos Conectores no designer para conferir o painel de configuração da tarefa.
  2. Clique em Configurar tarefa.

    A caixa de diálogo Configurar conector será exibida.

  3. Na caixa de diálogo Configurar conector da tarefa, na coluna Operação, selecione Criar e clique em Concluído.
  4. No painel de configuração de tarefas, em Task Input, clique em Payload de entrada do conector.
  5. Na caixa de diálogo Configurar variável, selecione Usar como entrada para integração e clique em Salvar.
  6. Clique no botão Test na barra de ferramentas do editor de integração.
  7. Mude o valor de Execution Deadline (in minutes), se quiser.
  8. Digite os detalhes da entidade que você quer criar. Por exemplo, para adicionar um novo funcionário na tabela employee, digite o seguinte JSON:
    {
      "employee_first_name": "Mary",
      "employee_last_name": "Smith",
      "employee_emailID": "test-03@test.com"
    }
  9. Clique em Testar integração.
  10. Quando a integração for concluída, a caixa de diálogo Testar integração exibirá a mensagem Execução de integração concluída. Para visualizar os registros, clique em Visualizar registros.
  11. Em Parâmetros de resposta, em Payload de entrada do conector, o payload fornecido vai ser exibido:
    {
      "employee_first_name": "Mary",
      "employee_last_name": "Smith",
      "employee_emailID": "test-03@test.com"
    }
    Em Payload de saída do conector, o ID da entidade é exibido como saída:
    {
      "employee_id": 3.0
    }
  12. Você pode verificar se a linha foi adicionada à tabela do MySQL. Para conferir essas informações na tabela do MySQL, execute o seguinte comando no cliente MySQL:
    SELECT * FROM employee;
    As linhas da tabela a seguir serão exibidas:
    +-------------+---------------------+--------------------+------------------+
    | employee_id | employee_first_name | employee_last_name | employee_emailID |
    +-------------+---------------------+--------------------+------------------+
    |           1 | Peter               | Dilliard           | test-01@test.com |
    |           2 | Meaghan             | Webb               | test-02@test.com |
    |           3 | Mary                | Smith              | test-03@test.com |
    +-------------+---------------------+--------------------+------------------+
        

Atualizar uma linha em uma tabela

Use a operação de atualização para fazer mudanças nos valores de uma linha da tabela. Por exemplo, é possível usar essa operação para atualizar o ID de e-mail de um funcionário na tabela employee. Para especificar a entidade que você quer atualizar, forneça o ID da entidade usado na operação Get. Também é possível usar o parâmetro Filtro de cláusula para transmitir valores em que filtrar as linhas da tabela. Isso é útil se você quer fazer a mesma mudança em várias linhas com base em critérios de pesquisa específicos.

Para atualizar uma linha da tabela, siga estas etapas para configurar a tarefa Conectores, criada anteriormente:

  1. Clique no elemento de tarefa dos Conectores no designer para conferir o painel de configuração da tarefa.
  2. Clique em Configurar tarefa.

    A caixa de diálogo Configurar conector será exibida.

  3. Na caixa de diálogo Configurar conector da tarefa, na coluna Operação, selecione Atualizar e clique em Concluído.
  4. No painel de configuração de tarefas, em Task Input, clique em Payload de entrada do conector.
  5. Na caixa de diálogo Configurar variável, selecione Usar como entrada para integração e clique em Salvar.
  6. Em seguida, no painel de configuração de tarefas, em Entrada de tarefa, clique em Cláusula de filtro.
  7. Na caixa de diálogo Configurar variável, selecione Usar como entrada para integração e clique em Salvar.
  8. Clique no botão Test na barra de ferramentas do editor de integração.
  9. Mude o valor de Execution Deadline (in minutes), se quiser.
  10. Insira os critérios do filtro. Por exemplo, para encontrar um funcionário com o código de e-mail test-03@test.com, digite:
    employee_emailID="test-03@test.com"
  11. Insira os valores que você quer atualizar. Por exemplo, para atualizar o ID de e-mail de todos os funcionários na tabela employee cujo ID de e-mail atual corresponde à cláusula de filtro test-03@test.com, digite o seguinte JSON:
    {
      "employee_emailID": "msmith@test.com"
    }
  12. Clique em Testar integração.
  13. Quando a integração for concluída, a caixa de diálogo Testar integração exibirá a mensagem Execução de integração concluída. Para validar se a entidade foi atualizada, use a operação Get para conferir os detalhes da entidade especificada.
  14. Você pode verificar se a linha está atualizada na tabela do MySQL. Para conferir essas informações na tabela do MySQL, execute o seguinte comando no cliente MySQL:
    SELECT * FROM employee;
    As linhas da tabela a seguir serão exibidas:
    +-------------+---------------------+--------------------+------------------+
    | employee_id | employee_first_name | employee_last_name | employee_emailID |
    +-------------+---------------------+--------------------+------------------+
    |           1 | Peter               | Dilliard           | test-01@test.com |
    |           2 | Meaghan             | Webb               | test-02@test.com |
    |           3 | Mary                | Smith              | msmith@test.com  |
    +-------------+---------------------+--------------------+------------------+
          

Excluir uma linha de uma tabela

Use a operação de exclusão para excluir uma ou mais linhas da tabela. Informe o ID da entidade ou use a cláusula de filtro para especificar as linhas que você quer excluir. Lembre-se de que, se você usar a cláusula de filtro para especificar os critérios das linhas que quer excluir, será possível excluir várias linhas que correspondam ao filtro especificado. Se você quiser excluir apenas uma linha específica, use o ID da entidade.

Para excluir uma linha da tabela usando o código da entidade, siga as etapas abaixo para configurar a tarefa Conectores que você criou anteriormente:

  1. Clique no elemento de tarefa dos Conectores no designer para conferir o painel de configuração da tarefa.
  2. Clique em Configurar tarefa.

    A caixa de diálogo Configurar conector será exibida.

  3. Na caixa de diálogo Configurar conector da tarefa, na coluna Operação, selecione Excluir e clique em Concluído.
  4. No painel de configuração de tarefas, em Entrada de tarefas, clique em ID da entidade.
  5. Na caixa de diálogo Configurar variável, selecione Usar como entrada para integração e clique em Salvar.
  6. Clique no botão Test na barra de ferramentas do editor de integração.
  7. Mude o valor de Execution Deadline (in minutes), se quiser.
  8. Insira o ID da entidade da linha da tabela que você quer excluir. Insira 3.
  9. Clique em Testar integração.
  10. Quando a integração for concluída, a caixa de diálogo Testar integração exibirá a mensagem Execução de integração concluída. Para validar se a linha da tabela foi excluída, use a operação Get para conferir os detalhes da linha que você excluiu. Isso retornará um erro para o ID da entidade especificada.

    Também é possível usar a operação List e, opcionalmente, fornecer uma cláusula de filtro para as linhas da tabela que você excluiu. Isso retornará a lista de linhas restantes, que pode ser uma lista vazia.

    Por exemplo, se você excluiu a linha da tabela com o ID da entidade 3 e depois especifica a cláusula de filtro employee_emailID="msmith@test.com" ou o ID da entidade 3 para a operação List, os parâmetros de resposta nos registros exibem [].

  11. Você pode verificar se a linha foi excluída da tabela do MySQL. Para verificar isso na tabela MySQL, execute o seguinte comando no seu cliente MySQL:
    SELECT * FROM employee;
    As linhas da tabela a seguir serão exibidas:
    +-------------+---------------------+--------------------+------------------+
    | employee_id | employee_first_name | employee_last_name | employee_emailID |
    +-------------+---------------------+--------------------+------------------+
    |           1 | Peter               | Dilliard           | test-01@test.com |
    |           2 | Meaghan             | Webb               | test-02@test.com |
    +-------------+---------------------+--------------------+------------------+
            

A seguir