Creazione di punti di accesso Object Lambda - Amazon Simple Storage Service

Creazione di punti di accesso Object Lambda

Un punto di accesso Lambda per oggetti è associato esattamente a un punto di accesso standard e quindi a un bucket Amazon S3. Per creare un punto di accesso Lambda per oggetti, sono necessarie le seguenti risorse:

Nelle sezioni seguenti viene descritto come creare un punto di accesso Lambda per oggetti utilizzando:

  • Il AWS Management Console

  • AWS Command Line Interface (AWS CLI)

  • Un modello AWS CloudFormation

  • Il AWS Cloud Development Kit (AWS CDK)

Per ulteriori informazioni su come creare un punto di accesso Lambda per oggetti tramite REST API, consulta CreateAccessPointForObjectLambda nella Documentazione di riferimento delle API di Amazon Simple Storage Service.

Creazione di un punto di accesso Lambda per oggetti

Utilizza una delle procedure riportate di seguito per creare il punto di accesso Lambda per oggetti.

Per creare un punto di accesso Lambda per oggetti utilizzando la console
  1. Accedi alla AWS Management Console e apri la console di 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 Object Lambda Access Point name (Nome punto di accesso Object Lambda), specifica il nome da utilizzare per il punto di accesso.

    Come per i punti di accesso standard, esistono regole per la denominazione dei punti di accesso Lambda per oggetti. Per ulteriori informazioni, consulta Regole per la denominazione degli Punti di accesso Amazon S3.

  5. In Supporting Access Point (Punto di accesso di supporto), specifica o seleziona il punto di accesso standard da utilizzare. Il punto di accesso deve trovarsi nella stessa Regione AWS degli oggetti che desideri trasformare. Per informazioni sulla creazione di punti di accesso standard, consulta la sezione Creazione di access point.

  6. In Configurazione della trasformazione puoi aggiungere una funzione che trasforma i dati per il punto di accesso Lambda per oggetti. Completa una delle seguenti operazioni:

    • Se nel tuo account esiste già una funzione AWS Lambda, puoi sceglierla in Invoke Lambda function (Richiama funzione Lambda). Qui puoi specificare il nome della risorsa Amazon (ARN) di una funzione Lambda nell'Account AWS o scegliere una funzione Lambda nel menu a discesa.

    • Se desideri utilizzare una funzione AWS integrata, scegli il nome della funzione in AWS built function (Funzione AWS integrata) e seleziona Create Lambda function (Crea funzione Lambda). Verrai reindirizzato alla console Lambda, dove potrai implementare una funzione integrata nel tuo Account AWS. Per ulteriori informazioni sulle funzioni integrate, consulta Utilizzo delle funzioni Lambda integrate in AWS.

    In S3 APIs (API S3), scegli una o più operazioni API da richiamare. Per ogni API selezionata, devi specificare una funzione Lambda da richiamare.

  7. (Facoltativo) In Payload, aggiungi il testo JSON da fornire come input alla funzione Lambda. Puoi configurare payload con parametri diversi per diversi punti di accesso Lambda per oggetti che richiamano la stessa funzione Lambda, estendendo così la flessibilità della funzione stessa.

    Importante

    Quando utilizzi i punti di accesso Lambda per oggetti, assicurati che il payload non contenga informazioni riservate.

  8. (Facoltativo) In Range and part number (Intervallo e numero parte), devi abilitare l'opzione se vuoi elaborare le richieste GET e HEAD con intestazioni di intervallo e numero di parte. Selezionando questa opzione confermi che la funzione Lambda è in grado di riconoscere ed elaborare queste richieste. Per ulteriori informazioni sulle intestazioni di intervalli e numeri di parte, consulta Utilizzo delle intestazioni Range e partNumber.

  9. (Facoltativo) In Parametri di richiesta seleziona Abilita o Disabilita per aggiungere il monitoraggio Amazon S3 al punto di accesso Lambda per oggetti. I parametri di richiesta vengono fatturati in base alla tariffa Amazon CloudWatch standard.

  10. (Facoltativo) In Object Lambda Access Point policy (Policy punto di accesso Object Lambda), imposta una policy delle risorse. Le policy delle risorse concedono le autorizzazioni per il punto di accesso Lambda per oggetti specificato e possono controllare l'utilizzo del punto di accesso per risorsa, utente o altre condizioni. Per ulteriori informazioni sulle policy delle risorse per i punti di accesso Object Lambda, consulta Configurazione delle policy IAM per i punti di accesso Lambda per oggetti.

  11. In Block Public Access settings for this Object Lambda Access Point (Impostazioni blocco accesso pubblico per questo punto di accesso Object Lambda), seleziona le impostazioni di Blocco dell'accesso pubblico Amazon S3 da applicare al punto di accesso. Tutte le impostazioni di blocco dell'accesso pubblico sono abilitate per impostazione predefinita per i nuovi punti di accesso Object Lambda. È consigliabile non modificare questa impostazione predefinita. Amazon S3 attualmente non supporta la modifica delle impostazioni di blocco dell'accesso pubblico dei punti di accesso dopo la creazione del punto di accesso Object Lambda.

    Per ulteriori informazioni sull'utilizzo del blocco dell'accesso pubblico in Amazon S3, consulta Gestione dell'accesso pubblico agli access point.

  12. Seleziona Create Object Lambda Access Point (Crea punto di accesso Object Lambda).

