Elasticsearch

Il connettore Elasticsearch ti consente di connetterti a un motore di ricerca Elasticsearch ed eseguire le operazioni supportate dal motore di ricerca.

Prima di iniziare

Prima di utilizzare il connettore Elasticsearch, svolgi le seguenti attività:

  • Nel tuo progetto Google Cloud:
    • Assicurati che la connettività di rete sia configurata. Per informazioni sui pattern di rete, consulta Connettività di rete.
    • Concedi il ruolo IAM roles/connectors.admin all'utente che configura il connettore.
    • Concedi i seguenti ruoli IAM all'account di servizio che vuoi utilizzare per il connettore:
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor

      Un account di servizio è un tipo speciale di Account Google destinato a rappresentare un utente "non umano" che deve eseguire l'autenticazione ed essere autorizzato ad accedere ai dati nelle API Google. Se non hai un account di servizio, devi crearne uno. Per maggiori informazioni, consulta Creare un account di servizio.

    • Attiva i seguenti servizi:
      • secretmanager.googleapis.com (API Secret Manager)
      • connectors.googleapis.com (API Connectors)

      Per scoprire come attivare i servizi, consulta Abilitazione dei servizi.

    Se questi servizi o autorizzazioni non sono stati attivati in precedenza per il tuo progetto, ti verrà chiesto di attivarli durante la configurazione del connettore.

  • Per informazioni sull'installazione di Elasticsearch su Linux, consulta Installare Elasticsearch.
  • Per informazioni sulla configurazione di SSL per proteggere Elasticsearch, consulta Configurare SSL.

Configura il connettore

