Amazon S3

Il connettore Amazon S3 fornisce accesso SQL ai bucket e agli oggetti Amazon S3.

Prima di iniziare

Prima di utilizzare il connettore Amazon S3, esegui queste operazioni:

  • Nel tuo progetto Google Cloud:
    • 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 autenticarsi ed essere autorizzato ad accedere ai dati nelle API di Google. Se non hai un account di servizio, devi crearne uno. Per saperne di più, consulta la pagina sulla creazione di un account di servizio.

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

      Per informazioni su come abilitare i servizi, vedi Abilitazione dei servizi.

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

Configura il connettore

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

  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 nuova per aprire la pagina Crea connessione.
  3. Nella sezione Posizione, scegli la località per la connessione.
    1. Regione: seleziona una località dall'elenco a discesa.

      Le regioni supportate per i connettori includono:

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

    2. Tocca Avanti.
  4. Nella sezione Dettagli connessione, completa quanto segue:
    1. Connettore: seleziona Amazon S3 dall'elenco a discesa dei connettori disponibili.
    2. Versione 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 63 caratteri.
    4. (Facoltativo) Inserisci una descrizione per l'istanza di connessione.
    5. Account di servizio: seleziona un account di servizio con i ruoli richiesti.
    6. Facoltativamente, 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, al contrario, sono necessari meno nodi per elaborare un numero minore di transazioni. Per capire in che modo i nodi influiscono sui prezzi del connettore, consulta Prezzi dei nodi di connessione. Se non inserisci alcun valore, per impostazione predefinita il numero minimo di nodi è impostato su 2 (per una migliore disponibilità) e il numero massimo di nodi è impostato su 50.

    7. Regione AWS: la regione in cui è ospitata l'istanza Amazon S3
    8. (Facoltativo) Fai clic su + Aggiungi etichetta per aggiungere un'etichetta alla connessione sotto forma di coppia chiave-valore.
    9. Tocca 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.
      1. Nel campo Indirizzo host, specifica il nome host o l'indirizzo IP della destinazione.
        1. Se vuoi stabilire una connessione privata ai sistemi di backend, segui questi passaggi:
          1. Crea un collegamento al servizio PSC.
          2. Crea un collegamento endpoint e inserisci i relativi dettagli nel campo Indirizzo host.
        2. Se vuoi stabilire una connessione pubblica ai tuoi sistemi di backend con maggiore sicurezza, puoi configurare indirizzi IP statici in uscita per le tue connessioni, quindi configurare le regole firewall in modo da inserire nella lista consentita solo indirizzi IP statici specifici.

      Per inserire altre destinazioni, fai clic su +Aggiungi destinazione.

    2. Tocca Avanti.
  6. Nella sezione Autenticazione, inserisci i dettagli di autenticazione.
    1. Seleziona un Tipo di autenticazione e inserisci i dettagli pertinenti.

      La connessione Amazon S3 supporta i seguenti tipi di autenticazione:

      • Credenziali radice
      • Ruoli AWS IAM
      • Credenziali temporanee AWS
    2. Per informazioni su come configurare questi tipi di autenticazione, vedi Configurare l'autenticazione.

    3. Tocca Avanti.
  7. Verifica: controlla i dettagli di connessione e autenticazione.
  8. Fai clic su Crea.

