Cloud Storage

Il connettore Google Cloud Storage ti consente di connetterti a Google Cloud Storage ed eseguire operazioni di trasferimento di file.

Prima di iniziare

Prima di utilizzare il connettore Cloud Storage, 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 al account di servizio che vuoi utilizzare per il connettore:
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor
      • roles/storage.admin

      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 NUOVA 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 Cloud Storage 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. ID progetto: l'ID del progetto Google Cloud in cui si trovano i dati.
    9. (Facoltativo) Fai clic su + AGGIUNGI ETICHETTA per aggiungere un'etichetta alla connessione sotto forma di coppia chiave/valore.
    10. Fai clic su AVANTI.
  5. Rivedi: rivedi la connessione.
  6. Fai clic su Crea.

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 Google Cloud Storage può elaborare un massimo di 10 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.

Azioni

La connessione Google Cloud Storage supporta le seguenti azioni:

Azione DownloadObject

La seguente tabella descrive i parametri di input dell'azione DownloadObject.

Nome parametro Obbligatorio Tipo di dati Descrizione
Bucket Stringa Nome del bucket in cui è presente l'oggetto da scaricare.
ObjectFilePath No Stringa Il nome dell'oggetto da scaricare. Se non specificato, verranno scaricati tutti gli oggetti del bucket specificato.

Se l'oggetto da scaricare è presente in una cartella secondaria di un bucket, devi fornire il percorso completo dell'oggetto. Ad esempio, per scaricare logfile.txt presente in bucket_01's folderA, il percorso dell'oggetto deve essere folderA/logfile.txt.

HasBytes No Booleano Se scaricare i contenuti come byte. I valori validi sono true o false. Se impostato su true, i contenuti vengono scaricati come stringa codificata Base64.

Per impostazione predefinita, il campo HasBytes è impostato su false.

UpdatedEndDate No Data La data di fine dell'intervallo per scaricare gli oggetti. Se non specificato, gli oggetti verranno scaricati dal UpdatedStartDate specificato fino al giorno corrente.
UpdatedStartDate No Data L'inizio dell'intervallo di date per scaricare gli oggetti. Se non specificato, gli oggetti verranno scaricati dall'inizio del periodo di tempo fino a UpdatedEndDate.

Per esempi su come configurare l'azione DownloadObject, consulta Esempi.

Azione UploadObject

La seguente tabella descrive i parametri di input dell'azione UploadObject.

Nome parametro Obbligatorio Tipo di dati Descrizione
Bucket Stringa Nome del bucket in cui verrà caricato l'oggetto.
FolderPath No Stringa Il percorso della cartella in cui deve essere caricato l'oggetto.
ContentBytes No Stringa Contenuti da caricare sotto forma di byte (stringa codificata Base64).
HasBytes No Booleano Se caricare i contenuti come byte. Valori validi: true o false. Se impostato su true, i contenuti che vuoi caricare devono essere una stringa codificata in Base64.

Per impostazione predefinita, il campo HasBytes è impostato su false.

Contenuti Stringa I contenuti da caricare.
ObjectName No Stringa Nome dell'oggetto che verrà caricato.

Per esempi su come configurare l'azione UploadObject, consulta Esempi.

Azione CopyObject

La seguente tabella descrive i parametri di input dell'azione CopyObject.

Nome parametro Obbligatorio Tipo di dati Descrizione
BucketSource Stringa Nome del bucket da cui vuoi copiare l'oggetto.
ObjectSource Stringa Il percorso completo della cartella in cui vuoi copiare l'oggetto.
BucketDestination Stringa Nome del bucket in cui vuoi copiare l'oggetto.
ObjectDestination No Stringa Il percorso completo della destinazione, incluso il nome dell'oggetto. Se non specifichi alcun nome oggetto, viene mantenuto il nome dell'oggetto di origine.

Per esempi su come configurare l'azione CopyObject, consulta Esempi.

Azione MoveObject

La tabella seguente descrive i parametri di input dell'azione MoveObject.