Come creare un punto di accesso Lambda per oggetti utilizzando un modello AWS CloudFormation
Nota

Per utilizzare i seguenti comandi, sostituisci user input placeholders con le tue specifiche informazioni.

  1. Scarica il pacchetto di implementazione s3objectlambda_deployment_package.zip delle funzioni AWS Lambda da S3 Object Lambda default configuration (Configurazione predefinita di S3 Object Lambda).

  2. Esegui il seguente comando put-object per caricare il pacchetto in un bucket Amazon S3.

    aws s3api put-object --bucket Amazon S3 bucket name --key s3objectlambda_deployment_package.zip --body release/s3objectlambda_deployment_package.zip
  3. Scarica il modello AWS CloudFormation s3objectlambda_defaultconfig.yaml da S3 Object Lambda default configuration (Configurazione predefinita di S3 Object Lambda).

  4. Esegui il seguente comando deploy per implementare il modello nell'Account AWS in uso.

    aws cloudformation deploy --template-file s3objectlambda_defaultconfig.yaml \ --stack-name AWS CloudFormation stack name \ --parameter-overrides ObjectLambdaAccessPointName=Object Lambda Access Point name \ SupportingAccessPointName=Amazon S3 access point S3BucketName=Amazon S3 bucket \ LambdaFunctionS3BucketName=Amazon S3 bucket containing your Lambda package \ LambdaFunctionS3Key=Lambda object key LambdaFunctionS3ObjectVersion=Lambda object version \ LambdaFunctionRuntime=Lambda function runtime --capabilities capability_IAM

Puoi configurare questo modello AWS CloudFormation per richiamare Lambda per le operazioni API GET, HEAD e LIST. Per ulteriori informazioni sulla modifica della configurazione predefinita del modello, consulta Utilizzo di un modello AWS CloudFormation per automatizzare la configurazione di S3 Object Lambda.

Per creare un punto di accesso Lambda per oggetti utilizzando la AWS CLI
Nota

Per utilizzare i seguenti comandi, sostituisci user input placeholders con le tue specifiche informazioni.

Nell'esempio seguente viene creato un punto di accesso Lambda per oggetti denominato my-object-lambda-ap per il bucket DOC-EXAMPLE-BUCKET1 nell'account 111122223333. L'esempio presuppone che sia già stato creato un punto di accesso standard denominato example-ap. Per informazioni sulla creazione di un punto di accesso standard, consulta la sezione Creazione di access point.