Per configurare il connettore devi creare una connessione all'origine dati (sistema di backend). Una connessione è specifica per un'origine dati. Ciò significa che se hai molte origini dati, devi creare una connessione distinta per ciascuna. Per creare una connessione:

  1. Nella console Cloud, vai alla pagina Connettori di integrazione > Connessioni, quindi seleziona o crea un progetto Google Cloud.

    Vai alla pagina Connessioni

  2. Fai clic su + CREA NUOVO per aprire la pagina Crea connessione.
  3. Nella sezione Località, scegli la località della connessione.
    1. Regione: seleziona una località dall'elenco a discesa.

      Per l'elenco di tutte le regioni supportate, consulta Località.

    2. Fai clic su AVANTI.
  4. Nella sezione Dettagli connessione, completa quanto segue:
    1. Connettore: seleziona Elasticsearch dall'elenco a discesa dei connettori disponibili.
    2. Versione del connettore: seleziona la versione del connettore dall'elenco a discesa delle versioni disponibili.
    3. Nel campo Nome connessione, inserisci un nome per l'istanza di connessione.

      I nomi delle connessioni devono soddisfare i seguenti criteri:

      • I nomi delle connessioni possono contenere lettere, numeri o trattini.
      • Le lettere devono essere minuscole.
      • I nomi delle connessioni devono iniziare con una lettera e terminare con una lettera o un numero.
      • I nomi delle connessioni non possono superare i 49 caratteri.
    4. (Facoltativo) Inserisci una Descrizione per l'istanza di connessione.
    5. Se vuoi, attiva Cloud Logging e poi seleziona un livello di log. Per impostazione predefinita, il livello di log è impostato su Error.
    6. Account di servizio: seleziona un account di servizio con i ruoli richiesti.
    7. (Facoltativo) Configura le impostazioni del nodo di connessione:

      • Numero minimo di nodi: inserisci il numero minimo di nodi di connessione.
      • Numero massimo di nodi: inserisci il numero massimo di nodi di connessione.

      Un nodo è un'unità (o una replica) di una connessione che elabora le transazioni. Per elaborare più transazioni per una connessione sono necessari più nodi e, al contrario, sono necessari meno nodi per elaborare meno transazioni. Per capire in che modo i nodi influiscono sui prezzi dei connettori, consulta Prezzi per i nodi di connessione. Se non inserisci alcun valore, per impostazione predefinita il numero minimo di nodi è impostato su 2 (per una maggiore disponibilità) e il numero massimo di nodi è impostato su 50.

    8. Valutazione lato client: imposta ClientSideEvaluation su true per eseguire la valutazione lato client su oggetti nidificati.
    9. Modello di dati: specifica il modello dei dati da utilizzare durante l'analisi dei documenti Elasticsearch e la generazione dei metadati del database.
    10. Risultati massimi: il numero massimo di risultati totali da restituire da Elasticsearch quando si utilizza l'API Search predefinita.
    11. Utilizza proxy: seleziona questa casella di controllo per configurare un server proxy per la connessione e configura i seguenti valori:
      • Schema di autenticazione proxy: seleziona il tipo di autenticazione per l'autenticazione con il server proxy. Sono supportati i seguenti tipi di autenticazione:
        • Di base: autenticazione HTTP di base.
        • Digest: autenticazione HTTP Digest.
      • Utente proxy: un nome utente da utilizzare per l'autenticazione con il server proxy.
      • Password proxy: il segreto di Secret Manager della password dell'utente.
      • Tipo SSL proxy: il tipo di SSL da utilizzare per la connessione al server proxy. Sono supportati i seguenti tipi di autenticazione:
        • Automatica: impostazione predefinita. Se l'URL è un URL HTTPS, viene utilizzata l'opzione Tunnel. Se l'URL è un URL HTTP, viene utilizzata l'opzione MAI.
        • Sempre: la connessione è sempre abilitata per SSL.
        • Mai: la connessione non è abilitata per SSL.
        • Tunnel: la connessione avviene tramite un proxy di tunneling. Il server proxy apre una connessione all'host remoto e il traffico fluisce avanti e indietro attraverso il proxy.
      • Nella sezione Server proxy, inserisci i dettagli del server proxy.
        1. Fai clic su + Aggiungi destinazione.
        2. Seleziona un Tipo di destinazione.
          • Indirizzo host: specifica il nome host o l'indirizzo IP della destinazione.

            Se vuoi stabilire una connessione privata al tuo sistema di backend:

    12. Se vuoi, fai clic su + AGGIUNGI ETIQUETTA per aggiungere un'etichetta alla connessione sotto forma di coppia chiave/valore.
    13. Fai clic su AVANTI.
  5. Nella sezione Destinazioni, inserisci i dettagli dell'host remoto (sistema di backend) a cui vuoi connetterti.
    1. Tipo di destinazione: seleziona un Tipo di destinazione.
      • Seleziona Indirizzo host dall'elenco per specificare il nome host o l'indirizzo IP della destinazione.
      • Se vuoi stabilire una connessione privata ai tuoi sistemi di backend, seleziona Allegato endpoint dall'elenco, quindi seleziona l'allegato endpoint richiesto dall'elenco Allegato endpoint.

      Se vuoi stabilire una connessione pubblica ai tuoi sistemi di backend con una maggiore sicurezza, puoi prendere in considerazione la configurazione di indirizzi IP statici in uscita per le tue connessioni, quindi configurare le regole del firewall in modo da inserire nella lista consentita solo gli indirizzi IP statici specifici.

      Per inserire destinazioni aggiuntive, fai clic su + AGGIUNGI DESTINAZIONE.

    2. Fai clic su AVANTI.
  6. Nella sezione Autenticazione, inserisci i dettagli di autenticazione.
    1. Seleziona un Tipo di autenticazione e inserisci i dettagli pertinenti.

      La connessione Elasticsearch supporta i seguenti tipi di autenticazione:

      • Anonimo
      • Nome utente e password
    2. Per capire come configurare questi tipi di autenticazione, consulta Configurare l'autenticazione.

    3. Fai clic su AVANTI.
  7. Rivedi: controlla i dettagli di connessione e autenticazione.
  8. Fai clic su Crea.

Configura autenticazione

Inserisci i dettagli in base all'autenticazione che vuoi utilizzare.

  • Anonimo

    Se vuoi utilizzare l'accesso anonimo, seleziona Non disponibile.

  • Nome utente e password
    • Nome utente: nome utente per il connettore
    • Password: il segreto Secret Manager contenente la password associata al connettore.