Configura l'autenticazione

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

  • Credenziali root

    Per eseguire l'autenticazione utilizzando le credenziali root dell'account.

    • AWS Access Key (Chiave di accesso AWS): la chiave di accesso dell'utente root
    • AWS Access Secret (Segreto di accesso AWS): la chiave segreta dell'utente root.
  • Ruoli AWS IAM

    Per eseguire l'autenticazione utilizzando un ruolo AWS IAM.

    • Chiave di accesso AWS: la chiave di accesso dell'utente IAM per cui deve assumere il ruolo.
    • AWS Access Secret (Segreto di accesso AWS): la chiave segreta dell'utente IAM per cui deve assumere il ruolo.
    • ARN del ruolo AWS: specifica l'ARN del ruolo per il ruolo con cui vuoi eseguire l'autenticazione. Verranno recuperate solo le credenziali per il ruolo specificato.
    • ID esterno AWS: obbligatorio solo se assumi un ruolo in un altro account.
  • Credenziali temporanee AWS

    Per eseguire l'autenticazione utilizzando credenziali temporanee

    • Chiave di accesso AWS: la chiave di accesso dell'utente IAM per cui deve assumere il ruolo.
    • AWS Access Secret (Segreto di accesso AWS): la chiave segreta dell'utente IAM per cui deve assumere il ruolo.
    • Token sessione AWS: viene generato insieme alle credenziali temporanee.
    • ARN del ruolo AWS: specifica l'ARN del ruolo per il ruolo con cui vuoi eseguire l'autenticazione. Verranno recuperate solo le credenziali per il ruolo specificato.
    • ID esterno AWS: obbligatorio solo se assumi un ruolo in un altro account.

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 è esposta come entità, operazioni e azioni.

  • Entità: un'entità può essere considerata come un oggetto o una raccolta di proprietà nell'applicazione o nel servizio collegato. La definizione di un'entità è diversa da un connettore a un connettore. 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à. Su un'entità puoi eseguire una qualsiasi delle seguenti operazioni:

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

  • Azione: un'azione è una funzione di prima classe resa disponibile per l'integrazione attraverso l'interfaccia del connettore. Un'azione consente di apportare modifiche a una o più entità e di variare da connettore a connettore. Tuttavia, è possibile che un connettore non supporti alcuna azione, nel qual caso l'elenco Actions sarà vuoto.

Azioni

In questa sezione sono elencate alcune delle azioni supportate dal connettore. Per capire come configurare le azioni, consulta gli esempi di azioni.

Azione CopyObject

Questa azione consente di copiare un oggetto da un bucket a un altro o all'interno dello stesso bucket.

Parametri di input dell'azione CopyObject

Nome parametro Tipo di dati Obbligatorio Descrizione
BucketSource Stringa Nome del bucket da cui deve essere copiato l'oggetto.
ObjectSource Oggetto Nome dell'oggetto che deve essere copiato.
BucketDestination Stringa Nome del bucket in cui deve essere copiato l'oggetto.
ObjectDestination Stringa No Nome dell'oggetto nel bucket di destinazione. Se non specificato, il nome sarà uguale al nome originale.

Parametri di output dell'azione CopyObject

Questa azione restituisce lo stato 200 (OK) se la copia ha esito positivo.

Per capire come configurare l'azione CopyObject, consulta la sezione Esempi di azioni.

Azione DownloadObjects

Questa azione ottiene uno o più oggetti da un bucket.

Parametri di input dell'azione DownloadObjects

Nome parametro Tipo di dati Obbligatorio Descrizione
Bucket Stringa Nome del bucket in cui è presente l'oggetto da scaricare.
Oggetto Stringa No Nome dell'oggetto da scaricare. Se non specificato, vengono scaricati tutti gli oggetti del bucket specificato.
HasBytes Booleano Specifica se i contenuti devono essere scaricati come stringa codificata Base64.
UpdatedStartDate Data/ora No La data di inizio dell'intervallo di tempo in cui scaricare gli oggetti. Se non specificato, gli oggetti vengono scaricati dai contenuti meno recenti fino al giorno UpdateEndDate.
UpdatedEndDate Data/ora No La data di fine dell'intervallo di tempo in cui scaricare gli oggetti. Se non specificato, gli oggetti vengono scaricati dal valore UpdateStartDate specificato fino al giorno corrente.

Parametri di output dell'azione DownloadObjects

Questa azione restituisce lo stato 200 (OK) se il download ha esito positivo.

Per capire come configurare l'azione DownloadObjects, consulta la sezione Esempi di azioni.

Azione UploadObject

Questa azione consente di caricare un oggetto in un bucket.

Parametri di input dell'azione UploadObject

