Elasticsearch

O conetor do Elasticsearch permite-lhe estabelecer ligação a um motor de pesquisa do Elasticsearch e realizar as operações do motor de pesquisa suportadas.

Antes de começar

Antes de usar o conetor do Elasticsearch, faça as seguintes tarefas:

  • No seu projeto do Google Cloud:
    • Certifique-se de que a conetividade de rede está configurada. Para obter informações sobre padrões de rede, consulte o artigo Conetividade de rede.
    • Conceda a função IAM roles/connectors.admin ao utilizador que está a configurar o conetor.
    • Conceda as seguintes funções de IAM à conta de serviço que quer usar para o conector:
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor

      Uma conta de serviço é um tipo especial de Conta Google destinada a representar um utilizador não humano que precisa de autenticação e autorização para aceder a dados nas APIs Google. Se não tiver uma conta de serviço, tem de criar uma. O conector e a conta de serviço têm de pertencer ao mesmo projeto. Para mais informações, consulte Criar uma conta de serviço.

    • Ative os seguintes serviços:
      • secretmanager.googleapis.com (Secret Manager API)
      • connectors.googleapis.com (API Connectors)

      Para saber como ativar serviços, consulte o artigo Ativar serviços.

    Se estes serviços ou autorizações não tiverem sido ativados anteriormente para o seu projeto, é-lhe pedido que os ative quando configurar o conector.

  • Para obter informações sobre a instalação do Elasticsearch no Linux, consulte o artigo Instale o Elasticsearch.
  • Para obter informações sobre a configuração do SSL para proteger o Elasticsearch, consulte o artigo Configurar SSL.

Configure o conetor