Nome parametro Obbligatorio Tipo di dati Descrizione
BucketSource Stringa Nome del bucket da cui vuoi spostare l'oggetto.
ObjectSource Stringa Il percorso completo della cartella in cui vuoi spostare l'oggetto.
BucketDestination Stringa Nome del bucket in cui vuoi spostare l'oggetto.
ObjectDestination No Stringa Il percorso completo della destinazione, incluso il nome dell'oggetto. Se non specifichi alcun nome oggetto, viene mantenuto il nome dell'oggetto di origine.

Azione DeleteObject

La seguente tabella descrive i parametri di input dell'azione DeleteObject.

Nome parametro Obbligatorio Tipo di dati Descrizione
BucketSource Stringa Nome del bucket in cui è presente l'oggetto da eliminare.
ObjectSource Stringa Nome dell'oggetto che vuoi eliminare.
Generazione No Doppio Versione dell'oggetto da eliminare. Se presente, elimina definitivamente la revisione specificata dell'oggetto anziché l'ultima versione, che è il comportamento predefinito.
IfGenerationMatch No Doppio Rende l'operazione di eliminazione condizionata al fatto che la generazione corrente dell'oggetto corrisponda al valore specificato. Se imposti questo valore su 0, l'operazione ha esito positivo solo se non esistono versioni live dell'oggetto.
IfGenerationNotMatch No Doppio Rende l'operazione di eliminazione condizionata al fatto che la generazione corrente dell'oggetto non corrisponda al valore specificato. Se non esiste alcun oggetto live, la precondizione non viene soddisfatta. Se imposti questo valore su 0, l'operazione ha esito positivo solo se esiste una versione live dell'oggetto.
IfMetagenerationMatch No Doppio Rende l'operazione di eliminazione condizionata al fatto che la metagenerazione corrente dell'oggetto corrisponda al valore specificato.
IfMetagenerationNotMatch No Doppio Rende l'operazione di eliminazione condizionale in base al fatto che la metagenerazione corrente dell'oggetto non corrisponda al valore specificato.

Azione SignURL

La tabella seguente descrive i parametri di input dell'azione SignURL che crea un URL firmato per l'oggetto specificato.

Nome parametro Obbligatorio Tipo di dati Descrizione
Bucket Stringa Il nome del bucket in cui si trova l'oggetto.
Oggetto Stringa Il nome dell'oggetto per cui generare l'URL firmato.
RequestMethod No Stringa Il metodo che verrà utilizzato dalla richiesta firmata. Il valore predefinito è GET.
Località No Stringa Posizione del bucket specificato. Il valore predefinito è auto.
ActiveDateTime No Stringa La data e l'ora in cui l'URL firmato diventerà attivo. Se non specificato, verrà utilizzata la data e l'ora attuali.
Query No Stringa La stringa di query da includere quando si utilizza SignedURL. Se non viene specificata, non verrà utilizzata alcuna stringa di query.
CustomHeaders No Stringa Un elenco separato da virgole di name=value delle intestazioni da utilizzare con SignedURL. Se non specificato, non verranno utilizzate intestazioni personalizzate.
ExpiresIn Stringa La data di scadenza dell'URL firmato deve essere nel formato 1d2h3m4s, il valore massimo è 7d0h0m0s.
ID accesso HMAC Stringa L'ID accesso HMAC. Per informazioni, vedi Chiavi HMAC.
Segreto HMAC Stringa Il secret HMAC.

Esempi

Gli esempi in questa sezione descrivono le seguenti operazioni:

  • Elenco di tutti gli oggetti
  • Elenca tutti gli oggetti in un bucket
  • Elenca gli oggetti utilizzando il filtro LIKE per il nome
  • Elenca tutti i bucket
  • Scaricare un oggetto
  • Scaricare un oggetto binario
  • Caricare un oggetto binario in un bucket
  • Caricare un oggetto in un bucket
  • Caricare un oggetto in una cartella
  • Copiare un oggetto
  • Spostare un oggetto
  • Elimina un oggetto
  • Creare un URL firmato per un oggetto

La tabella seguente elenca gli scenari di esempio e la configurazione corrispondente nell'attività Connettori:

Attività Configurazione
Elenco di tutti gli oggetti
  1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
  2. Seleziona l'entità Objects e poi l'operazione List.
  3. Fai clic su Fine.

