Tutorial: trasformazione dei dati per l'applicazione con S3 Object Lambda - Amazon Simple Storage Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tutorial: trasformazione dei dati per l'applicazione con S3 Object Lambda

Quando archivi dati in Amazon S3, puoi condividerli facilmente per utilizzarli da più applicazioni. Tuttavia, ogni applicazione potrebbe avere requisiti univoci in merito al formato dei dati e richiedere la modifica o l'elaborazione dei dati per un caso d'uso specifico. Ad esempio, un set di dati creato da un'applicazione e-commerce potrebbe includere informazioni personali di identificazione (PII). Quando gli stessi dati vengono elaborati per l'analisi, queste PII non sono necessarie e devono essere oscurate. Tuttavia, se lo stesso set di dati viene utilizzato per una campagna di marketing, potresti dover arricchire i dati con ulteriori dettagli, come informazioni dal database che raccoglie i dati sulla fidelizzazione dei clienti.

Con S3 Object Lambda puoi aggiungere il tuo codice per elaborare i dati recuperati da S3 prima di restituirli a un'applicazione. In particolare, puoi configurare una AWS Lambda funzione e collegarla a un S3 Object Lambda Access Point. Quando un'applicazione invia richieste GET S3 standard tramite il punto di accesso Lambda per oggetti S3, la funzione Lambda specificata viene richiamata per elaborare tutti i dati recuperati da un bucket S3 attraverso il punto di accesso S3 di supporto, quindi il punto di accesso Lambda per oggetti S3 restituisce il risultato trasformato all'applicazione. Puoi creare ed eseguire funzioni Lambda personalizzate, adattando la trasformazione dei dati S3 Object Lambda al tuo specifico caso d'uso, il tutto senza che siano necessarie modifiche alla tua applicazione.

Questo è un diagramma del flusso di lavoro S3 Object Lambda.
Obiettivo

In questo tutorial imparerai come aggiungere codice personalizzato alle richieste GET S3 standard per modificare l'oggetto richiesto recuperato da S3 in modo che questo soddisfi le esigenze del client o dell'applicazione richiedente. In particolare, imparerai a trasformare in maiuscolo tutto il testo dell'oggetto originale archiviato in S3 attraverso S3 Object Lambda.

Prerequisiti

Prima di iniziare questo tutorial, devi disporre di un account a Account AWS cui accedere come utente AWS Identity and Access Management (IAM) con le autorizzazioni corrette. Devi inoltre installare la versione 3.8 o successiva di Python.

Creazione di un utente IAM con autorizzazioni nell' Account AWS (console)

Puoi creare un utente IAM per il tutorial. Per completare questo tutorial, l'utente IAM deve allegare le seguenti policy IAM per accedere alle AWS risorse pertinenti ed eseguire azioni specifiche. Per ulteriori informazioni su come creare un utente IAM, consulta Creazione di utenti IAM (console) nella Guida per l'utente di IAM.

L'utente IAM richiede le seguenti policy:

Nota

Per semplicità, questo tutorial crea e utilizza un utente IAM. Dopo aver completato il tutorial, ricordati di Eliminazione dell'utente IAM. Per l'uso in produzione, consigliamo di seguire le best practice di sicurezza in IAM disponibili nella Guida per l'utente di IAM. Come best practice, richiedi agli utenti di utilizzare la federazione con un gestore di identità per accedere a AWS utilizzando credenziali temporanee. Un'ulteriore suggerimento derivante dalle best practice è richiedere ai carichi di lavoro di utilizzare credenziali temporanee con ruoli IAM per l'accesso ad AWS. Per informazioni sull'utilizzo AWS IAM Identity Center per creare utenti con credenziali temporanee, consulta Guida introduttiva nella Guida per l'AWS IAM Identity Center utente.

Per semplicità, questo tutorial utilizza policy gestite AWS di accesso completo. Per l'utilizzo in produzione, è consigliabile invece concedere solo le autorizzazioni minime necessarie per il caso d'uso, in conformità con le best practice in fatto di sicurezza.

Installazione di Python 3.8 o versioni successive sul computer locale