Uma associação é específica de uma origem de dados. Isto significa que, se tiver muitas origens de dados, tem de criar uma associação separada para cada origem de dados. Para criar uma associação, faça o seguinte:

  1. Na Cloud Console, aceda à página Integration Connectors > Ligações e, de seguida, selecione ou crie um projeto do Google Cloud.

    Aceda à página Ligações

  2. Clique em + CRIAR NOVO para abrir a página Criar associação.
  3. Na secção Localização, escolha a localização para a ligação.
    1. Região: selecione uma localização na lista pendente.

      Para ver a lista de todas as regiões suportadas, consulte o artigo Localizações.

    2. Clique em SEGUINTE.
  4. Na secção Detalhes da associação, conclua o seguinte:
    1. Conetor: selecione Elasticsearch na lista pendente de conetores disponíveis.
    2. Versão do conetor: selecione a versão do conetor na lista pendente de versões disponíveis.
    3. No campo Nome da ligação, introduza um nome para a instância de ligação.

      Os nomes das associações têm de cumprir os seguintes critérios:

      • Os nomes das associações podem usar letras, números ou hífenes.
      • As letras têm de ser minúsculas.
      • Os nomes das associações têm de começar com uma letra e terminar com uma letra ou um número.
      • Os nomes das associações não podem exceder 49 carateres.
    4. Opcionalmente, introduza uma Descrição para a instância de associação.
    5. Opcionalmente, ative o Registo na nuvem e, em seguida, selecione um nível de registo. Por predefinição, o nível do registo está definido como Error.
    6. Conta de serviço: selecione uma conta de serviço que tenha as funções necessárias.
    7. Opcionalmente, configure as definições do nó de associação:

      • Número mínimo de nós: introduza o número mínimo de nós de ligação.
      • Número máximo de nós: introduza o número máximo de nós de ligação.

      Um nó é uma unidade (ou uma réplica) de uma ligação que processa transações. São necessários mais nós para processar mais transações para uma ligação e, inversamente, são necessários menos nós para processar menos transações. Para compreender como os nós afetam os preços dos conectores, consulte o artigo Preços dos nós de ligação. Se não introduzir valores, por predefinição, os nós mínimos são definidos como 2 (para uma melhor disponibilidade) e os nós máximos são definidos como 50.

    8. Avaliação do lado do cliente: defina ClientSideEvaluation como verdadeiro para realizar a avaliação do lado do cliente em objetos aninhados.
    9. Modelo de dados: especifica o modelo de dados a usar quando analisa documentos do Elasticsearch e gera os metadados da base de dados.
    10. Resultados máximos: o número máximo de resultados totais a devolver do Elasticsearch quando usar a API Search predefinida.
    11. (Opcional) Na secção Definições avançadas, selecione a caixa de verificação Usar proxy para configurar um servidor proxy para a ligação e configurar os seguintes valores:
      • Esquema de autenticação de proxy: selecione o tipo de autenticação para autenticar com o servidor proxy. Os seguintes tipos de autenticação são suportados:
        • Básica: autenticação HTTP básica.
        • Resumo: autenticação HTTP de resumo.
      • Utilizador do proxy: um nome de utilizador a ser usado para autenticação com o servidor proxy.
      • Palavra-passe do proxy: o segredo do Secret Manager da palavra-passe do utilizador.
      • Tipo de SSL do proxy: o tipo de SSL a usar quando se liga ao servidor proxy. Os seguintes tipos de autenticação são suportados:
        • Automático: predefinição. Se o URL for um URL HTTPS, é usada a opção Túnel. Se o URL for um URL HTTP, é usada a opção NUNCA.
        • Sempre: a ligação está sempre ativada com SSL.
        • Nunca: a ligação não tem o SSL ativado.
        • Túnel: a ligação é feita através de um proxy de túnel. O servidor proxy abre uma ligação ao anfitrião remoto e o tráfego flui em ambas as direções através do proxy.
      • Na secção Servidor proxy, introduza os detalhes do servidor proxy.
        1. Clique em + Adicionar destino.
        2. Selecione um Tipo de destino.
          • Endereço do anfitrião: especifique o nome do anfitrião ou o endereço IP do destino.

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

    12. Opcionalmente, clique em + ADICIONAR ETIQUETA para adicionar uma etiqueta à associação sob a forma de um par chave/valor.
    13. Clique em SEGUINTE.
  5. Na secção Destinos, introduza os detalhes do anfitrião remoto (sistema de back-end) ao qual quer estabelecer ligação.
    1. Tipo de destino: selecione um Tipo de destino.
      • Para especificar o nome de anfitrião ou o endereço IP de destino, selecione Endereço do anfitrião e introduza o endereço no campo Anfitrião 1.
      • Para estabelecer uma ligação privada, selecione Anexo do ponto final e escolha o anexo necessário na lista Anexo do ponto final.

      Se quiser estabelecer uma ligação pública aos seus sistemas de back-end com segurança adicional, pode considerar configurar endereços IP estáticos de saída para as suas ligações e, em seguida, configurar as regras da firewall para permitir apenas os endereços IP estáticos específicos.

      Para introduzir destinos adicionais, clique em +ADICIONAR DESTINO.

    2. Clique em SEGUINTE.
  6. Na secção Autenticação, introduza os detalhes de autenticação.
    1. Selecione um Tipo de autenticação e introduza os detalhes relevantes.

      Os seguintes tipos de autenticação são suportados pela ligação do Elasticsearch:

      • Anónimo
      • Nome de utilizador e palavra-passe
    2. Para saber como configurar estes tipos de autenticação, consulte o artigo Configurar autenticação.

    3. Clique em SEGUINTE.
  7. Rever: reveja os detalhes da ligação e da autenticação.
  8. Clique em Criar.

Configure a autenticação

Introduza os detalhes com base na autenticação que quer usar.

  • Anónimo

    Se quiser usar o início de sessão anónimo, selecione Não disponível.

  • Nome de utilizador e palavra-passe
    • Nome de utilizador: nome de utilizador do conetor
    • Palavra-passe: Secret do Secret Manager que contém a palavra-passe associada ao conector.

Exemplos de configuração de ligação

Esta secção apresenta os valores de exemplo para os vários campos que configura quando cria a ligação do Elasticsearch.

Tipo de ligação SSL

