Creación de puntos de acceso Object Lambda
Un punto de acceso de Object Lambda está asociado exactamente con un punto de acceso estándar y, por lo tanto, con un bucket de Amazon S3. Para crear un punto de acceso de Object Lambda, necesita los siguientes recursos:
-
Un bucket de Amazon S3. Para obtener más información acerca de cómo se crean los buckets, consulte Crear un bucket.
-
Un punto de acceso estándar S3. Cuando se trabaja con puntos de acceso Object Lambda, este punto de acceso estándar se conoce como punto de acceso de apoyo. Para obtener información sobre la creación de puntos de acceso estándar, consulte Crear puntos de acceso.
-
Una función de AWS Lambda Puede crear su propia función de Lambda o puede utilizar una función precreada. Para obtener más información sobre la creación de funciones de Lambda, consulte Escritura de funciones de Lambda para puntos de acceso de S3 Object Lambda. Para obtener más información sobre funciones prediseñadas, consulte Uso de funciones de Lambda creadas por AWS.
-
(Opcional) Una política de AWS Identity and Access Management (IAM). Los puntos de acceso de Amazon S3 admiten políticas de recursos de IAM que le permiten controlar el uso del punto de acceso en función del recurso, del usuario o de otras condiciones. Para obtener más información sobre la creación de estas políticas, consulte Configuración de las políticas de IAM para puntos de acceso de Object Lambda.
En las siguientes secciones se describe el modo de crear un punto de acceso de Object Lambda mediante:
-
Con la AWS Management Console
-
La AWS Command Line Interface (AWS CLI)
-
Una plantilla de AWS CloudFormation
-
Con la AWS Cloud Development Kit (AWS CDK)
Si quiere obtener más información para crear un punto de acceso de Object Lambda mediante la API de REST, consulte CreateAccessPointForObjectLambda
en la referencia de la API de Amazon Simple Storage Service.
Crear un punto de acceso de Object Lambda
Utilice uno de los siguientes procedimientos para crear un punto de acceso de Object Lambda.
Para crear un punto de acceso de Object Lambda mediante la consola
Inicie sesión AWS Management Console Management Console y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/
. -
En la barra de navegación, elija el nombre de la Región de AWS que aparece. A continuación, elija la región a la que desea cambiar.
-
En el panel de navegación del lado izquierdo de la consola, elija Object Lambda Access Points (Puntos de acceso de Object Lambda).
-
En la página Object Lambda Access Points (Puntos de acceso Object Lambda), elija Create Object Lambda Access Point (Crear un punto de acceso de Object Lambda).
-
En Object Lambda access point name (Nombre del punto de acceso de Object Lambda), introduzca el nombre que desea utilizar para el punto de acceso.
Al igual que con los puntos de acceso estándar, existen reglas para los nombres de los puntos de acceso Object Lambda. Para obtener más información, consulte Reglas para asignar nombres a los puntos de acceso de Amazon S3.
-
En Supporting access point( Punto de acceso compatible), introduzca o busque el punto de acceso estándar que desea utilizar. El punto de acceso debe estar en la misma Región de AWS que los objetos que desea transformar. Para obtener información sobre la creación de puntos de acceso estándar, consulte Crear puntos de acceso.
-
En Configuración de la transformación, puede agregar una función que transforme los datos de su punto de acceso de Object Lambda. Realice una de las siguientes acciones siguientes:
-
Si ya tiene una función AWS Lambda en su cuenta, puede seleccionarla en Invoke Lambda function (Invocar función de Lambda). Aquí puede introducir el nombre de recurso de Amazon (ARN) de una función de Lambda en la Cuenta de AWS o elegir una función de Lambda del menú desplegable.
-
Si desea utilizar una función AWS creada, elija el nombre de la función en AWS built function (función generada por ) y seleccione Create Lambda function (Crear función de Lambda). Esto lo llevará a la consola de Lambda, donde podrá implementar una función integrada en su Cuenta de AWS. Para obtener más información sobre funciones integrada, consulte Uso de funciones de Lambda creadas por AWS.
En S3 APIs (API de S3), elija una o más operaciones de API para invocar. Por cada API seleccionada, debe especificar una función de Lambda para invocarla.
-
-
(Opcional) En Payload (Carga), agregue el texto JSON que desea proporcionar a su función de Lambda como entrada. Puede configurar cargas con diferentes parámetros para diferentes puntos de acceso Object Lambda que invoquen la misma función de Lambda, ampliando así la flexibilidad de la función de Lambda.
importante
Cuando utilice los puntos de acceso Object Lambda, asegúrese de que la carga no contenga información confidencial.
-
(Opcional) Para Range and part number (Rango y número de pieza), debe habilitar esta opción si quiere procesar solicitudes
GET
yHEAD
con encabezados de rango y número de pieza. Cuando se selecciona esta opción, se confirma que la función de Lambda puede reconocer y procesar estas solicitudes. Para obtener más información sobre los encabezados de rango y los números de pieza, consulte Trabajar con encabezados Range y partNumber. -
(Opcional) En Métricas de solicitudes, seleccione Habilitar o Deshabilitar para agregar la supervisión de Amazon S3 al punto de acceso de Object Lambda. Las métricas de solicitud se facturan según la tarifa de Amazon CloudWatch estándar.
-
(Opcional) En Object Lambda Access Point policy (Política de punto de acceso de Object Lambda), establezca una política de recursos. Las políticas de recursos otorgan permisos para el punto de acceso de Object Lambda especificado y pueden controlar el uso del punto de acceso en función del recurso, del usuario o de otras condiciones. Para obtener más información sobre las políticas de recursos de punto de acceso Object Lambda, consulte Configuración de las políticas de IAM para puntos de acceso de Object Lambda.
En Block Public Access settings for this Object Lambda Access Point (Configuración de bloqueo del acceso público a este punto de acceso de Object Lambda), seleccione la configuración de bloqueo de acceso público que desee aplicar. Todas las configuraciones de bloqueo de acceso público están habilitadas de forma predeterminada para los nuevos puntos de acceso Object Lambda, y le recomendamos dejar habilitada la configuración predeterminada. Amazon S3 actualmente no admite cambiar la configuración de bloqueo de acceso público de un punto de acceso de Object Lambda después de que se haya creado el punto de acceso de Object Lambda.
Para obtener más información sobre el uso del bloqueo de acceso público de Amazon S3, consulte Administrar el acceso público a los puntos de acceso.
-
Elija Create Object Lambda Access Point (Crear punto de acceso de Object Lambda).
Para crear un punto de acceso de Object Lambda mediante la plantilla AWS CloudFormation
nota
Para utilizar los comandos siguientes, sustituya
con su información.user input
placeholders
-
Descargue el paquete de implementación de la función de AWS Lambda
s3objectlambda_deployment_package.zip
en la configuración predeterminada de S3 Object Lambda. -
Ejecute el siguiente comando
put-object
para cargar el paquete a un bucket de Amazon S3.aws s3api put-object --bucket
Amazon S3 bucket name
--key s3objectlambda_deployment_package.zip --body release/s3objectlambda_deployment_package.zip -
Descargue la plantilla de AWS CloudFormation
s3objectlambda_defaultconfig.yaml
en la configuración predeterminada de S3 Object Lambda. -
Ejecute el siguiente comando
deploy
para implementar la plantilla en su Cuenta de AWS.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
Puede configurar esta plantilla AWS CloudFormation para que invoque a Lambda para operaciones GET
, HEAD
y LIST
de la API. Para obtener más información sobre cómo modificar la configuración predeterminada de la plantilla, consulte Uso de una plantilla de AWS CloudFormation para automatizar la configuración de S3 Object Lambda.
Para crear un punto de acceso de Object Lambda mediante la AWS CLI
nota
Para utilizar los comandos siguientes, sustituya
con su información.user input
placeholders
En el siguiente ejemplo, se crea un punto de acceso de Object Lambda denominado
para el bucket my-object-lambda-ap
de la cuenta amzn-s3-demo-bucket1
. En este ejemplo, se supone que ya se ha creado un punto de acceso estándar denominado 111122223333
. Para obtener información sobre la creación de un punto de acceso estándar, consulte Crear puntos de acceso.example-ap
En este ejemplo, se utiliza la función compilada con anticipación decompress
de AWS. Para obtener más información sobre funciones prediseñadas, consulte Uso de funciones de Lambda creadas por AWS.
-
Crear un bucket. En este ejemplo, usaremos
. Para obtener más información acerca de cómo se crean los buckets, consulte Crear un bucket.amzn-s3-demo-bucket1
-
Cree un punto de acceso estándar y adjúntelo a su bucket. En este ejemplo, usaremos
. Para obtener información sobre la creación de puntos de acceso estándar, consulte Crear puntos de acceso.example-ap
-
Realice una de las siguientes acciones siguientes:
-
Cree una función de Lambda en su cuenta que le gustaría utilizar para transformar su objeto de Amazon S). Para obtener más información sobre la creación de funciones de Lambda, consulte Escritura de funciones de Lambda para puntos de acceso de S3 Object Lambda. Para usar la función personalizada con AWS CLI, consulte Uso de Lambda con la AWS CLI en la Guía para desarrolladores de AWS Lambda.
-
Utilice una función de Lambda de AWS creada con anticipación. Para obtener más información sobre funciones prediseñadas, consulte Uso de funciones de Lambda creadas por AWS.
-
-
Cree un archivo de configuración JSON denominado
my-olap-configuration.json
. En esta configuración, proporcione el punto de acceso de soporte y el nombre de recurso de Amazon (ARN) para la función de Lambda que creó en los pasos anteriores o el ARN de la función prediseñada que está utilizando.{ "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" } } }] } -
Ejecute el comando
create-access-point-for-object-lambda
para crear su punto de acceso de Object Lambda.aws s3control create-access-point-for-object-lambda --account-id
111122223333
--namemy-object-lambda-ap
--configuration file://my-olap-configuration.json
-
(Opcional) Cree un archivo de política JSON denominado
my-olap-policy.json
.La adición de una política de recursos de punto de acceso Object Lambda puede controlar el uso del punto de acceso por recurso, usuario u otras condiciones. Esta política de recursos concede el permiso
GetObject
para la cuenta
al punto de acceso de Object Lambda especificado.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
" } ] } -
(Opcional) Ejecute el comando
put-access-point-policy-for-object-lambda
para establecer la política de recursos.aws s3control put-access-point-policy-for-object-lambda --account-id
111122223333
--namemy-object-lambda-ap
--policy file://my-olap-policy.json
-
(Opcional) Especifique una carga.
Una carga consiste en un JSON opcional que puede proporcionar a su función de AWS Lambda como entrada. Puede configurar cargas con diferentes parámetros para diferentes puntos de acceso Object Lambda que invoquen la misma función de Lambda, ampliando así la flexibilidad de la función de Lambda.
La siguiente configuración del punto de acceso de Object Lambda muestra una carga con dos parámetros.
{ "SupportingAccessPoint": "
AccessPointArn
", "CloudWatchMetricsEnabled":false
, "TransformationConfigurations": [{ "Actions": ["GetObject", "HeadObject", "ListObjects", "ListObjectsV2"], "ContentTransformation": { "AwsLambda": { "FunctionArn": "FunctionArn
", "FunctionPayload": "{\"res-x\": \"100\",\"res-y\": \"100\"}" } } }] }La siguiente configuración del punto de acceso de Object Lambda muestra una carga con un parámetro y con
GetObject-Range
,GetObject-PartNumber
,HeadObject-Range
yHeadObject-PartNumber
habilitados.{ "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
Cuando utilice los puntos de acceso Object Lambda, asegúrese de que la carga no contenga información confidencial.
Puede crear un punto de acceso de Object Lambda utilizando la configuración predeterminada proporcionada por Amazon S3. Puede descargar una plantilla de AWS CloudFormation y un código fuente de la función de Lambda del Repositorio GitHub
Para obtener información sobre cómo modificar la configuración predeterminada de la plantilla de AWS CloudFormation, consulte Uso de una plantilla de AWS CloudFormation para automatizar la configuración de S3 Object Lambda.
Si quiere obtener información para configurar puntos de acceso Object Lambda mediante AWS CloudFormation sin la plantilla, consulte AWS::S3ObjectLambda::AccessPoint
en la Guía del usuario de AWS CloudFormation.
Para cargar el paquete de implementación de la función de Lambda
-
Descargue el paquete de implementación de la función de AWS Lambda
s3objectlambda_deployment_package.zip
en la configuración predeterminada de S3 Object Lambda. -
Cargue el paquete en un bucket de Amazon S3.
Para crear un punto de acceso de Object Lambda mediante la consola de AWS CloudFormation
-
Descargue la plantilla de AWS CloudFormation
s3objectlambda_defaultconfig.yaml
en la configuración predeterminada de S3 Object Lambda. -
Inicie sesión en la consola de administración de AWS y abra la consola de AWS CloudFormation en https://console.aws.amazon.com/cloudformation
. -
Realice una de las siguientes acciones siguientes:
-
Si nunca ha usado AWS CloudFormation antes, en la página de inicio de AWS CloudFormation, seleccione Create stack (Crear pila).
-
Si ya ha utilizado AWS CloudFormation antes, en el panel de navegación izquierdo, elija Stacks (Pilas). Elija Create stack (Crear pila), y, a continuación, elija With new resources (standard) (Con nuevos recursos [estándar]).
-
-
En Prerequisite - Prepare template (Requisito previo - Preparar plantilla), elija Template is ready (La plantilla está lista).
-
En Specify template (Especificar plantilla), elija Upload a template file (Cargar un archivo de plantilla) y cargue
s3objectlambda_defaultconfig.yaml
. -
Elija Siguiente.
-
En la página Specify stack details (Especificar detalles de la pila), ingrese un nombre para la pila.
-
En la sección Parameters (Parámetros), especifique los siguientes parámetros que se definen en la plantilla de la pila:
-
Para CreateNewSupportingAccessPoint, realice una de las siguientes operaciones:
-
Si ya tiene un punto de acceso de soporte para el bucket de S3 en el que cargó la plantilla, elija false (falso).
-
Si desea crear un nuevo punto de acceso para este bucket, elija true (verdadero).
-
-
Para EnableCloudWatchMonitoring, elija true o false, en función de si desea habilitar las alarmas y métricas de solicitud de Amazon CloudWatch.
-
(Opcional) Para LambdaFunctionPayload, agregue el texto JSON que desea proporcionar a su función de Lambda como entrada. Puede configurar cargas con diferentes parámetros para diferentes puntos de acceso Object Lambda que invoquen la misma función de Lambda, ampliando así la flexibilidad de la función de Lambda.
importante
Cuando utilice los puntos de acceso Object Lambda, asegúrese de que la carga no contenga información confidencial.
-
Para LambdaFunctionRuntime, introduzca su tiempo de ejecución preferido para la función de Lambda. Las opciones disponibles son
nodejs14.x
,python3.9
yjava11
. -
Para LambdaFunctionS3BucketName, introduzca el nombre del bucket de Amazon S3 donde cargó el paquete de implementación.
-
Para LambdaFunctionS3Key, introduzca la clave de objeto de Amazon S3 en la que cargó el paquete de implementación
-
Para LambdaFunctionS3ObjectVersion, introduzca la versión de objeto de Amazon S3 en la que cargó el paquete de implementación.
-
Para ObjectLambdaAccessPointName, introduzca un nombre para el punto de acceso de Object Lambda.
-
Para S3BucketName, introduzca el nombre del bucket de Amazon S3 que se asociará al punto de acceso de Object Lambda.
-
Para SupportingAccessPointName, introduzca el nombre del punto de acceso de soporte.
nota
Este es un punto de acceso que está asociado al bucket de Amazon S3 que eligió en el paso anterior. Si no tiene ningún punto de acceso asociado al bucket de Amazon S3, puede configurar la plantilla para crear uno eligiendo true (verdadero) para CreateNewSupportingAccessPoint.
-
-
Elija Siguiente.
-
En la página Configurar opciones de pila, elija Siguiente.
Para obtener más información sobre la configuración opcional en esta página, consulte Configuración de las opciones de pila de AWS CloudFormation en la Guía del usuario de AWS CloudFormation.
-
En la página Review (Revisar), elija Create stack (Crear pila).
Para obtener más información acerca de la configuración de puntos de acceso Object Lambda mediante el AWS CDK, consulte Biblioteca de constructos AWS::S3ObjectLambda
en la Referencia de la API de AWS Cloud Development Kit (AWS CDK).