PostgreSQL

Il tipo di connettore PostgreSQL ti consente di inserire, leggere, aggiornare ed eliminare righe in un database PostgreSQL.

Versioni supportate

PostgreSQL versione 7.4 e successive

Prima di iniziare

Prima di utilizzare il connettore PostgreSQL, esegui 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 al 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 di Google. Se non hai un account di servizio, devi crearne uno. Per maggiori informazioni, vedi Creare un service account.

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

      Per capire come abilitare i servizi, consulta Abilitazione dei servizi.

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

Configura il connettore

Una connessione è specifica per un'origine dati. Ciò significa che se hai molte origini dati, devi creare una connessione separata per ciascuna origine dati. Per creare una connessione:

  1. Nella console Cloud, vai alla pagina Integration Connectors > Connessioni e poi 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à per la 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 PostgreSQL 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 contenere più di 49 caratteri.
    4. (Facoltativo) Inserisci una Descrizione per l'istanza di connessione.
    5. (Facoltativo) Abilita Cloud Logging, quindi seleziona un livello di log. Per impostazione predefinita, il livello di log è impostato su Error.
    6. Service Account: 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. Sono necessari più nodi per elaborare più transazioni per una connessione e, viceversa, sono necessari meno nodi per elaborare meno transazioni. Per capire in che modo i nodi influiscono sui prezzi dei connettori, consulta la sezione Prezzi dei nodi di connessione. Se non inserisci alcun valore, per impostazione predefinita i nodi minimi sono impostati su 2 (per una migliore disponibilità) e i nodi massimi su 50.

    8. Nome database: il nome del database PostgreSQL a cui connettersi.
    9. (Facoltativo) Nella sezione Impostazioni avanzate, seleziona la casella di controllo Usa proxy per configurare un server proxy per la connessione e configura i seguenti valori:
      • Proxy Auth Scheme: seleziona il tipo di autenticazione per l'autenticazione con il server proxy. Sono supportati i seguenti tipi di autenticazione:
        • Basic: 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 secret di Secret Manager della password dell'utente.
      • Tipo di 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 NEVER.
        • 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 scorre 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:

    10. (Facoltativo) Fai clic su + Aggiungi etichetta per aggiungere un'etichetta alla connessione sotto forma di coppia chiave/valore.
    11. Se vuoi utilizzare SSL, seleziona Abilita SSL. Vengono visualizzati i dettagli della configurazione SSL.
      1. Seleziona un tipo di negozio attendibile. Può essere Pubblico, Privato o Connessione non sicura.
      2. Seleziona i certificati visualizzati in base alla selezione dell'archivio attendibile.
      3. Se utilizzi mTLS, seleziona i certificati dell'archivio chiavi nella sezione Archivio chiavi.
    12. 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.
      • Per specificare il nome host o l'indirizzo IP di destinazione, seleziona Indirizzo host e inserisci l'indirizzo nel campo Host 1.
      • Per stabilire una connessione privata, seleziona Collegamento endpoint e scegli il collegamento richiesto dall'elenco Collegamento endpoint.

      Se vuoi stabilire una connessione pubblica ai tuoi sistemi di backend con maggiore sicurezza, puoi valutare la possibilità di configurare indirizzi IP statici in uscita per le tue connessioni e poi configurare le regole del firewall in modo da consentire solo gli indirizzi IP statici specifici.

      Per inserire altre destinazioni, 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 PostgreSQL supporta i seguenti tipi di autenticazione:

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

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

Configura l'autenticazione

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

  • Nome utente e password
    • Nome utente: il nome utente Postgresql da utilizzare per la connessione.
    • Password: secret di Secret Manager contenente la password associata al nome utente Postgresql.

Entità, operazioni e azioni

Tutti i connettori di integrazione forniscono un livello di astrazione per gli oggetti dell'applicazione connessa. Puoi accedere agli oggetti di un'applicazione solo tramite questa astrazione. L'astrazione ti 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 connesso. 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 del file server, le cartelle sono le entità e in un connettore del 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 una delle seguenti operazioni su un'entità:

    Selezionando un'entità dall'elenco disponibile, viene generato 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 alcuna delle operazioni sulle entità, queste operazioni non supportate non sono elencate nell'elenco Operations.

  • Azione: un'azione è una funzione di prima classe resa disponibile per l'integrazione tramite l'interfaccia del connettore. Un'azione ti consente di apportare modifiche a una o più entità e varia da connettore a connettore. In genere, un'azione ha 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 di sistema

Il connettore PostgreSQL può elaborare 9 transazioni al secondo per nodo e limita le transazioni oltre questo limite. Per impostazione predefinita, Integration Connectors alloca due nodi (per una migliore disponibilità) per una connessione.

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

Tipi di dati supportati

Di seguito sono riportati i tipi di dati supportati per questo connettore:

  • BIGINT
  • BINARY
  • BIT
  • BOOLEANO
  • CHAR
  • DATA
  • DECIMALE
  • DOUBLE
  • FLOAT
  • INTEGER
  • LONGN VARCHAR
  • LONG VARCHAR
  • NCHAR
  • NUMERIC
  • NVARCHAR
  • REAL
  • SMALL INT
  • TEMPO
  • TIMESTAMP
  • TINY INT
  • VARBINARY
  • VARCHAR