Utilizza la procedura seguente per installare Python 3.8 o una versione successiva sul computer locale. Per maggiori istruzioni sull'installazione, consulta la pagina Download di Python nella Guida per principianti di Python.

  1. Apri il terminale o la shell locale ed esegui il seguente comando per determinare se Python è già installato e, in caso affermativo, la versione installata.

    python --version
  2. Se non disponi di Python 3.8 o versioni successive, scarica il programma di installazione ufficiale di Python 3.8 o versioni successive adatto al computer locale.

  3. Esegui il programma di installazione facendo doppio clic sul file scaricato e segui i passaggi per completare l'installazione.

    Per utenti Windows: scegli Add Python 3.X to PATH (Aggiungi Python 3.X a [percorso]) nella procedura guidata di installazione prima di scegliere Install Now (Installa adesso).

  4. Chiudi e riapri il terminale per riavviarlo.

  5. Per verificare che Python 3.8 o versioni successive sia installato correttamente, esegui il comando seguente.

    Se sei un utente macOS, esegui questo comando:

    python3 --version

    Per utenti Windows: esegui questo comando:

    python --version
  6. Esegui il seguente comando per verificare che il gestore di pacchetti pip3 sia installato. Se vedi un numero di versione di pip e Python 3.8 o versione successiva nella risposta al comando, significa che il gestore di pacchetti pip3 è installato correttamente.

    pip --version

Fase 1: Creazione di un bucket S3

Crea un bucket per archiviare i dati originali che intendi trasformare.