Nome parametro Tipo di dati Obbligatorio Descrizione
Bucket Stringa Nome del bucket in cui deve essere caricato l'oggetto.
ContentBytes Stringa No I contenuti in byte da caricare come file.
HasBytes Booleano Specifica se i contenuti devono essere caricati come stringa codificata in Base64.
AccessPolicy Stringa No Il criterio di accesso per questo oggetto. I valori consentiti sono PRIVATE, ANONREAD, ANONREADWRITE e AUTHREAD. Il valore predefinito è PRIVATE.
Contenuti Stringa No I contenuti da caricare.
FileName Stringa No Nome del file da caricare. Questo valore è obbligatorio quando specifichi il parametro FileContent.

Parametri di output dell'azione UploadObject

Questa azione restituisce lo stato 200 (OK) se il caricamento dell'oggetto ha esito positivo.

Per capire come configurare l'azione UploadObject, consulta la sezione Esempi di azioni.

Azione DeleteObject

Questa azione consente di eliminare un oggetto da un bucket.

Parametri di input dell'azione DeleteObject

Nome parametro Tipo di dati Obbligatorio Descrizione
Bucket Stringa Nome del bucket in cui è presente l'oggetto da eliminare.
Oggetto Stringa Nome dell'oggetto che deve essere eliminato.

Parametri di output dell'azione DeleteObject

Questa azione restituisce lo stato 200 (OK) se l'eliminazione ha esito positivo.

Per capire come configurare l'azione DeleteObject, consulta la sezione Esempi di azioni.

Azione MoveObject

Questa azione consente agli utenti di spostare un oggetto esistente di un bucket specifico in un altro bucket o nello stesso bucket.

Parametri di input dell'azione MoveObject

Nome parametro Tipo di dati Obbligatorio Descrizione
BucketSource Stringa Il nome del bucket di origine in cui è presente l'oggetto da spostare.
ObjectSource Stringa Nome dell'oggetto da spostare.
BucketDestination Stringa Il nome del bucket di destinazione in cui deve essere spostato l'oggetto.
ObjectDestination Stringa No Nome dell'oggetto nel bucket di destinazione. Se non specificato, viene conservato il nome originale.

Parametri di output dell'azione MoveObject

Questa azione restituisce lo stato 200 (OK) se l'operazione di spostamento ha esito positivo.

Per capire come configurare l'azione MoveObject, consulta la sezione Esempi di azioni.

Azione PutBucketAcl

Questa azione consente di aggiornare l'elenco di controllo dell'accesso (ACL) di un bucket.

Parametri di input dell'azione PutbucketAcl

Nome parametro Tipo di dati Obbligatorio Descrizione
Bucket Stringa Nome del bucket per cui deve essere applicato l'ACL.
ACL Stringa Livello di accesso da applicare al bucket.

Parametri di output dell'azione PutBucketAcl

Questa azione restituisce lo stato 200 (OK) se l'aggiornamento dell'ACL del bucket ha esito positivo.

Per capire come configurare l'azione PutBucketAcl, consulta la sezione Esempi di azioni.

Azione PutObjectAcl

Questa azione consente di aggiornare l'elenco di controllo dell'accesso (ACL) di un oggetto in un bucket.

Parametri di input dell'azione PutObjectAcl

Nome parametro Tipo di dati Obbligatorio Descrizione
Bucket Stringa Nome del bucket in cui si trova l'oggetto.
ACL Stringa Livello di accesso da applicare all'oggetto.
KEY Stringa Nome dell'oggetto per cui deve essere applicato l'ACL.

Parametri di output dell'azione PutObjectAcl

Questa azione restituisce lo stato 200 (OK) se l'aggiornamento dell'ACL dell'oggetto ha esito positivo.

Per capire come configurare l'azione PutObjectAcl, consulta la sezione Esempi di azioni.

Esempi di azioni

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

Esempio: copiare un oggetto

