Creazione di access point Object Lambda
Un access point Object Lambda è associato esattamente a un access point standard e quindi a un bucket Amazon S3. Per creare un punto di accesso Lambda per oggetti, sono necessarie le seguenti risorse:
-
Un bucket Amazon S3. Per informazioni sulla creazione dei bucket, consulta Creazione di un bucket.
-
Un punto di accesso S3 standard. Quando utilizzi i punti di accesso Lambda per oggetti, questo punto di accesso standard è noto come punto di accesso di supporto. Per informazioni sulla creazione di punti di accesso standard, consulta la sezione Creazione di access point.
-
Una funzione AWS Lambda. Puoi creare una funzione Lambda personalizzata oppure utilizzare una funzione predefinita. Per ulteriori informazioni sulla creazione delle funzioni Lambda, consulta Scrittura di funzioni Lambda per gli access point S3 Object Lambda. Per ulteriori informazioni sulle funzioni precostituite, consulta Utilizzo delle funzioni Lambda create da AWS.
-
(Facoltativo) Una policy AWS Identity and Access Management (IAM). I punti di accesso Amazon S3 supportano le policy delle risorse IAM che consentono di controllare l'utilizzo del punto di accesso per risorsa, utente o altre condizioni. Per ulteriori informazioni sulla creazione di queste policy, consulta Configurazione dei criteri IAM per gli access point Object Lambda.
Nelle sezioni seguenti viene descritto come creare un punto di accesso Lambda per oggetti utilizzando:
-
AWS Management Console
-
AWS Command Line Interface (AWS CLI)
-
Un modello AWS CloudFormation
-
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
Accedi a AWS Management Console e apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/
. -
Nella barra di navigazione, scegli il nome di Regione AWS attualmente visualizzato. Quindi, scegli la Regione a cui passare.
-
Nel riquadro di navigazione sinistro, scegli Punti di accesso Lambda dell'oggetto.
-
Nella pagina Punti di accesso Lambda dell'oggetto, scegli Crea punto di accesso per le espressioni Lambda dell'oggetto.
-
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.
-
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 da trasformare. Per informazioni sulla creazione di punti di accesso standard, consulta la sezione Creazione di access point.
-
In Configurazione della trasformazione puoi aggiungere una funzione che trasforma i dati per il punto di accesso Lambda per oggetti. Esegui 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 create da 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.
-
-
(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 invocano 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.
-
(Facoltativo) In Range and part number (Intervallo e numero parte), devi abilitare l'opzione se vuoi elaborare le richieste
GET
eHEAD
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 gamma e sui numeri di parte, consulta Utilizzo delle intestazioni Range e partNumber. -
(Facoltativo) In Parametri di richiesta seleziona Abilita o Disabilita per aggiungere il monitoraggio Amazon S3 al punto di accesso Lambda per oggetti. Le metriche delle richieste sono fatturate alla tariffa standard di Amazon CloudWatch.
-
(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 sui criteri delle risorse Object Lambda Access Point, consulta Configurazione dei criteri IAM per gli access point Object Lambda.
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 accesso pubblico ai blocchi sono abilitate per impostazione predefinita per i nuovi access point Object Lambda e si consiglia di lasciare abilitate le impostazioni predefinite. 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.
-
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
con le tue specifiche informazioni.user input
placeholders
-
Scarica il pacchetto di implementazione della funzione AWS Lambda
s3objectlambda_deployment_package.zip
alla voce Configurazione predefinita di Lambda per oggetti S3. -
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 -
Scarica il modello AWS CloudFormation
s3objectlambda_defaultconfig.yaml
alla voce Configurazione predefinita di Lambda per oggetti S3. -
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
--capabilitiescapability_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
con le tue specifiche informazioni.user input
placeholders
Nell'esempio seguente viene creato un punto di accesso Lambda per oggetti denominato
per il bucket my-object-lambda-ap
nell'account amzn-s3-demo-bucket1
. L'esempio presuppone che sia già stato creato un punto di accesso standard denominato 111122223333
. Per informazioni sulla creazione di un punto di accesso standard, consulta la sezione Creazione di access point.example-ap
Questo esempio utilizza la funzione precostituita AWS decompress
. Per ulteriori informazioni sulle funzioni precostituite, consulta Utilizzo delle funzioni Lambda create da AWS.
-
Crea un bucket. In questo esempio verrà utilizzato
. Per informazioni sulla creazione dei bucket, consulta Creazione di un bucket.amzn-s3-demo-bucket1
-
Crea un punto di accesso standard e collegalo al bucket. In questo esempio verrà utilizzato
. Per informazioni sulla creazione di punti di accesso standard, consulta la sezione Creazione di access point.example-ap
-
Esegui una delle seguenti operazioni:
-
Crea una funzione Lambda nell'account da utilizzare per trasformare l'oggetto Amazon S3. Per ulteriori informazioni sulla creazione delle funzioni Lambda, consulta Scrittura di funzioni Lambda per gli access point S3 Object Lambda. Per utilizzare la funzione personalizzata con la AWS CLI, consulta Utilizzo di Lambda con AWS CLI nella Guida per gli sviluppatori AWS Lambda.
-
Utilizza una funzione AWS Lambda predefinita. Per ulteriori informazioni sulle funzioni precostituite, consulta Utilizzo delle funzioni Lambda create da AWS.
-
-
Crea un file di configurazione JSON chiamato
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" } } }] } -
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
--namemy-object-lambda-ap
--configuration file://my-olap-configuration.json
-
(Facoltativo) Crea un file di criteri 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
al punto di accesso Lambda per oggetti specificato.444455556666
{ "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
" } ] } -
(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
--namemy-object-lambda-ap
--policy file://my-olap-policy.json
-
(Facoltativo) Specifica un carico utile.
Un carico utile è un JSON opzionale che si può fornire alla funzione AWS Lambda come input. Puoi configurare payload con parametri diversi per diversi punti di accesso Lambda per oggetti che invocano 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
eHeadObject-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
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 distribuzione della funzione Lambda
-
Scarica il pacchetto di implementazione della funzione AWS Lambda
s3objectlambda_deployment_package.zip
alla voce Configurazione predefinita di Lambda per oggetti S3. -
Carica il pacchetto in un bucket Amazon S3
Per creare un punto di accesso Lambda per oggetti utilizzando la console AWS CloudFormation
-
Scarica il modello AWS CloudFormation
s3objectlambda_defaultconfig.yaml
alla voce Configurazione predefinita di Lambda per oggetti S3. -
Accedi alla console di gestione AWS e apri la console AWS CloudFormation all'indirizzo https://console.aws.amazon.com/cloudformation.
-
Esegui 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).
-
-
In Prerequisito - Prepara modello, scegli Modello pronto.
-
In Specify template (Specifica modello), scegli Upload a template file (Carica un file modello), quindi carica
s3objectlambda_defaultconfig.yaml
. -
Scegli Avanti.
-
Nella pagina Specifica i dettagli dello stack, inserisci un nome per lo stack.
-
Nella sezione Parameters (Parametri), specifica i seguenti parametri definiti nel modello dello stack:
-
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.
-
-
Per EnableCloudWatchMonitoring, scegli true o false, a seconda che si desideri abilitare o meno i parametri e gli allarmi delle richieste di Amazon CloudWatch.
-
(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 invocano 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.
-
Per LambdaFunctionRuntime, inserisci il runtime preferito per la funzione Lambda. Le scelte disponibili sono
nodejs14.x
,python3.9
,java11
. -
Per LambdaFunctionS3BucketName, inserisci il nome del bucket Amazon S3 dove hai caricato il pacchetto di implementazione.
-
Per LambdaFunctionS3Key, Inserisci il nome della chiave oggetto Amazon S3 dove hai caricato il pacchetto di implementazione.
-
Per LambdaFunctionS3ObjectVersion, inserisci la versione dell'oggetto Amazon S3 dove hai caricato il pacchetto di implementazione.
-
Per ObjectLambdaAccessPointName, inserisci un nome per il punto di accesso Lambda per oggetti.
-
Per S3BucketName, inserisci il nome del bucket Amazon S3 che verrà associato al punto di accesso Lambda per oggetti.
-
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.
-
-
Scegli Avanti.
-
Nella pagina Configura opzioni stack, scegli Avanti.
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.
-
Nella pagina Rivedi, scegli Crea stack.
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).