Per creare un bucket
  1. Accedi AWS Management Console e apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/.

  2. Nel pannello di navigazione a sinistra, scegli Buckets (Bucket).

  3. Scegliere Create bucket (Crea bucket).

    Viene visualizzata la pagina Create bucket (Crea bucket).

  4. In Bucket name (Nome bucket), inserisci un nome per il bucket (ad esempio tutorial-bucket).

    Per ulteriori informazioni sulle regole di denominazione del bucket in Amazon S3, consulta Regole di denominazione dei bucket.

  5. Per Regione, scegli Regione AWS dove vuoi che risieda il bucket.

    Per ulteriori informazioni sulla regione del bucket, consulta Panoramica dei bucket.

  6. In Block Public Access settings for this bucket (Blocca le impostazioni di accesso pubblico per questo bucket), mantieni le impostazioni predefinite (è abilitato Block all public access (Blocca tutto l'accesso pubblico).

    È consigliabile di lasciare abilitate tutte le impostazioni di blocco dell'accesso pubblico, a meno che non abbia bisogno di disattivarne una o più per il caso d'uso. Per ulteriori informazioni sul blocco dell'accesso pubblico, consulta Blocco dell'accesso pubblico allo storage Amazon S3.

  7. Mantieni le impostazioni rimanenti impostate sui valori di default.

    (Facoltativo) Se desideri configurare ulteriori impostazioni del bucket per il tuo caso d'uso specifico, consulta Creazione di un bucket.

  8. Seleziona Crea bucket.

Fase 2: Caricamento di un file nel bucket S3

Carica il file di testo nel bucket S3. Questo file di testo contiene i dati originali che trasformerai in maiuscolo più avanti in questo tutorial.

Ad esempio, puoi caricare un file tutorial.txt che contiene il testo seguente:

Amazon S3 Object Lambda Tutorial: You can add your own code to process data retrieved from S3 before returning it to an application.
Per caricare un file in un bucket
  1. Accedi AWS Management Console e apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/.

  2. Nel pannello di navigazione a sinistra, scegli Buckets (Bucket).

  3. Nell'elenco Buckets (Bucket) scegli il nome del bucket creato nella Fase 1 (ad esempio,tutorial-bucket) in cui caricare il file.

  4. Nella scheda Oggetti del bucket seleziona Carica.

  5. Nella pagina Upload (Caricamento), sotto Files and Folders (File e cartelle) scegli Add Files (Aggiungi file).

  6. Seleziona un file da caricare, quindi scegli Apri. Ad esempio, puoi caricare il file di esempio tutorial.txt menzionato in precedenza.

  7. Scegli Carica.

Fase 3: Creazione di un punto di accesso S3

Per utilizzare un punto di accesso Lambda per oggetti S3 per accedere e trasformare i dati originali, devi creare un punto di accesso S3 e associarlo al bucket S3 creato nella Fase 1. Il punto di accesso deve coincidere con Regione AWS gli oggetti che desideri trasformare.

Più avanti in questo tutorial, utilizzerai questo punto di accesso come punto di accesso di supporto per il tuo punto di accesso Lambda per oggetti.

Per creare un punto di accesso
  1. Accedi AWS Management Console e apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/.

  2. Nel pannello di navigazione a sinistra, scegli Access Points (Punti di accesso).

  3. Nella pagina Access Points (Punti di accesso) scegli Create access point (Crea punto di accesso).

  4. Nel campo Access point name (Nome del punto di accesso), inserisci il nome (per esempio, tutorial-access-point) per il punto di accesso.

    Per ulteriori informazioni sui punti di accesso S3, consulta Regole per la denominazione degli Punti di accesso Amazon S3.

  5. Nel campo Bucket name (Nome bucket) inserisci il nome del bucket creato nella Fase 1 (ad esempio, tutorial-bucket). S3 allega quindi il punto di accesso a questo bucket.

    (Facoltativo) Puoi scegliere Browse S3 (Sfoglia S3) per sfogliare e cercare i bucket nell'account. Se scegli Browse S3 (Sfoglia S3), scegli il bucket desiderato e scegli Choose path (Scegli percorso) per popolare il campo Bucket name (Nome bucket) con il nome del bucket.

  6. In Network origin (Origine rete), scegli Internet.

    Per ulteriori informazioni sulle origini di rete per i punti di accesso, consulta Creazione di access point limitati a un cloud privato virtuale.

  7. Tutte le impostazioni di blocco dell'accesso pubblico sono abilitate per impostazione predefinita per il punto di accesso. È consigliabile lasciare abilitato Block all public access (Blocca tutto l'accesso pubblico).

    Per ulteriori informazioni, consulta Gestione dell'accesso pubblico agli access point.

  8. Per tutte le altre impostazioni del punto di accesso, mantieni i valori di default.

    (Facoltativo) Puoi modificare le impostazioni del punto di accesso per supportare il caso d'uso. Per questo tutorial, ti consigliamo di mantenere le impostazioni di default.

    (Facoltativo) Se è necessario gestire l'accesso al punto di accesso, puoi specificare una policy per il punto di accesso. Per ulteriori informazioni, consulta Esempi di policy degli access point.

  9. Selezionare Crea punto di accesso.

Fase 4: Creazione di una funzione Lambda

Per trasformare i dati originali, crea una funzione Lambda utilizzabile con il punto di accesso Lambda per oggetti S3.

Scrittura del codice della funzione Lambda e creazione di un pacchetto di implementazione in un ambiente virtuale

  1. Sul computer locale, crea una cartella denominata object-lambda per l'ambiente virtuale da utilizzare più avanti in questo tutorial.

  2. Nella cartella object-lambda, crea un file con una funzione Lambda che modifica tutto il testo dell'oggetto originale in maiuscolo. Ad esempio, puoi utilizzare la seguente funzione scritta in Python. Salva questa funzione in un file denominato transform.py.

    import boto3 import requests from botocore.config import Config # This function capitalizes all text in the original object def lambda_handler(event, context): object_context = event["getObjectContext"] # Get the presigned URL to fetch the requested original object # from S3 s3_url = object_context["inputS3Url"] # Extract the route and request token from the input context request_route = object_context["outputRoute"] request_token = object_context["outputToken"] # Get the original S3 object using the presigned URL response = requests.get(s3_url) original_object = response.content.decode("utf-8") # Transform all text in the original object to uppercase # You can replace it with your custom code based on your use case transformed_object = original_object.upper() # Write object back to S3 Object Lambda s3 = boto3.client('s3', config=Config(signature_version='s3v4')) # The WriteGetObjectResponse API sends the transformed data # back to S3 Object Lambda and then to the user s3.write_get_object_response( Body=transformed_object, RequestRoute=request_route, RequestToken=request_token) # Exit the Lambda function: return the status code return {'status_code': 200}
    Nota

    La precedente funzione Lambda di esempio carica l'intero oggetto richiesto in memoria prima di trasformarlo e restituirlo al client. In alternativa, puoi trasmettere l'oggetto da S3 per evitare di caricare l'intero oggetto in memoria. Questo approccio può essere utile quando lavori con oggetti di grandi dimensioni. Per ulteriori informazioni sullo streaming delle risposte con i punti di accesso Lambda per oggetti, consulta gli esempi di streaming in Utilizzo di richieste GetObject in Lambda.

    Quando scrivi una funzione Lambda utilizzabile con un punto di accesso Lambda per oggetti S3, la funzione si basa sul contesto dell'evento di input che Lambda per oggetti S3 fornisce alla funzione stessa. Il contesto dell'evento fornisce informazioni relative alla richiesta eseguita nell'evento inviato da S3 Object Lambda a Lambda. e che contiene i parametri utilizzati per crearla.

    I campi utilizzati per creare la funzione Lambda precedente sono i seguenti:

    Il campo getObjectContext si riferisce ai dettagli di ingresso e uscita per le connessioni ad Amazon S3 e S3 Object Lambda. Ha i seguenti campi:

    • inputS3Url: un URL prefirmato che la funzione Lambda può utilizzare per scaricare l'oggetto originale dal punto di accesso di supporto. Utilizzando un URL prefirmato, la funzione Lambda non ha bisogno di avere le autorizzazioni di lettura di Amazon S3 per recuperare l'oggetto originale e può accedere solo all'oggetto elaborato da ogni chiamata.

    • outputRoute: un token di routing che viene aggiunto all'URL di S3 Object Lambda quando la funzione Lambda richiama WriteGetObjectResponse per reinviare l'oggetto trasformato.

    • outputToken: un token utilizzato da S3 Object Lambda per associare la chiamata WriteGetObjectResponse al chiamante originale quando reinvia l'oggetto trasformato.

    Per ulteriori informazioni su tutti i campi del contesto dell'evento, consulta Formato e utilizzo del contesto degli eventi e Scrittura di funzioni Lambda per i punti di accesso Lambda per oggetti S3.

  3. Nel terminale locale, inserisci il seguente comando per installare il pacchetto virtualenv:

    python -m pip install virtualenv
  4. Nel terminale locale, apri la cartella object-lambda creata in precedenza e inserisci il seguente comando per creare e inizializzare un nuovo ambiente virtuale denominato venv.

    python -m virtualenv venv
  5. Per attivare l'ambiente virtuale, inserire il seguente comando per eseguire il file activate dalla cartella dell'ambiente:

    Se sei un utente macOS, esegui questo comando:

    source venv/bin/activate

    Per utenti Windows: esegui questo comando:

    .\venv\Scripts\activate

    Il prompt dei comandi si modifica per mostrare (venv), indicando che l'ambiente virtuale è attivo.

  6. Per installare le librerie richieste, esegui i seguenti comandi riga per riga nell'ambiente virtuale venv.

    Questi comandi installano versioni aggiornate delle dipendenze della funzione Lambda lambda_handler. Queste dipendenze sono gli SDK per Python (Boto3) AWS e il modulo delle richieste.

    pip3 install boto3
    pip3 install requests
  7. Per disattivare l'ambiente virtuale, esegui il comando seguente:

    deactivate
  8. Per creare un pacchetto di implementazione con le librerie installate come file .zip denominato lambda.zip alla root della directory object-lambda, eseguire i seguenti comandi riga per riga nel terminale locale.

    Suggerimento

    È possibile che i seguenti comandi debbano essere regolati per funzionare in un ambiente specifico. Ad esempio, una libreria potrebbe essere visualizzata in site-packages o dist-packages e la prima cartella potrebbe essere lib o lib64. Inoltre, la cartella python potrebbe essere denominata con una versione di Python diversa. Per localizzare un pacchetto specifico, utilizza il comando pip show.

    Se sei un utente macOS, esegui questi comandi:

    cd venv/lib/python3.8/site-packages
    zip -r ../../../../lambda.zip .

    Se sei un utente Windows, esegui questi comandi:

    cd .\venv\Lib\site-packages\
    powershell Compress-Archive * ../../../lambda.zip

    L'ultimo comando salva il pacchetto di implementazione nella directory principale della directory object-lambda.

  9. Aggiungere il file del codice della funzione transform.py alla root del pacchetto di implementazione.

    Se sei un utente macOS, esegui questi comandi:

    cd ../../../../
    zip -g lambda.zip transform.py

    Se sei un utente Windows, esegui questi comandi:

    cd ..\..\..\
    powershell Compress-Archive -update transform.py lambda.zip

    Dopo aver completato questa fase, si dovrà avere la seguente struttura della directory:

    lambda.zip$ │ transform.py │ __pycache__ | boto3/ │ certifi/ │ pip/ │ requests/ ...

Creare una funzione Lambda con un ruolo di esecuzione (console)

  1. Accedi AWS Management Console e apri la AWS Lambda console all'indirizzo https://console.aws.amazon.com/lambda/.

  2. Nel pannello di navigazione a sinistra, scegli Functions (Funzioni).

  3. Selezionare Create function (Crea funzione).

  4. Scegli Author from scratch (Crea da zero).

  5. In Basic information (Informazioni di base) eseguire queste operazioni:

    1. Nel campo Function name (Nome funzione), immettere tutorial-object-lambda-function.

    2. In Runtime (Runtime), scegli Python 3.8 o una versione successiva.

  6. Espandi la sezione Change default execution role (Cambia ruolo di esecuzione predefinito). In Execution role (Ruolo di esecuzione), scegli Create a new role with basic Lambda permissions (Crea un nuovo ruolo con le autorizzazioni Lambda di base).

    Nel passaggio 5 più avanti di questo tutorial, colleghi AmazonS3 al ruolo di esecuzione di ObjectLambdaExecutionRolePolicy questa funzione Lambda.

  7. Mantieni le impostazioni rimanenti impostate sui valori predefiniti.

  8. Scegli Crea funzione.

Implementa il codice della tua funzione Lambda con gli archivi in file .zip e configura la funzione Lambda (console)

  1. Nella AWS Lambda console all'indirizzo https://console.aws.amazon.com/lambda/, scegli Funzioni nel riquadro di navigazione a sinistra.

  2. Scegli la funzione Lambda creata in precedenza (ad esempio, tutorial-object-lambda-function).

  3. Nella pagina dei dettagli della funzione Lambda, scegli la scheda Code (Codice). Nella sezione Code source (Origine codice), scegli Upload from (Carica da) e quindi .zip file (file .zip).

  4. Scegli Upload (Carica) per selezionare il file .zip locale.

  5. Scegli il file lambda.zip creato in precedenza, quindi scegli Open (Apri).

  6. Selezionare Salva.

  7. Nel pannello Runtime settings (Impostazioni runtime), scegli Edit (Modifica).

  8. Nella pagina Edit runtime settings (Modifica impostazioni runtime), verifica che Runtime (Runtime) sia impostato su Python 3.8 o una versione successiva.

  9. Per indicare al runtime Lambda quale metodo gestore richiamare nel codice della funzione Lambda, inserisci transform.lambda_handler in Handler (Gestore).

    Quando si configura una funzione in Python, il valore dell'impostazione del gestore è costituito dal nome del file e dal nome del modulo del gestore esportato, separati da un punto. Ad esempio, transform.lambda_handler richiama il metodo lambda_handler definito nel file transform.py.

  10. Selezionare Salva.

  11. (Facoltativo) Nella pagina dei dettagli della funzione Lambda, scegli la scheda Configuration (Configurazione). Nel pannello di navigazione a sinistra, scegli General configuration (Configurazione generale), quindi scegli Edit (Modifica). Nel campo Timeout inserisci 1 min 0 sec. Mantieni le impostazioni rimanenti sui valori predefiniti e scegli Save (Salva).

    Il Timeout è la quantità di tempo consentita da Lambda per l'esecuzione di una funzione per una chiamata prima di arrestarla. Il valore predefinito è 3 secondi. La durata massima per una funzione Lambda utilizzata da S3 Object Lambda è di 60 secondi. I prezzi si basano sulla quantità di memoria configurata e sulla quantità di tempo di esecuzione del codice.

Fase 5: Configurazione di una policy IAM per il ruolo di esecuzione della funzione Lambda

Per abilitare la funzione Lambda a fornire dati personalizzati e intestazioni di risposta al chiamante GetObject, il ruolo di esecuzione della funzione Lambda deve disporre delle autorizzazioni IAM per chiamare l'API WriteGetObjectResponse.

Allegare una policy IAM al ruolo della funzione Lambda

  1. Nella AWS Lambda console all'indirizzo https://console.aws.amazon.com/lambda/, scegli Funzioni nel riquadro di navigazione a sinistra.

  2. Scegli la funzione creata nella Fase 4 (ad esempio, tutorial-object-lambda-function).

  3. Nella pagina dei dettagli della funzione Lambda, scegli la scheda Configuration (Configurazione), quindi scegli Permissions (Autorizzazioni) nel pannello di navigazione a sinistra.

  4. In Execution role (Ruolo di esecuzione) scegli il collegamento Role Name (Nome ruolo). Si apre la console IAM.

  5. Nella pagina Summary (Riepilogo) della console IAM del ruolo di esecuzione della funzione Lambda, seleziona la scheda Permissions (Autorizzazioni). Quindi, nel menu Add Permissions (Aggiungi autorizzazioni), scegli Attach policies (Collega policy).

  6. Nella pagina Attach permissions (Allega autorizzazioni) inserisci AmazonS3ObjectLambdaExecutionRolePolicy nella casella di ricerca per filtrare l'elenco di policy. Seleziona la casella di controllo accanto al nome della politica AmazonS3 ObjectLambdaExecutionRolePolicy.

  7. Scegli Collega policy.

Fase 6: Creazione di un punto di accesso Lambda per oggetti S3

Un punto di accesso Lambda per oggetti S3 offre la flessibilità di richiamare una funzione Lambda direttamente da una richiesta GET S3 in modo che la funzione possa elaborare i dati recuperati da un punto di accesso S3. Quando crei e configuri un punto di accesso Lambda per oggetti S3, devi specificare la funzione Lambda da richiamare e fornire il contesto dell'evento in formato JSON come parametri personalizzati utilizzabili da Lambda.

Per creare un punto di accesso Lambda per oggetti S3
  1. Accedi AWS Management Console e apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/.

  2. Nel pannello di navigazione a sinistra, scegli Object Lambda Access Points (Punti di accesso Object Lambda).

  3. Nella pagina Object Lambda Access Points (Punti di accesso Object Lambda), scegli Create Object Lambda Access Point (Crea punto di accesso Object Lambda).

  4. In Nome del punto di accesso per le espressioni Lambda dell'oggetto immetti il nome che desideri utilizzare per il punto di accesso Lambda per oggetti (per esempio, tutorial-object-lambda-accesspoint).

  5. In Supporting Access Point (Access point di supporto), inserisci o seleziona il punto di accesso standard creato nella Fase 3 (ad esempio, tutorial-access-point), quindi scegli Choose supporting Access Point (Scegli punto di accesso di supporto).

  6. Per le API S3, per recuperare gli oggetti dal bucket S3 per l'elaborazione della funzione Lambda, seleziona. GetObject

  7. In Invoke Lambda function (Chiama una funzione Lambda) per questo tutorial puoi scegliere una delle due opzioni seguenti.

    • Scegli Choose from functions in your account (Scegli tra le funzioni nell'account), dopodiché scegli la funzione Lambda creata nella Fase 4 (ad esempio, tutorial-object-lambda-function) dall'elenco a discesa Lambda function (Funzione Lambda).

    • Scegli Enter ARN (Inserisci ARN), quindi inserisci l'Amazon Resource Name (ARN) della funzione Lambda creata nella Fase 4.

  8. In Lambda function version (Versione delle funzioni Lambda), scegli $LATEST (l'ultima versione della funzione Lambda creata nella Fase 4).

  9. (Facoltativo) Se hai bisogno che la tua funzione Lambda riconosca ed elabori le richieste GET con intestazioni con intervalli e numeri di parte, seleziona Lambda function supports requests using range (La funzione Lambda supporta le richieste che utilizzano l'intervallo) e Lambda function supports requests using part numbers (La funzione Lambda supporta le richieste che utilizzano numeri di parte). Altrimenti, deselezionare queste due caselle di controllo.

    Per ulteriori informazioni sull'utilizzo di intervalli o numeri di parte con S3 Object Lambda, consulta Utilizzo delle intestazioni Range e partNumber.

  10. (Facoltativo) In Payload - optional (Payload - facoltativo), aggiungi il testo JSON per fornire alla tua funzione Lambda ulteriori informazioni.

    Un payload è un testo JSON opzionale che puoi fornire alla tua funzione Lambda come input per tutte le chiamate provenienti da uno specifico punto di accesso Lambda per oggetti S3. Per personalizzare il comportamento di più punti di accesso Lambda per oggetti che richiamano la stessa funzione Lambda, puoi configurare i payload con parametri diversi, estendendo così la flessibilità della funzione stessa.

    Per ulteriori informazioni sul payload, consulta Formato e utilizzo del contesto degli eventi.

  11. (Facoltativo) In Parametri di richiesta - facoltativo, scegli Disabilita o Abilita per aggiungere il monitoraggio Amazon S3 al punto di accesso Lambda per oggetti. Le metriche delle richieste vengono fatturate alla tariffa standard di Amazon CloudWatch . Per ulteriori informazioni, consultare Prezzi di CloudWatch.

  12. In Object Lambda Access Point policy - optional (Policy del punto di accesso Object Lambda - facoltativo mantieni l'impostazione di default.

    (Facoltativo) Puoi impostare una policy delle risorse. Questa policy delle risorse fornisce all'API GetObject l'autorizzazione per utilizzare il punto di accesso Lambda per oggetti specificato.

  13. Mantieni le impostazioni rimanenti sui valori di default, quindi scegliCreate Object Lambda Access Point (Crea punto di accesso Object Lambda).

Fase 7: Visualizzazione dei dati trasformati

S3 Object Lambda è ora pronto a trasformare i tuoi dati per il tuo caso d'uso. In questo tutorial, S3 Object Lambda trasforma tutto il testo dell'oggetto in maiuscolo.

Visualizzazione dei dati trasformati nel punto di accesso Lambda per oggetti S3

Quando chiedi di recuperare un file tramite il punto di accesso Lambda per oggetti S3, esegui una chiamata API GetObject a Lambda per oggetti S3. S3 Object Lambda richiama la funzione Lambda per trasformare i dati, dopodiché restituisce i dati trasformati come risposta alla chiamata API GetObject S3 standard.

  1. Accedi AWS Management Console e apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/.

  2. Nel pannello di navigazione a sinistra, scegli Object Lambda Access Points (Punti di accesso Object Lambda).

  3. Nella pagina Punti di accesso Lambda dell'oggetto scegli il punto di accesso Lambda per oggetti S3 creato nella Fase 6 (ad esempio, tutorial-object-lambda-accesspoint).

  4. Nella scheda Oggetti del punto di accesso Lambda per oggetti S3, seleziona il file con lo stesso nome (ad esempio, tutorial.txt) di quello che hai caricato nel bucket S3 nella Fase 2.

    Questo file deve contenere tutti i dati trasformati.

  5. Per visualizzare i dati trasformati, scegli Open (Apri) o Download (Scarica).

Esegui uno script Python per stampare i dati originali e trasformati

Puoi utilizzare S3 Object Lambda con le tue applicazioni esistenti. A tale scopo, aggiorna la configurazione dell'applicazione in modo da utilizzare l'ARN del nuovo punto di accesso Lambda per oggetti S3 creato nella Fase 6 per recuperare i dati da S3.

Il seguente script Python di esempio stampa sia i dati originali dal bucket S3 sia i dati trasformati dal punto di accesso Lambda per oggetti S3.

  1. Accedi AWS Management Console e apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/.

  2. Nel pannello di navigazione a sinistra, scegli Object Lambda Access Points (Punti di accesso Object Lambda).

  3. Nella pagina Punti di accesso Lambda dell'oggetto scegli il pulsante di opzione a sinistra del punto di accesso Lambda per oggetti S3 creato nella Fase 6 (ad esempio, tutorial-object-lambda-accesspoint).

  4. Scegli Copy ARN (Copia ARN).

  5. Salva l'ARN per utilizzarlo in un secondo momento.

  6. Scrivi uno script Python sul tuo computer locale per stampare sia i dati originali (ad esempio, tutorial.txt) dal tuo bucket S3 sia i dati trasformati (ad esempio, tutorial.txt) dal punto di accesso Lambda per oggetti S3. Puoi utilizzare il seguente script di esempio.

    import boto3 from botocore.config import Config s3 = boto3.client('s3', config=Config(signature_version='s3v4')) def getObject(bucket, key): objectBody = s3.get_object(Bucket = bucket, Key = key) print(objectBody["Body"].read().decode("utf-8")) print("\n") print('Original object from the S3 bucket:') # Replace the two input parameters of getObject() below with # the S3 bucket name that you created in Step 1 and # the name of the file that you uploaded to the S3 bucket in Step 2 getObject("tutorial-bucket", "tutorial.txt") print('Object transformed by S3 Object Lambda:') # Replace the two input parameters of getObject() below with # the ARN of your S3 Object Lambda Access Point that you saved earlier and # the name of the file with the transformed data (which in this case is # the same as the name of the file that you uploaded to the S3 bucket # in Step 2) getObject("arn:aws:s3-object-lambda:us-west-2:111122223333:accesspoint/tutorial-object-lambda-accesspoint", "tutorial.txt")
  7. Salva il tuo script Python con un nome personalizzato (ad esempio, tutorial_print.py) nella cartella (ad esempio, object-lambda) che hai creato nella Fase 4 sul computer locale.

  8. Nel terminale locale, esegui il seguente comando dalla root della directory (ad esempio, object-lambda) che hai creato nella Fase 4.

    python3 tutorial_print.py

    Dovresti vedere sia i dati originali sia i dati trasformati (tutto il testo in maiuscolo) attraverso il terminale. Per esempio l'output visualizzato sarà simile al testo seguente.

    Original object from the S3 bucket: Amazon S3 Object Lambda Tutorial: You can add your own code to process data retrieved from S3 before returning it to an application. Object transformed by S3 Object Lambda: AMAZON S3 OBJECT LAMBDA TUTORIAL: YOU CAN ADD YOUR OWN CODE TO PROCESS DATA RETRIEVED FROM S3 BEFORE RETURNING IT TO AN APPLICATION.

Fase 8: Pulizia

Se hai trasformato i dati attraverso S3 Object Lambda solo come esercizio di apprendimento, elimina le risorse AWS che hai allocato per non accumulare più addebiti.

Eliminazione del punto di accesso Lambda per oggetti

  1. Accedi AWS Management Console e apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/.

  2. Nel pannello di navigazione a sinistra, scegli Object Lambda Access Points (Punti di accesso Object Lambda).

  3. Nella pagina Punti di accesso Lambda dell'oggetto scegli il pulsante di opzione a sinistra del punto di accesso Lambda per oggetti S3 creato nella Fase 6 (ad esempio, tutorial-object-lambda-accesspoint).

  4. Scegli Elimina.

  5. Conferma di voler eliminare il punto di accesso Lambda per oggetti inserendone il nome nel campo di testo che viene visualizzato, quindi scegli Elimina.

Eliminazione del punto di accesso S3

  1. Accedi AWS Management Console e apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/.

  2. Nel pannello di navigazione a sinistra, scegli Access Points (Punti di accesso).

  3. Passa al punto di accesso creato nella Fase 3 (ad esempio, tutorial-access-point), quindi scegli il pulsante di opzione accanto al nome del punto di accesso.

  4. Scegli Elimina.

  5. Conferma di voler eliminare il punto di accesso inserendone il nome nel campo di testo che viene visualizzato, quindi scegli Delete (Elimina).

Eliminazione del ruolo di esecuzione per la funzione Lambda

  1. Accedi AWS Management Console e apri la AWS Lambda console all'indirizzo https://console.aws.amazon.com/lambda/.

  2. Nel pannello di navigazione a sinistra, scegli Functions (Funzioni).

  3. Scegli la funzione creata nella Fase 4 (ad esempio, tutorial-object-lambda-function).

  4. Nella pagina dei dettagli della funzione Lambda, scegli la scheda Configuration (Configurazione), quindi scegli Permissions (Autorizzazioni) nel pannello di navigazione a sinistra.

  5. In Execution role (Ruolo di esecuzione) scegli il collegamento Role Name (Nome ruolo). Si apre la console IAM.

  6. Nella pagina Summary (Riepilogo) della console IAM del ruolo di esecuzione della funzione Lambda, scegli Delete role (Elimina ruolo).

  7. Nella finestra di dialogo Delete role (Elimina ruolo), scegli Yes, Delete (Sì, elimina).

Eliminazione della funzione Lambda

  1. Nella AWS Lambda console all'indirizzo https://console.aws.amazon.com/lambda/, scegli Funzioni nel riquadro di navigazione a sinistra.

  2. Seleziona la casella di controllo a sinistra del nome della funzione creata nella Fase 4 (ad esempio, tutorial-object-lambda-function).

  3. Scegli Azioni, quindi Elimina.

  4. Nella finestra di dialogo Delete function (Elimina funzione), scegli Delete (Elimina).

Elimina il gruppo di CloudWatch log

  1. Apri la CloudWatch console all'indirizzo https://console.aws.amazon.com/cloudwatch/.

  2. Nel pannello di navigazione a sinistra, scegli Log groups (Gruppi di registri).

  3. Individua il gruppo di registri il cui nome termina con la funzione Lambda creata nella Fase 4( ad esempio, tutorial-object-lambda-function).

  4. Seleziona la casella di controllo a sinistra del nome del gruppo di registri.

  5. Scegli Actions (Operazioni), quindi scegli Delete log group(s) (Elimina gruppi di registri).

  6. Nella finestra di dialogo Delete log group(s) (Elimina gruppo/i di log) scegli Delete (Elimina).

Eliminazione del file originale nel bucket S3 di origine

  1. Accedi AWS Management Console e apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/.

  2. Nel pannello di navigazione a sinistra, scegli Buckets (Bucket).

  3. Nell'elenco Bucket name (Nome bucket) scegli il nome del bucket su cui hai caricato il file originale nella Fase 2 (ad esempio, tutorial-bucket).

  4. Seleziona la casella di controllo a sinistra del nome dell'oggetto da eliminare (ad esempio, tutorial.txt).

  5. Scegli Elimina.

  6. Nella pagina Delete objects (Elimina oggetti), nella sezione Permanently delete objects? (Eliminare definitivamente gli oggetti?) conferma che desideri eliminare questo oggetto inserendo permanently delete nella casella di testo.

  7. Scegliere Delete objects (Elimina oggetti).

Eliminazione del bucket S3 di origine

  1. Accedi AWS Management Console e apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/.

  2. Nel pannello di navigazione a sinistra, scegli Buckets (Bucket).

  3. Nell'elenco Buckets (Bucket) seleziona il pulsante di opzione accanto al nome del bucket creato nella Fase 1 (ad esempio, tutorial-bucket).

  4. Scegli Elimina.

  5. Nella pagina Delete bucket (Elimina bucket) conferma che desideri eliminare il bucket inserendone il nome nel campo di testo e quindi scegli Delete bucket (Elimina bucket).

Eliminazione dell'utente IAM

  1. Accedi AWS Management Console e apri la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

  2. Nel pannello di navigazione a sinistra, scegli Users (Utenti), quindi selezionare la casella di controllo accanto al nome utente che desideri eliminare.

  3. Nella parte superiore della pagina, scegli Delete (Elimina).

  4. Nella casella di dialogo Delete user name? (Eliminare nome utente?) inserisci il nome utente nel campo di inserimento del testo per confermare l'eliminazione dell'utente. Scegli Elimina.

Passaggi successivi

Dopo aver completato questo tutorial, puoi personalizzare la funzione Lambda per il tuo caso d'uso in modo da modificare i dati restituiti dalle richieste GET S3 standard.

Di seguito è riportato un elenco di casi d'uso comuni per S3 Object Lambda:

Per ulteriori informazioni su S3 Object Lambda, consulta Trasformazione di oggetti con S3 Object Lambda.