Nome do campo Detalhes
Localização us-central1
Conetor Elasticsearch
Versão do conetor 1
Nome da ligação elastic-search-service-conn
Ative o Cloud Logging Sim
Conta de serviço SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Modelo de dados Relacionais
Número mínimo de nós 2
Número máximo de nós 50
Ativar SSL Sim
Ligação insegura do repositório fidedigno Sim
Loja de chaves Sim
Certificado de cliente CLIENT_CERTIFICATE
Versão do Secret 1
Chave privada do cliente CLIENT_PRIVATE_KEY
Versão do Secret 1
Tipo de destino(servidor) Morada do anfitrião
Morada do anfitrião https://192.0.2.0
Porta 9200
Autenticação Sim
Palavra-passe do utilizador Sim
Nome de utilizador NOME DE UTILIZADOR
Palavra-passe PASSWORD
Versão do Secret 4

Tipo de ligação PSC

Nome do campo Detalhes
Localização us-central1
Conetor Elasticsearch
Versão do conetor 1
Nome da ligação elasticsearch-psc-conn
Ative o Cloud Logging Sim
Conta de serviço SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Modelo de dados Relacionais
Número mínimo de nós 2
Número máximo de nós 50
Tipo de destino(servidor) Morada do anfitrião
Morada do anfitrião 192.0.2.0
Porta PORT
Autenticação Sim
Palavra-passe do utilizador Sim
Nome de utilizador USERNAME/td>
Palavra-passe PASSWORD
Versão do Secret 1

Entidades, operações e ações

Todos os conetores de integração oferecem uma camada de abstração para os objetos da aplicação ligada. Só pode aceder aos objetos de uma aplicação através desta abstração. A abstração é exposta como entidades, operações e ações.

  • Entidade: pode considerar uma entidade como um objeto ou uma coleção de propriedades na aplicação ou no serviço associado. A definição de uma entidade difere de um conetor para um conetor. Por exemplo, num conetor de base de dados, as tabelas são as entidades. Num conetor de servidor de ficheiros, as pastas são as entidades. Num conetor de sistema de mensagens, as filas são as entidades.

    No entanto, é possível que um conector não suporte ou não tenha entidades, caso em que a lista Entities estará vazia.

  • Operação: uma operação é a atividade que pode realizar numa entidade. Pode realizar qualquer uma das seguintes operações numa entidade:

    Selecionar uma entidade na lista disponível gera uma lista de operações disponíveis para a entidade. Para uma descrição detalhada das operações, consulte as operações de entidades da tarefa de conectores. No entanto, se um conector não suportar nenhuma das operações de entidades, essas operações não suportadas não são apresentadas na lista Operations.

  • Ação: uma ação é uma função de primeira classe que é disponibilizada à integração através da interface do conetor. Uma ação permite-lhe fazer alterações a uma ou mais entidades e varia de conetor para conetor. Normalmente, uma ação tem alguns parâmetros de entrada e um parâmetro de saída. No entanto, é possível que um conector não suporte nenhuma ação, caso em que a lista Actions está vazia.

Limitações do sistema

O conetor do Elasticsearch pode processar 10 transações por segundo, por , e limita todas as transações que excedam este limite. Por predefinição, os Integration Connectors atribuem 2 nós (para uma melhor disponibilidade) a uma ligação.

Para informações sobre os limites aplicáveis aos Integration Connectors, consulte Limites.

Ações

Esta secção apresenta as ações suportadas pelo conetor. Para compreender como configurar as ações, consulte os exemplos de ações.

Ação CreateIndex

Esta ação cria um índice.

Parâmetros de entrada da ação CreateIndex