In questo esempio viene utilizzata la funzione AWS precompilata decompress. Per ulteriori informazioni sulle funzioni incorporate, consulta Utilizzo delle funzioni Lambda integrate in AWS.

  1. Creare un bucket. In questo esempio verrà utilizzato DOC-EXAMPLE-BUCKET1. Per ulteriori informazioni sulla creazione dei bucket, consulta la sezione Creazione di un bucket.

  2. Creare un punto di accesso standard e collegarlo al bucket. In questo esempio verrà utilizzato example-ap. Per informazioni sulla creazione di punti di accesso standard, consulta la sezione Creazione di access point.

  3. Completa una delle seguenti operazioni:

  4. Crea un file di configurazione JSON denominato my-olap-configuration.json. In questa configurazione, fornisci il punto di accesso di supporto e il nome della risorsa Amazon (ARN) per la funzione Lambda creata nei passaggi precedenti o l'ARN per la funzione predefinita che stai utilizzando.

    { "SupportingAccessPoint" : "arn:aws:s3:us-east-1:111122223333:accesspoint/example-ap", "TransformationConfigurations": [{ "Actions" : ["GetObject", "HeadObject", "ListObjects", "ListObjectsV2"], "ContentTransformation" : { "AwsLambda": { "FunctionPayload" : "{\"compressionType\":\"gzip\"}", "FunctionArn" : "arn:aws:lambda:us-east-1:111122223333:function/compress" } } }] }
  5. Esegui il comando create-access-point-for-object-lambda per creare il punto di accesso Lambda per oggetti.

    aws s3control create-access-point-for-object-lambda --account-id 111122223333 --name my-object-lambda-ap --configuration file://my-olap-configuration.json
  6. (Facoltativo) Crea un file di policy JSON denominato my-olap-policy.json.

    L'aggiunta di una policy delle risorse per il punto di accesso Object Lambda può controllare l'utilizzo del punto di accesso per risorsa, utente o altre condizioni. Questa policy delle risorse concede l'autorizzazione GetObject per l'account 444455556666 al punto di accesso Lambda per oggetti specificato.

    { "Version": "2008-10-17", "Statement": [ { "Sid": "Grant account 444455556666 GetObject access", "Effect": "Allow", "Action": "s3-object-lambda:GetObject", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Resource": "your-object-lambda-access-point-arn" } ] }
  7. (Facoltativo) Esegui il comando put-access-point-policy-for-object-lambda per impostare la policy delle risorse.

    aws s3control put-access-point-policy-for-object-lambda --account-id 111122223333 --name my-object-lambda-ap --policy file://my-olap-policy.json
  8. (Facoltativo) Specifica un payload.

    Un payload è un JSON opzionale che puoi fornire alla tua funzione AWS Lambda come input. Puoi configurare payload con parametri diversi per diversi punti di accesso Lambda per oggetti che richiamano la stessa funzione Lambda, estendendo così la flessibilità della funzione stessa.

    La seguente configurazione del punto di accesso Lambda per oggetti mostra un payload con due parametri.

    { "SupportingAccessPoint": "AccessPointArn", "CloudWatchMetricsEnabled": false, "TransformationConfigurations": [{ "Actions": ["GetObject", "HeadObject", "ListObjects", "ListObjectsV2"], "ContentTransformation": { "AwsLambda": { "FunctionArn": "FunctionArn", "FunctionPayload": "{\"res-x\": \"100\",\"res-y\": \"100\"}" } } }] }

    La seguente configurazione del punto di accesso Lambda per oggetti mostra un payload con un parametro e con GetObject-Range, GetObject-PartNumber, HeadObject-Range e HeadObject-PartNumber abilitati.

    { "SupportingAccessPoint":"AccessPointArn", "CloudWatchMetricsEnabled": false, "AllowedFeatures": ["GetObject-Range", "GetObject-PartNumber", "HeadObject-Range", "HeadObject-PartNumber"], "TransformationConfigurations": [{ "Action": ["GetObject", "HeadObject", "ListObjects", "ListObjectsV2"], "ContentTransformation": { "AwsLambda": { "FunctionArn":"FunctionArn", "FunctionPayload": "{\"compression-amount\": \"5\"}" } } }] }
    Importante

    Quando utilizzi i punti di accesso Lambda per oggetti, assicurati che il payload non contenga informazioni riservate.

È possibile creare un punto di accesso Lambda per oggetti utilizzando la configurazione predefinita fornita da Amazon S3. Puoi scaricare un codice sorgente del modello e della funzione Lambda AWS CloudFormation dal Repository GitHub e implementare queste risorse per configurare un access point Lambda per oggetti funzionale.

Per informazioni sulla modifica della configurazione predefinita del modello AWS CloudFormation, consulta la sezione Utilizzo di un modello AWS CloudFormation per automatizzare la configurazione di S3 Object Lambda.

Per ulteriori informazioni sulla configurazione dei punti di accesso Lambda per oggetti utilizzando AWS CloudFormation senza il modello, consulta AWS::S3ObjectLambda::AccessPoint nella Guida per l'utente di AWS CloudFormation.

Per caricare il pacchetto di implementazione della funzione Lambda
  1. Scarica il pacchetto di implementazione s3objectlambda_deployment_package.zip delle funzioni AWS Lambda da S3 Object Lambda default configuration (Configurazione predefinita di S3 Object Lambda).

  2. Carica il pacchetto in un bucket Amazon S3

Per creare un punto di accesso Lambda per oggetti utilizzando la console AWS CloudFormation
  1. Scarica il modello AWS CloudFormation s3objectlambda_defaultconfig.yaml da S3 Object Lambda default configuration (Configurazione predefinita di S3 Object Lambda).

  2. Accedi alla Console di gestione AWS e apri la console AWS CloudFormation all'indirizzo https://console.aws.amazon.com/cloudformation.

  3. Completa una delle seguenti operazioni:

    • Se è la prima volta che usi AWS CloudFormation, nella home page di AWS CloudFormation, scegli Create stack (Crea stack).

    • Se invece hai già utilizzato AWS CloudFormation, nel riquadro di navigazione a sinistra sceglie Stacks (Stack). Scegli Create stack (Crea stack), quindi With new resources (standard) Con nuove risorse (standard).

  4. Per Prerequisito - Prepara modello, scegliere Il modello è pronto.

  5. In Specify template (Specifica modello), scegli Upload a template file (Carica un file modello), quindi carica s3objectlambda_defaultconfig.yaml.

  6. Seleziona Successivo.

  7. Nella pagina Specifica dettagli della pila, immetti un nome per la pila.

  8. Nella sezione Parameters (Parametri), specifica i seguenti parametri definiti nel modello dello stack:

    1. Per CreateNewSupportingAccessPoint, procedi in uno dei seguenti modi:

      • Se disponi già di un punto di accesso di supporto per il bucket S3 in cui hai caricato il modello, scegli false.

      • Se intendi creare un nuovo punto di accesso per questo bucket, scegli true.

    2. Per EnableCloudWatchMonitoring, scegli true o false, a seconda che si desideri abilitare o meno i parametri e gli allarmi delle richieste di Amazon CloudWatch.

    3. (Facoltativo) Per LambdaFunctionPayload, aggiungi il testo JSON che vuoi fornire come input alla funzione Lambda. Puoi configurare payload con parametri diversi per diversi punti di accesso Lambda per oggetti che richiamano la stessa funzione Lambda, estendendo così la flessibilità della funzione stessa.

      Importante

      Quando utilizzi i punti di accesso Lambda per oggetti, assicurati che il payload non contenga informazioni riservate.

    4. Per LambdaFunctionRuntime, inserisci il runtime preferito per la funzione Lambda. Le scelte disponibili sono nodejs14.x, python3.9, java11.

    5. Per LambdaFunctionS3BucketName, inserisci il nome del bucket Amazon S3 dove hai caricato il pacchetto di implementazione.

    6. Per LambdaFunctionS3Key, Inserisci il nome della chiave oggetto Amazon S3 dove hai caricato il pacchetto di implementazione.

    7. Per LambdaFunctionS3ObjectVersion, inserisci la versione dell'oggetto Amazon S3 dove hai caricato il pacchetto di implementazione.

    8. Per ObjectLambdaAccessPointName, inserisci un nome per il punto di accesso Lambda per oggetti.

    9. Per S3BucketName, inserisci il nome del bucket Amazon S3 che verrà associato al punto di accesso Lambda per oggetti.

    10. Per SupportingAccessPointName, inserisci il nome del punto di accesso di supporto.

      Nota

      Questo è un punto di accesso associato al bucket Amazon S3 scelto nel passaggio precedente. Se non sono presenti punti di accesso associati al bucket Amazon S3, puoi configurare il modello per crearne uno scegliendo true per CreateNewSupportingAccessPoint.

  9. Seleziona Successivo.

  10. Nella pagina Configure stack options (Configura opzioni pila), scegliere Next (Successivo).

    Per ulteriori informazioni sulle impostazioni facoltative in questa pagina, consulta la sezione Impostazione delle opzioni dello stack AWS CloudFormation nella Guida per l'utente di AWS CloudFormation.

  11. Nella pagina Revisione, scegliere Crea pila.

Per ulteriori informazioni sulla configurazione dei punti di accesso Lambda per oggetti utilizzando AWS CDK, consulta la sezione Libreria di costrutti AWS::S3ObjectLambda nella Documentazione di riferimento delle API di AWS Cloud Development Kit (AWS CDK).