In questo esempio viene copiato un oggetto da un bucket a un altro.

  1. Nella finestra di dialogo Configure connector task, fai clic su Actions.
  2. Seleziona l'azione CopyObject, quindi fai clic su Fine.
  3. Nella sezione Input attività dell'attività Connettori, fai clic su connectorInputPayload e inserisci un valore simile al seguente nel campo Default Value:
    {
    "BucketSource": "aws-s3-bucket-source",
    "ObjectSource": "pic.jpg",
    "BucketDestination": "aws-s3-bucket-destination",
    "ObjectDestination": "new_pic.jpg"
    }
  4. Se l'azione ha esito positivo, il parametro di risposta connectorOutputPayload dell'attività di CopyObject avrà un valore simile al seguente:

    [{
    "Status": "Success"
    }]

Esempio: download di un oggetto

Questo esempio scarica un oggetto dal bucket specificato.

  1. Nella finestra di dialogo Configure connector task, fai clic su Actions.
  2. Seleziona l'azione DownloadObjects, quindi fai clic su Fine.
  3. Nella sezione Input attività dell'attività Connettori, fai clic su connectorInputPayload e inserisci un valore simile al seguente nel campo Default Value:
    {
    "Bucket": "aws-s3-bucket-source",
    "HasBytes": true
    }
  4. Se l'azione ha esito positivo, il parametro di risposta connectorOutputPayload dell'attività di DownloadObjects avrà un valore simile al seguente:

    [{
    "Success": "True",
    "RemoteFile": "prefix1%2Faws-s3-bucket-source%2Finventory-test-1%2F2023-09-10T01-00Z%2Fmanifest.json",
    "ContentBytes": "ewogICJzb3VyY2VCdWNrZXQiIDogImF3cy1zMy1idWNrZXQtYmNvbmUiLAogICJnOK"
    },
    {
    "Success": "True",
    "RemoteFile": "upload1.txt",
    "ContentBytes": "VGhpcyBpcyBhIHRlc3RpbmcgZmlsZQ=="
    }]

Esempio: caricamento di un oggetto

In questo esempio viene caricato un oggetto nel bucket specificato.

  1. Nella finestra di dialogo Configure connector task, fai clic su Actions.
  2. Seleziona l'azione UploadObject, quindi fai clic su Fine.
  3. Nella sezione Input attività dell'attività Connettori, fai clic su connectorInputPayload e inserisci un valore simile al seguente nel campo Default Value:
    {
    "Bucket": "aws-s3-bucket-source",
    "FileName": "upload_1.txt",
    "Content": "This is a testing file",
    "AccessPolicy": "PUBLIC"
    }
  4. Se l'azione ha esito positivo, il parametro di risposta connectorOutputPayload dell'attività di UploadObject avrà un valore simile al seguente:

    [{
    "Status": "success",
    "bucket": "aws-s3-bucket-source",
    "rss:title": "Object 'upload_1.txt' was created in the bucket: aws-s3-bucket-source",
    "object": "upload_1.txt"
    }]

Esempio: eliminare un oggetto

Questo esempio elimina un oggetto dal bucket specificato.

  1. Nella finestra di dialogo Configure connector task, fai clic su Actions.
  2. Seleziona l'azione DeleteObject, quindi fai clic su Fine.
  3. Nella sezione Input attività dell'attività Connettori, fai clic su connectorInputPayload e inserisci un valore simile al seguente nel campo Default Value:
    {
    "Bucket": "aws-s3-bucket-source",
    "Object": "abc.png"
    }
  4. Se l'azione ha esito positivo, il parametro di risposta connectorOutputPayload dell'attività di DeleteObject avrà un valore simile al seguente:

    [{
    "Status": "Success"
    }]

Esempio: spostare un oggetto

In questo esempio, un oggetto viene spostato da un bucket a un altro.

  1. Nella finestra di dialogo Configure connector task, fai clic su Actions.
  2. Seleziona l'azione MoveObject, quindi fai clic su Fine.
  3. Nella sezione Input attività dell'attività Connettori, fai clic su connectorInputPayload e inserisci un valore simile al seguente nel campo Default Value:
    {
    "BucketSource": "aws-s3-bucket-source",
    "ObjectSource": "abc.png",
    "BucketDestination": "aws-s3-bucket-destination",
    "ObjectDestination": "moved.png"
    }
  4. Se l'azione ha esito positivo, il parametro di risposta connectorOutputPayload dell'attività di MoveObject avrà un valore simile al seguente:

    [{
    "Status": "Success"
    }]