Esempi di configurazione delle connessioni

Questa sezione elenca i valori di esempio per i vari campi che configuri durante la creazione della connessione a Elasticsearch.

Tipo di connessione SSL

Nome campo Dettagli
Località us-central1
Connettore Elasticsearch
Versione del connettore 1
Nome collegamento elastic-search-service-conn
Abilita Cloud Logging
Account di servizio SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Modello dati Relazionale
Numero minimo di nodi 2
Numero massimo di nodi 50
Attiva SSL
Connessione non sicura dell'archivio attendibilità
Negozio di chiavi
Certificato client CLIENT_CERTIFICATE
Versione secret 1
Chiave privata del client CLIENT_PRIVATE_KEY
Versione secret 1
Tipo di destinazione(server) Indirizzo host
Indirizzo host https://192.0.2.0
Porta 9200
Autenticazione
Password utente
Nome utente NOME UTENTE
Password PASSWORD
Versione secret 4

Tipo di connessione PSC

Nome campo Dettagli
Località us-central1
Connettore Elasticsearch
Versione del connettore 1
Nome collegamento elasticsearch-psc-conn
Abilita Cloud Logging
Account di servizio SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Modello dati Relazionale
Numero minimo di nodi 2
Numero massimo di nodi 50
Tipo di destinazione(server) Indirizzo host
Indirizzo host 192.0.2.0
Porta PORT
Autenticazione
Password utente
Nome utente USERNAME/td>
Password PASSWORD
Versione secret 1

Entità, operazioni e azioni

Tutti i connettori di integrazione forniscono un livello di astrazione per gli oggetti dell'applicazione collegata. Puoi accedere agli oggetti di un'applicazione solo tramite questa astrazione. L'astrazione viene mostrata come entità, operazioni e azioni.

  • Entità : un'entità può essere considerata un oggetto o una raccolta di proprietà nell'applicazione o nel servizio collegato. La definizione di un'entità varia da un connettore all'altro. Ad esempio, in un connettore di database le tabelle sono le entità, in un connettore di file server le cartelle sono le entità e in un connettore di sistema di messaggistica le code sono le entità.

    Tuttavia, è possibile che un connettore non supporti o non abbia entità, nel qual caso l'elenco Entities sarà vuoto.

  • Operazione: un'operazione è l'attività che puoi eseguire su un'entità. Puoi eseguire su un'entità una delle seguenti operazioni:

    La selezione di un'entità dall'elenco disponibile genera un elenco di operazioni disponibili per l'entità. Per una descrizione dettagliata delle operazioni, consulta le operazioni sulle entità dell'attività Connettori. Tuttavia, se un connettore non supporta nessuna delle operazioni sulle entità, queste operazioni non supportate non sono elencate nell'elenco Operations.

  • Azione : un'azione è una funzione di prima classe resa disponibile all'integrazione tramite l'interfaccia del connettore. Un'azione ti consente di apportare modifiche a una o più entità e varia da un connettore all'altro. In genere, un'azione avrà alcuni parametri di input e un parametro di output. Tuttavia, è possibile che un connettore non supporti alcuna azione, nel qual caso l'elenco Actions sarà vuoto.

Limitazioni del sistema

Il connettore Elasticsearch può elaborare 10 transazioni al secondo per nodo e limita le transazioni oltre questo limite. Per impostazione predefinita, Integration Connectors alloca 2 nodi (per una maggiore disponibilità) per una connessione.

Per informazioni sui limiti applicabili a Integration Connectors, vedi Limiti.

Azioni

Questa sezione elenca le azioni supportate dal connettore. Per capire come configurare le azioni, consulta Esempi di azioni.

Azione CreateIndex

Questa azione crea un indice.

Parametri di input dell'azione CreateIndex