Nome do parâmetro Tipo de dados Obrigatória Descrição
AliasFilter String Não Objeto Query DSL usado para limitar os documentos aos quais o alias pode aceder.
NumberOfShards String Não O número de fragmentos primários que o índice criado deve ter.
AliasIsWriteIndex Booleano Não Especifica se o índice de alias é gravável.
Alias String Não Um alias para o índice.
AliasIndexRouting String Não Valor usado para o alias para encaminhar operações de indexação para um fragmento específico. Se especificado, este valor substitui o valor de encaminhamento para operações de indexação.
Índice String Sim O nome do índice.
NumberOfRoutingShards String Não Número usado internamente pelo Elasticsearch com o valor de NumberOfShards para encaminhar documentos para um fragmento principal.
OtherSettings String Não Um objeto JSON de definições. Não é possível usar esta definição em conjunto com NumberOfRoutingShards ou NumberOfShards.
Mapeamentos String Não Um objeto JSON que especifica o mapeamento para o índice.
AliasIsHidden Booleano Não Especifica se o alias está oculto. Todos os índices do alias têm de ter o mesmo valor is_hidden.
AliasRouting String Não Valor usado para o alias para encaminhar operações de indexação e pesquisa para um fragmento específico. Pode ser substituído por AliasIndexRouting ou AliasSearchRouting para determinadas operações.

Parâmetros de saída da ação CreateIndex

Esta ação devolve o estado 200 (OK) se for bem-sucedida.

Para compreender como configurar a ação CreateIndex, consulte os exemplos de ações.

Ação ModifyIndexAliases

Esta ação modifica um alias de índice.

Parâmetros de entrada da ação ModifyIndexAliases

Nome do parâmetro Tipo de dados Obrigatória Descrição
Alias String Não O nome do alias. Os vários alias estão separados por ponto e vírgula.
Filtro String Não Um filtro a usar ao criar o alias. Este usa o filtro JSON não processado através do DSL de consultas. Os vários filtros estão separados por ponto e vírgula.
Encaminhamento String Não O valor de encaminhamento a associar ao alias. Vários valores de encaminhamento estão separados por ponto e vírgula.
SearchRouting String Não O valor de encaminhamento a associar ao alias para operações de pesquisa. Vários valores de encaminhamento de pesquisa estão separados por ponto e vírgula.
IndexRouting String Não O valor de encaminhamento a associar ao alias para operações de indexação. Vários valores de encaminhamento de índice estão separados por ponto e vírgula.
Ação String Sim A ação a realizar, como add, remove ou remove_index. As várias ações estão separadas por ponto e vírgula.
Índice String Sim O nome do índice. Os vários índices estão separados por ponto e vírgula.

Parâmetros de saída da ação ModifyIndexAliases

Esta ação devolve o estado 200 (OK) se for bem-sucedida.

Para compreender como configurar a ação ModifyIndexAliases, consulte os exemplos de ações.

Ação ExecuteCustomQuery

Esta ação permite-lhe executar uma consulta personalizada.

Para criar uma consulta personalizada, siga estes passos:

  1. Siga as instruções detalhadas para adicionar uma tarefa de conetores.
  2. Quando configurar a tarefa do conetor, no tipo de ação que quer realizar, selecione Ações.
  3. Na lista Ação, selecione Executar consulta personalizada e, de seguida, clique em Concluído.

    Imagem que mostra a ação execute-custom-query Imagem que mostra a ação execute-custom-query

  4. Expanda a secção Entrada de tarefas e, de seguida, faça o seguinte:
    1. No campo Tempo limite após, introduza o número de segundos a aguardar até que a consulta seja executada.

      Valor predefinido: 180 segundos.

    2. No campo Número máximo de linhas, introduza o número máximo de linhas a devolver da base de dados.

      Valor predefinido: 25.

    3. Para atualizar a consulta personalizada, clique em Editar script personalizado. É apresentada a caixa de diálogo Editor de scripts.

      imagem a mostrar custom-sql-query imagem a mostrar custom-sql-query

    4. Na caixa de diálogo Editor de scripts, introduza a consulta SQL e clique em Guardar.

      Pode usar um ponto de interrogação (?) numa declaração SQL para representar um único parâmetro que tem de ser especificado na lista de parâmetros de consulta. Por exemplo, a seguinte consulta SQL seleciona todas as linhas da tabela Employees que correspondem aos valores especificados para a coluna LastName:

      SELECT * FROM Employees where LastName=?

    5. Se usou pontos de interrogação na sua consulta SQL, tem de adicionar o parâmetro clicando em + Adicionar nome do parâmetro para cada ponto de interrogação. Durante a execução da integração, estes parâmetros substituem os pontos de interrogação (?) na consulta SQL sequencialmente. Por exemplo, se adicionou três pontos de interrogação (?), tem de adicionar três parâmetros por ordem de sequência.

      imagem que mostra add-query-param imagem que mostra add-query-param

      Para adicionar parâmetros de consulta, faça o seguinte:

      1. Na lista Tipo, selecione o tipo de dados do parâmetro.
      2. No campo Valor, introduza o valor do parâmetro.
      3. Para adicionar vários parâmetros, clique em + Adicionar parâmetro de consulta.
    6. A ação Executar consulta personalizada não suporta variáveis de matriz.