Esempio: aggiornamento dell'ACL di un bucket

Questo esempio aggiorna le autorizzazioni di controllo dell'accesso per un bucket.

  1. Nella finestra di dialogo Configure connector task, fai clic su Actions.
  2. Seleziona l'azione PutBucketAcl, quindi fai clic su Fine.
  3. Nella sezione Input attività dell'attività Connettori, fai clic su connectorInputPayload e inserisci un valore simile al seguente nel campo Default Value:
    {
    "BucketSource": "aws-s3-bucket-source",
    "ACL": "public-read"
    }
  4. Se l'azione ha esito positivo, il parametro di risposta connectorOutputPayload dell'attività di PutBucketAcl avrà un valore simile al seguente:

    [{
    "Status": "Success"
    }]

Esempio: aggiornamento dell'ACL di un oggetto

Questo esempio aggiorna le autorizzazioni di controllo dell'accesso per un oggetto in un bucket.

  1. Nella finestra di dialogo Configure connector task, fai clic su Actions.
  2. Seleziona l'azione PutObjectAcl, quindi fai clic su Fine.
  3. Nella sezione Input attività dell'attività Connettori, fai clic su connectorInputPayload e inserisci un valore simile al seguente nel campo Default Value:
    {
    "Bucket": "aws-s3-bucket-source",
    "ACL": "aws-exec-read",
    "Key": "AWS_S3_BusinessCase_V2.xlsx"
    }
  4. Se l'azione ha esito positivo, il parametro di risposta connectorOutputPayload dell'attività di PutObjectAcl avrà un valore simile al seguente:

    [{
    "Status": "Success"
    }]

Esempi di operazioni sull'entità

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

Esempio: elenco di metadati di tutti gli oggetti

Questo esempio recupera i metadati di tutti gli oggetti nell'entità Object.

  1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
  2. Seleziona Object dall'elenco Entity.
  3. Seleziona l'operazione List, quindi fai clic su Fine.
  4. Facoltativamente, nella sezione Input attività dell'attività Connettori, puoi filtrare il set di risultati specificando una clausola di filtro. Specifica il valore della clausola di filtro sempre tra virgolette singole ('). Ad esempio, Bucket='test-bucket'. Puoi anche specificare più condizioni di filtro utilizzando gli operatori logici. Ad esempio, Bucket='test-bucket' and OwnerId='b1ecc809ad8467088afb'.

Esempio: recupero dei metadati di un bucket

Questo esempio recupera i metadati del bucket con l'ID specificato dall'entità Bucket.

  1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
  2. Seleziona Bucket 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 inserisci demo_replication nel campo Valore predefinito.

    Qui demo_replication è un ID bucket univoco nell'entità Bucket.

Esempio: creare un bucket

In questo esempio viene creato un bucket nell'entità Bucket.

  1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
  2. Seleziona Bucket 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 inserisci un valore simile al seguente nel campo Default Value:
    {
    "Bucket": "Demo1697528098686",
    "OwnerId": "b1ecc809ad8467088afb6beed9581815e4f203f70d19553de2e5d23623ac6647",
    "OwnerDisplayName": "awsr_adm.cpp"
    }

    Se l'integrazione ha esito positivo, il campo connectorOutputPayload dell'attività del connettore avrà un valore simile al seguente:

    [{
    "Bucket": "Demo1697528098686"
    }]

Esempio: eliminare un bucket

Questo esempio elimina il bucket con l'ID specificato nell'entità Bucket.

  1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
  2. Seleziona Bucket 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, quindi inserisci demo1697528098686 nel campo Valore predefinito.

Utilizza la connessione Amazon S3 in un'integrazione

Dopo aver creato la connessione, diventa disponibile sia in Apigee Integration che in Application Integration. Puoi usare 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.

Ricevi assistenza dalla community Google Cloud

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

Passaggi successivi