Nome parametro Tipo di dati Obbligatorio Descrizione
AliasFilter Stringa No Oggetto DSL di query utilizzato per limitare i documenti a cui può accedere l'alias.
NumberOfShards Stringa No Il numero di shard principali che deve avere l'indice creato.
AliasIsWriteIndex Booleano No Specifica se l'indice dell'alias è scrivibile.
Alias Stringa No Un alias per l'indice.
AliasIndexRouting Stringa No Valore utilizzato per l'alias per instradare le operazioni di indicizzazione a uno specifico shard. Se specificato, sovrascrive il valore di routing per le operazioni di indicizzazione.
Indice Stringa Il nome dell'indice.
NumberOfRoutingShards Stringa No Numero utilizzato internamente da Elasticsearch con il valore di NumberOfShards per instradare i documenti a uno shard principale.
OtherSettings Stringa No Un oggetto JSON di impostazioni. Questa impostazione non può essere utilizzata in combinazione con NumberOfRoutingShards o NumberOfShards.
Mappature Stringa No Un oggetto JSON che specifica la mappatura per l'indice.
AliasIsHidden Booleano No Specifica se l'alias è nascosto. Tutti gli indici dell'alias devono avere lo stesso valore is_hidden.
AliasRouting Stringa No Valore utilizzato per l'alias per instradare le operazioni di indicizzazione e ricerca a uno specifico shard. Può essere sovrascritto da AliasIndexRouting o AliasSearchRouting per determinate operazioni.

Parametri di output dell'azione CreateIndex

Questa azione restituisce lo stato 200 (OK) se l'azione è riuscita.

Per capire come configurare l'azione CreateIndex, consulta Esempi di azioni.

Azione ModifyIndexAliases

Questa azione modifica un alias di indice.

Parametri di input dell'azione ModificaAliasIndice

Nome parametro Tipo di dati Obbligatorio Descrizione
Alias Stringa No Il nome dell'alias. Più alias sono separati da punto e virgola.
Filtro Stringa No Un filtro da utilizzare per creare l'alias. Viene utilizzato il filtro JSON non elaborato utilizzando Query DSL. I filtri multipli sono separati da punto e virgola.
Routing Stringa No Il valore di routing da associare all'alias. I valori di routing multipli sono separati da un punto e virgola.
SearchRouting Stringa No Il valore di routing da associare all'alias per le operazioni di ricerca. I valori di routing della ricerca con più elementi sono separati da punto e virgola.
IndexRouting Stringa No Il valore di routing da associare all'alias per le operazioni di indicizzazione. I valori di routing degli indici multipli sono separati da punto e virgola.
Azione Stringa L'azione da eseguire, ad esempio add, remove o remove_index. Più azioni sono separate da punto e virgola.
Indice Stringa Il nome dell'indice. Più indici sono separati da punto e virgola.

Parametri di output dell'azione ModificaAliasIndice

Questa azione restituisce lo stato 200 (OK) se l'azione è riuscita.

Per capire come configurare l'azione ModifyIndexAliases, consulta Esempi di azioni.

Azione ExecuteCustomQuery

Questa azione ti consente di eseguire una query personalizzata.

Per creare una query personalizzata:

  1. Segui le istruzioni dettagliate per aggiungere un'attività di connettori.
  2. Quando configuri l'attività del connettore, seleziona Azioni nel tipo di azione che vuoi eseguire.
  3. Nell'elenco Azione, seleziona Esegui query personalizzata e poi fai clic su Fine.

    immagine che mostra l'azione di esecuzione di query personalizzate immagine che mostra l'azione di esecuzione di query personalizzate

  4. Espandi la sezione Input attività e segui questi passaggi:
    1. Nel campo Timeout dopo, inserisci il numero di secondi di attesa prima dell'esecuzione della query.

      Valore predefinito: 180 secondi.

    2. Nel campo Numero massimo di righe, inserisci il numero massimo di righe da restituire dal database.

      Valore predefinito: 25.

    3. Per aggiornare la query personalizzata, fai clic su Modifica script personalizzato. Viene visualizzata la finestra di dialogo Editor di script.

      immagine che mostra la query SQL personalizzata immagine che mostra la query SQL personalizzata

    4. Nella finestra di dialogo Editor di script, inserisci la query SQL e fai clic su Salva.

      Puoi utilizzare un punto interrogativo (?) in un'istruzione SQL per rappresentare un singolo parametro che deve essere specificato nell'elenco parametri di ricerca. Ad esempio, la seguente query SQL seleziona tutte le righe della tabella Employees che corrispondono ai valori specificati per la colonna LastName:

      SELECT * FROM Employees where LastName=?

    5. Se hai utilizzato punti interrogativi nella query SQL, devi aggiungere il parametro facendo clic su + Aggiungi nome parametro per ogni punto interrogativo. Durante l'esecuzione dell'integrazione, questi parametri sostituiscono in modo sequenziale i punti interrogativi (?) nella query SQL. Ad esempio, se hai aggiunto tre punti di domanda (?), devi aggiungere tre parametri in ordine di sequenza.

      immagine che mostra add-query-param immagine che mostra add-query-param

      Per aggiungere parametri di ricerca:

      1. Nell'elenco Tipo, seleziona il tipo di dati del parametro.
      2. Nel campo Valore, inserisci il valore del parametro.
      3. Per aggiungere più parametri, fai clic su + Aggiungi parametro di query.