Após a execução bem-sucedida, esta ação devolve o estado 200 (OK) com um corpo de resposta que tem os resultados da consulta.

Exemplos de ações

Esta secção descreve como realizar algumas das ações neste conector.

Exemplo: crie um índice

Este exemplo cria um índice.

  1. Na caixa de diálogo Configure connector task, clique em Actions.
  2. Selecione a ação CreateIndex e, de seguida, clique em Concluído.
  3. Na secção Entrada da tarefa da tarefa Conetores, clique em connectorInputPayload e, de seguida, introduza um valor semelhante ao seguinte no campo Default Value:
    {
    "Index": "new_index_1"
    }
  4. Se a ação for bem-sucedida, o parâmetro de resposta da tarefa terá um valor semelhante ao seguinte:CreateIndexconnectorOutputPayload

    [{
    "CompletedBeforeTimeout": "true",
    "ShardsAcknowledged": "true",
    "IndexName": "new_index_1"
    }]

Exemplo: modifique um alias de índice

Este exemplo mostra como modificar um alias de índice.

  1. Na caixa de diálogo Configure connector task, clique em Actions.
  2. Selecione a ação ModifyIndexAliases e, de seguida, clique em Concluído.
  3. Na secção Entrada da tarefa da tarefa Conetores, clique em connectorInputPayload e, de seguida, introduza um valor semelhante ao seguinte no campo Default Value:
    {
    "Action": "remove_index",
    "Index": "postmanindex"
    }
  4. Se a ação for bem-sucedida, o parâmetro de resposta da tarefa terá um valor semelhante ao seguinte:ModifyIndexAliasesconnectorOutputPayload

    [{
    }]

Exemplos de operações de entidades

Esta secção mostra como realizar algumas das operações de entidades neste conector.

Exemplo: lista todos os registos