Vengono elencati tutti gli oggetti in tutti i bucket. Gli oggetti sono elencati nel parametro di risposta connectorOutputPayload dell'attività Connectors.

Elenca tutti gli oggetti in un bucket
  1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
  2. Seleziona l'entità Objects e poi l'operazione List.
  3. Fai clic su Fine.
  4. Imposta filterClause sul nome del bucket da cui vuoi elencare gli oggetti. Per impostare la clausola, nella sezione Task Input dell'attività Connectors, fai clic su filterClause e poi inserisci Bucket = 'BUCKET_NAME' nel campo Valore predefinito. Ad esempio, Bucket = 'bucket_01'.
Elenca gli oggetti utilizzando il filtro LIKE per il nome
  1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
  2. Seleziona l'entità Objects e poi l'operazione List.
  3. Fai clic su Fine.
  4. Imposta filterClause sul nome del bucket da cui vuoi elencare gli oggetti. Per impostare la clausola, nella sezione Task Input dell'attività Connectors, fai clic su filterClause e poi inserisci Name LIKE 'NAME%' AND Bucket = 'BUCKET_NAME' nel campo Valore predefinito.

    Ad esempio, Name LIKE 'Operations%' AND Bucket = 'OperationsBucket'.

Elenca tutti i bucket
  1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
  2. Seleziona l'entità Buckets e poi l'operazione List.
  3. Fai clic su Fine.
Scaricare un oggetto
  1. Nella finestra di dialogo Configure connector task, fai clic su Actions.
  2. Seleziona l'azione DownloadObject, 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:
    {
      "Bucket": "bucket-test-01",
      "ObjectFilePath": "logfile.txt"
    }
  4. Questo esempio scarica il file logfile.txt. I contenuti del file scaricato sono disponibili in formato JSON nel parametro di risposta connectorOutputPayload dell'attività Connectors.

Scaricare un oggetto binario

I passaggi per scaricare un oggetto binario sono gli stessi per scaricare un oggetto normale, come descritto in precedenza. Inoltre, devi specificare HasBytes come true nel campo connectorInputPayload. Viene scaricato l'oggetto come stringa codificata in Base64. Valore di esempio per il campo connectorInputPayload:

{
"Bucket": "bucket-test-01",
"ObjectFilePath": "image01.png",
"HasBytes" : true
}

Se il download va a buon fine, l'output nel campo connectorOutputPayload sarà simile al seguente:

{
"Success": "true",
"ContentBytes": "SGVsbG8gdGVzdCE\u003d"
}

Per impostazione predefinita, il campo HasBytes è impostato su false.

Se il file contiene caratteri speciali, ad esempio ä, Ø, Thành, procedi nel seguente modo:

  1. Codifica in UTF-8:codifica il file in UTF-8 per gestire i caratteri speciali.
  2. Converti in Base64:converti il file in Base64 per assicurarti che il testo originale rimanga intatto.
  3. Decodifica la stringa Base64: decodifica il file in stringa Base64 per recuperare il valore originale con i caratteri speciali.
Caricare un oggetto binario in un bucket
  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 poi inserisci quanto segue nel campo Default Value:
    {
    "ContentBytes": "SGVsbG8gVGVzdCE=",
    "Bucket": "bucket-test-01",
    "ObjectName" : "test-file-01",
    "HasBytes": true
    }
  4. Questo esempio crea il file test-file-01 nel bucket bucket-test-01. Se esiste un file con il nome test-file-01, questo viene sovrascritto.

Caricare un oggetto in un bucket
  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 poi inserisci quanto segue nel campo Default Value:
    {
    "Content": "Hello test!",
    "Bucket": "bucket-test-01",
    "ObjectName" : "test-file-01.txt"
    }
  4. Questo esempio crea il file test-file-01.txt con i contenuti Hello test! nel bucket bucket-test-01. Se esiste un file con il nome test-file-01.txt, questo viene sovrascritto.