In caso di esecuzione riuscita, questa azione restituisce lo stato 200 (OK) con un corpo di risposta contenente i risultati della query.

Esempi di azioni

Questa sezione descrive come eseguire alcune delle azioni in questo connettore.

Esempio: crea un indice

Questo esempio crea un indice.

  1. Nella finestra di dialogo Configure connector task, fai clic su Actions.
  2. Seleziona l'azione CreateIndex e poi fai clic su Fine.
  3. Nella sezione Input attività dell'attività Connettori, fai clic su connectorInputPayload e poi inserisci un valore simile al seguente nel campo Default Value:
    {
    "Index": "new_index_1"
    }
  4. Se l'azione ha esito positivo, il parametro di risposta connectorOutputPayload della task CreateIndex avrà un valore simile al seguente:

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

Esempio: modifica di un alias di indice

Questo esempio mostra come modificare un alias di indice.

  1. Nella finestra di dialogo Configure connector task, fai clic su Actions.
  2. Seleziona l'azione ModifyIndexAliases e poi fai clic su Fine.
  3. Nella sezione Input attività dell'attività Connettori, fai clic su connectorInputPayload e poi inserisci un valore simile al seguente nel campo Default Value:
    {
    "Action": "remove_index",
    "Index": "postmanindex"
    }
  4. Se l'azione ha esito positivo, il parametro di risposta connectorOutputPayload della task ModifyIndexAliases avrà un valore simile al seguente:

    [{
    }]

Esempi di operazioni sulle entità

Questa sezione mostra come eseguire alcune delle operazioni sulle entità in questo connettore.

Esempio: elenca tutti i record