Creare connessioni utilizzando Terraform

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 della connessione, consulta 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
database_name STRING Vero Il nome del database PostgreSQL a cui connettersi.
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 SECRET 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

Azioni

Questo connettore supporta l'esecuzione delle seguenti azioni:

  • Funzioni e stored procedure definite dall'utente. Se nel backend sono presenti stored procedure e funzioni, queste vengono elencate nella colonna Actions della finestra di dialogo Configure connector task.
  • Query SQL personalizzate. Per eseguire query SQL personalizzate, il connettore fornisce l'azione Esegui 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, quindi fai clic su Fine.

      Immagine che mostra execute-custom-query-action Immagine che mostra execute-custom-query-action

    4. Espandi la sezione Input attività e poi 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. Si apre la finestra di dialogo Editor di script.

        Immagine che mostra custom-sql-query Immagine che mostra custom-sql-query

      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 sequenza i punti interrogativi (?) nella query SQL. Ad esempio, se hai aggiunto tre punti interrogativi (?), 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.
        Per una query complessa, utilizza $1 anziché ? nella tua query. Di seguito è riportato un esempio di query che utilizza $1:
        SELECT
        od.order_number,
        od.total_amount,
        COALESCE(json_agg( json_build_object( 'item_name',
              oid.item_name, 'item_quantity', oid.item_quantity,
              'item_price', oid.item_price ) ) FILTER (
        WHERE
          oid.order_number IS NOT NULL), '[]') AS order_items,
          COALESCE(json_agg( json_build_object( 'discount_type',
          odd.discount_type, 'discount_value', odd.discount_value ) ) FILTER (
        WHERE
            oid.order_number IS NOT NULL), '[]') AS order_discounts
        FROM
          order_details od
        LEFT JOIN
          order_items_details oid
        ON
          od.order_number = oid.order_number
        LEFT JOIN
          order_discount_details odd
        ON
          od.order_number = odd.order_number
        WHERE
          od.order_number = $1
        

Esempi di azioni

Esempio: trova il valore maggiore

Questo esempio mostra come eseguire una funzione definita dall'utente;utente. La funzione find_greater in questo esempio confronta due numeri interi e restituisce quello maggiore.

  1. Nella finestra di dialogo Configure connector task, fai clic su Actions.
  2. Seleziona l'azione find_greater, quindi 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:
    {
    "$1": 1.0,
    "$2": 5.0
    }
  4. Se l'esecuzione dell'azione ha esito positivo, il campo connectorOutputPayload dell'attività del connettore avrà un valore simile al seguente:

    [{
    "bignum": 5.0
    }]

Esempi di operazioni sulle entità

Esempio: elenca i record di un'entità

Questo esempio elenca i record dell'entità Users.

  1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
  2. Seleziona Users dall'elenco Entity.
  3. Seleziona l'operazione List, quindi fai clic su Fine.
  4. Nella sezione Input attività dell'attività Connettori, puoi impostare filterClause in base alle tue esigenze.

    Ad esempio, se imposti la clausola di filtro su employeeCode='5100' and startDate='2010-01-01 00:00:00', vengono elencati solo i record il cui employeeCode è 5100 e la cui startDate è 2010-01-01 00:00:00.

Esempio: recuperare un singolo record da un'entità

Questo esempio recupera un record dall'entità Users.

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

    In questo caso, 103032 è il valore della chiave primaria dell'entità Users.

Esempio: elimina un record da un'entità

Questo esempio elimina un record dall'entità Users.

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

    In alternativa, se l'entità ha chiavi primarie composite anziché specificare entityId, puoi impostare filterClause. Ad esempio: employeeCode='5100' and startDate='2010-01-01 00:00:00'.

Esempio: creare un record in un'entità

Questo esempio crea un record nell'entità Users.

  1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
  2. Seleziona Users dall'elenco Entity.
  3. Seleziona l'operazione Create, quindi 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:
    {
    "employeeCode": "5100",
    "startDate": "2010-01-01 00:00:00.0",
    "country": "US"
    }
  5. Se l'integrazione ha esito positivo, il campo connectorOutputPayload dell'attività del connettore conterrà la risposta dell'operazione di creazione.

Esempio: aggiorna un record in un'entità

Questo esempio aggiorna un record nell'entità Users.

  1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
  2. Seleziona Users dall'elenco Entity.
  3. Seleziona l'operazione Update, quindi 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:
    {
    "country": "IN"
    }
  5. Nella sezione Input attività dell'attività Connettori, fai clic su entityId e poi inserisci 113132 nel campo Valore predefinito.

    In alternativa, se l'entità ha chiavi primarie composite anziché specificare entityId, puoi impostare filterClause. Ad esempio: employeeCode='5100' and startDate='2010-01-01 00:00:00'.

  6. Se l'integrazione ha esito positivo, il campo connectorOutputPayload dell'attività del connettore conterrà la risposta dell'operazione di aggiornamento.

Utilizzare la connessione PostgreSQL in un'integrazione

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

  • Per capire come creare e utilizzare l'attività Connettori in Apigee Integration, consulta Attività Connettori.
  • Per capire 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 di Google Cloud nei forum di Cloud.

Passaggi successivi