Caricare un oggetto in una cartella
  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 poi inserisci quanto segue nel campo Default Value:
    {
    "Content": "Hello test!",
    "Bucket": "bucket-test-01",
    "FolderPath": "folderA",
    "ObjectName": "test-file-01.txt"
    }
  4. Questo esempio crea il file test-file-01.txt con il contenuto Hello test! nella cartella folderA di bucket-test-01. Se la cartella contiene un file esistente con il nome test-file-01.txt, questo viene sovrascritto.

Copiare un oggetto
  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 poi inserisci quanto segue nel campo Default Value:
    {
    "BucketSource": "bucket_01",
    "ObjectSource": "folderA/logfile.txt",
    "BucketDestination": "bucket_02",
    "ObjectDestination": "folderB/logfile.txt"
    }
  4. Questo esempio copia il file folderA/logfile.txt da bucket_01 a folderB/logfile.txt in bucket_02.

Se la copia ha esito positivo, l'output nel campo connectorOutputPayload sarà simile al seguente:

{
"Success": "true"
}
Spostare un oggetto
  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 poi inserisci quanto segue nel campo Default Value:
    {
    "BucketSource": "bucket_01",
    "ObjectSource": "folderA/logfile.txt",
    "BucketDestination": "bucket_02",
    "ObjectDestination": "folderB/logfile.txt"
    }
  4. Questo esempio sposta il file folderA/logfile.txt da bucket_01 a folderB/logfile.txt in bucket_02.

Se la copia ha esito positivo, l'output nel campo connectorOutputPayload sarà simile al seguente:

{
"Success": "true"
}
Elimina un oggetto
  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 poi inserisci quanto segue nel campo Default Value:
    {
    "BucketSource": "bucket_01",
    "ObjectSource": "logfile.txt"
    }
  4. Questo esempio elimina il file logfile.txt da bucket_01.

Se la copia ha esito positivo, l'output nel campo connectorOutputPayload sarà simile al seguente:

{
"Success": "true"
}
Creare un URL firmato per un oggetto
  1. Nella finestra di dialogo Configure connector task, fai clic su Actions.
  2. Seleziona l'azione SignURL, quindi fai clic su Fine.
  3. Nella sezione Input attività dell'attività Connettori, fai clic su connectorInputPayload e poi inserisci quanto segue nel campo Default Value:
    {
    "Bucket": "bucket-test-01",
    "ObjectName" : "test-file-01.txt"
    }
  4. Questo esempio crea un URL firmato per il file test-file-01.txt che si trova nel bucket bucket-test-01. Se l'azione va a buon fine, nella risposta riceverai l'URL firmato simile al seguente:

    {
    "Success": "true",
    "SignURL": "https://storage.googleapis.com/example-bucket/cat.jpeg?X-Goog-Algorithm=
    GOOG4-RSA-SHA256&X-Goog-Credential=example%40example-project.iam.gserviceaccount.com
    %2F20181026%2Fus-central1%2Fstorage%2Fgoog4_request&X-Goog-Date=20181026T18
    1309Z&X-Goog-Expires=900&X-Goog-SignedHeaders=host&X-Goog-Signature=247a2aa45f16
    9edf4d187d54e7cc46e4731b1e6273242c4f4c39a1d2507a0e58706e25e3a85a7dbb891d62afa849
    6def8e260c1db863d9ace85ff0a184b894b117fe46d1225c82f2aa19efd52cf21d3e2022b3b868dc
    c1aca2741951ed5bf3bb25a34f5e9316a2841e8ff4c530b22ceaa1c5ce09c7cbb5732631510c2058
    0e61723f5594de3aea497f195456a2ff2bdd0d13bad47289d8611b6f9cfeef0c46c91a455b94e90a
    66924f722292d21e24d31dcfb38ce0c0f353ffa5a9756fc2a9f2b40bc2113206a81e324fc4fd6823
    a29163fa845c8ae7eca1fcf6e5bb48b3200983c56c5ca81fffb151cca7402beddfc4a76b13344703
    2ea7abedc098d2eb14a7"
    }

Considerazioni

  • Un oggetto scaricabile può avere una dimensione massima di 10 MB.
  • Non puoi caricare più file utilizzando l'azione UploadObject. Puoi caricare un solo file.

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
project_id STRING Vero L'ID del progetto Google Cloud in cui si trovano i dati.

Utilizzare la connessione Cloud Storage 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