Este exemplo apresenta todos os registos na entidade Demoindex.

  1. Na caixa de diálogo Configure connector task, clique em Entities.
  2. Selecione Demoindex na lista Entity.
  3. Selecione a operação List e, de seguida, clique em Concluído.
  4. Opcionalmente, na secção Entrada de tarefas da tarefa Conectores, pode filtrar o conjunto de resultados especificando uma cláusula de filtro. Especifique sempre o valor da cláusula de filtro entre aspas simples (').

Exemplo: obter um registo de uma entidade

Este exemplo obtém um registo com o ID especificado da entidade Demoindex.

  1. Na caixa de diálogo Configure connector task, clique em Entities.
  2. Selecione Demoindex na lista Entity.
  3. Selecione a operação Get e, de seguida, clique em Concluído.
  4. Na secção Entrada de tarefas da tarefa Conetores, clique em EntityId e, de seguida, introduza 23 no campo Valor predefinido.

    Aqui, 23 é um ID de registo exclusivo na entidade Demoindex.

Exemplo: crie um registo numa entidade

Este exemplo cria um registo na entidade Demoindex.

  1. Na caixa de diálogo Configure connector task, clique em Entities.
  2. Selecione Demoindex na lista Entity.
  3. Selecione a operação Create e, de seguida, clique em Concluído.
  4. Na secção Entrada da tarefa da tarefa Conetores, clique em connectorInputPayload e, de seguida, introduza um valor semelhante ao seguinte no campo Default Value:
    {
    "message": "GET /search HTTP/1.1 200 1070000",
    "@timestamp": "2099-11-15 13:12:00.0"
    }

    Se a integração for bem-sucedida, o campo connectorOutputPayload da tarefa do conector tem um valor semelhante ao seguinte:

    [{
    "_id": "23"
    }]

Exemplo: atualize um registo

Este exemplo atualiza o registo com o ID especificado na entidade Demoindex.

  1. Na caixa de diálogo Configure connector task, clique em Entities.
  2. Selecione Demoindex na lista Entity.
  3. Selecione a operação Update e, de seguida, clique em Concluído.
  4. Na secção Entrada da tarefa da tarefa Conetores, clique em connectorInputPayload e, de seguida, introduza um valor semelhante ao seguinte no campo Default Value:
    {
    "message": "GET /search HTTP/1.1 200 1070000",
    "@timestamp": "2099-11-15 13:12:00.0",
    "name": "GoogleCloud_Update_docs",
    "price": 10.0}
  5. Clique em entityId e, de seguida, introduza 23 no campo Valor predefinido.

    Se a integração for bem-sucedida, o campo connectorOutputPayload da tarefa do conector tem um valor semelhante ao seguinte:

    [{
    "_id": "23"
    }]

Exemplo: elimine um registo de uma entidade

Este exemplo elimina o registo com o ID especificado na entidade Demoindex.

  1. Na caixa de diálogo Configure connector task, clique em Entities.
  2. Selecione Demoindex na lista Entity.
  3. Selecione a operação Delete e, de seguida, clique em Concluído.
  4. Na secção Entrada de tarefas da tarefa Conetores, clique em entityId e, de seguida, introduza pcqT4wB4uQNUCuamh4N no campo Valor predefinido.

Crie ligações com o Terraform

Pode usar o recurso do Terraform para criar uma nova associação.

Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.

Para ver um modelo do Terraform de exemplo para a criação de ligações, consulte o modelo de exemplo.

Quando criar esta associação através do Terraform, tem de definir as seguintes variáveis no ficheiro de configuração do Terraform:

Nome do parâmetro Tipo de dados Obrigatória Descrição
client_side_evaluation BOOLEAN Falso Defina ClientSideEvaluation como verdadeiro para realizar a avaliação do lado do cliente em objetos aninhados.
data_model ENUM Falso Especifica o modelo de dados a usar quando analisar documentos do Elasticsearch e gerar os metadados da base de dados. Os valores suportados são: Document, FlattenedDocuments e Relational
max_results STRING Falso O número máximo de resultados totais a devolver do Elasticsearch quando usa a API Search predefinida.
verbosidade STRING Falso Nível de verbosidade para a ligação, varia de 1 a 5. Um nível de detalhe mais elevado regista todos os detalhes de comunicação (pedido,resposta e certificados SSL).
proxy_enabled BOOLEAN Falso Selecione esta caixa de verificação para configurar um servidor proxy para a ligação.
proxy_auth_scheme ENUM Falso O tipo de autenticação a usar para autenticar no proxy ProxyServer. Os valores suportados são: BASIC, DIGEST, NONE
proxy_user STRING Falso Um nome de utilizador a ser usado para autenticar no proxy ProxyServer.
proxy_password SECRET Falso Uma palavra-passe a usar para autenticar no proxy ProxyServer.
proxy_ssltype ENUM Falso O tipo de SSL a usar quando se liga ao proxy ProxyServer. Os valores suportados são: AUTO, ALWAYS, NEVER, TUNNEL

Use a ligação do Elasticsearch numa integração

Depois de criar a ligação, esta fica disponível no Apigee Integration e no Application Integration. Pode usar a ligação numa integração através da tarefa Conectores.

  • Para compreender como criar e usar a tarefa Connectors no Apigee Integration, consulte o artigo Tarefa Connectors.
  • Para compreender como criar e usar a tarefa Connectors na integração de aplicações, consulte o artigo Tarefa Connectors.

Obtenha ajuda da comunidade do Google Cloud

Pode publicar as suas perguntas e discutir este conector na comunidade do Google Cloud nos Fóruns do Cloud.

O que se segue?