Questo esempio elenca tutti i record nell'entità Demoindex.

  1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
  2. Seleziona Demoindex dall'elenco Entity.
  3. Seleziona l'operazione List e poi fai clic su Fine.
  4. Se vuoi, nella sezione Input dell'attività dell'attività Connettori, puoi filtrare il set di risultati specificando una clausola di filtro. Specifica sempre il valore della clausola di filtro tra virgolette singole (').

Esempio: ottieni un record da un'entità

Questo esempio recupera un record con l'ID specificato dall'entità Demoindex.

  1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
  2. Seleziona Demoindex dall'elenco Entity.
  3. Seleziona l'operazione Get e poi fai clic su Fine.
  4. Nella sezione Input dell'attività dell'attività Connettori, fai clic su EntityId e poi inserisci 23 nel campo Valore predefinito.

    In questo caso, 23 è un ID record univoco nell'entità Demoindex.

Esempio: crea un record in un'entità

Questo esempio crea un record nell'entità Demoindex.

  1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
  2. Seleziona Demoindex dall'elenco Entity.
  3. Seleziona l'operazione Create e fai clic su Fine.
  4. Nella sezione Input attività dell'attività Connettori, fai clic su connectorInputPayload e poi inserisci un valore simile al seguente nel campo Default Value:
    {
    "message": "GET /search HTTP/1.1 200 1070000",
    "@timestamp": "2099-11-15 13:12:00.0"
    }

    Se l'integrazione è andata a buon fine, il campo connectorOutputPayload dell'attività del connettore avrà un valore simile al seguente:

    [{
    "_id": "23"
    }]

Esempio: aggiorna un record

Questo esempio aggiorna il record con l'ID specificato nell'entità Demoindex.

  1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
  2. Seleziona Demoindex dall'elenco Entity.
  3. Seleziona l'operazione Update e fai clic su Fine.
  4. Nella sezione Input attività dell'attività Connettori, fai clic su connectorInputPayload e poi inserisci un valore simile al seguente nel Default Value campo:
    {
    "message": "GET /search HTTP/1.1 200 1070000",
    "@timestamp": "2099-11-15 13:12:00.0",
    "name": "GoogleCloud_Update_docs",
    "price": 10.0}
  5. Fai clic su entityId e inserisci 23 nel campo Valore predefinito.

    Se l'integrazione è andata a buon fine, il campo connectorOutputPayload dell'attività del connettore avrà un valore simile al seguente:

    [{
    "_id": "23"
    }]

Esempio: elimina un record da un'entità

Questo esempio elimina il record con l'ID specificato nell'entità Demoindex.

  1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
  2. Seleziona Demoindex dall'elenco Entity.
  3. Seleziona l'operazione Delete e fai clic su Fine.
  4. Nella sezione Input attività dell'attività Connettori, fai clic su entityId e poi inserisci pcqT4wB4uQNUCuamh4N nel campo Valore predefinito.

Utilizzare Terraform per creare connessioni

Puoi utilizzare la risorsa Terraform per creare una nuova connessione.

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

Per visualizzare un modello Terraform di esempio per la creazione di una connessione, consulta il modello di esempio.

Quando crei questa connessione utilizzando Terraform, devi impostare le seguenti variabili nel file di configurazione Terraform:

Nome parametro Tipo di dati Obbligatorio Descrizione
client_side_evaluation BOOLEANO Falso Imposta ClientSideEvaluation su true per eseguire la valutazione lato client su oggetti nidificati.
data_model ENUM Falso Specifica il modello dei dati da utilizzare durante l'analisi dei documenti Elasticsearch e la generazione dei metadati del database. I valori supportati sono: Document, FlattenedDocuments, Relational
max_results STRING Falso Il numero massimo di risultati totali da restituire da Elasticsearch quando si utilizza l'API Search predefinita.
livello di dettaglio STRING Falso Livello di dettaglio per la connessione, da 1 a 5. Un livello di dettaglio più elevato registrerà tutti i dettagli della comunicazione (richiesta,risposta e certificati SSL).
proxy_enabled BOOLEANO Falso Seleziona questa casella di controllo per configurare un server proxy per la connessione.
proxy_auth_scheme ENUM Falso Il tipo di autenticazione da utilizzare per l'autenticazione al proxy ProxyServer. I valori supportati sono: BASIC, DIGEST, NONE
proxy_user STRING Falso Un nome utente da utilizzare per l'autenticazione al proxy ProxyServer.
proxy_password SEGRETO Falso Una password da utilizzare per l'autenticazione al proxy ProxyServer.
proxy_ssltype ENUM Falso Il tipo di SSL da utilizzare per la connessione al proxy ProxyServer. I valori supportati sono: AUTO, ALWAYS, NEVER, TUNNEL

Utilizzare la connessione Elasticsearch in un'integrazione

Una volta creata, la connessione diventa disponibile sia nell'Apigee Integration sia nell'Application Integration. Puoi utilizzare la connessione in un'integrazione tramite l'attività Connettori.

  • Per informazioni su come creare e utilizzare l'attività Connectors in Apigee Integration, consulta Attività Connectors.
  • Per informazioni su come creare e utilizzare l'attività Connettori in Application Integration, consulta Attività Connettori.

Ricevere assistenza dalla community Google Cloud

Puoi pubblicare le tue domande e discutere di questo connettore nella community Google Cloud ai forum di Cloud.

Passaggi successivi