Formato y uso del contexto del evento - Amazon Simple Storage Service

Formato y uso del contexto del evento

Amazon S3 Object Lambda proporciona contexto sobre la solicitud que se realiza en el evento transferido a la función de AWS Lambda. A continuación se muestra un ejemplo de solicitud: Las descripciones de los campos se incluyen después del ejemplo.

{ "xAmzRequestId": "requestId", "getObjectContext": { "inputS3Url": "https://my-s3-ap-111122223333.s3-accesspoint.us-east-1.amazonaws.com/example?X-Amz-Security-Token=<snip>", "outputRoute": "io-use1-001", "outputToken": "OutputToken" }, "configuration": { "accessPointArn": "arn:aws:s3-object-lambda:us-east-1:111122223333:accesspoint/example-object-lambda-ap", "supportingAccessPointArn": "arn:aws:s3:us-east-1:111122223333:accesspoint/example-ap", "payload": "{}" }, "userRequest": { "url": "https://object-lambda-111122223333.s3-object-lambda.us-east-1.amazonaws.com/example", "headers": { "Host": "object-lambda-111122223333.s3-object-lambda.us-east-1.amazonaws.com", "Accept-Encoding": "identity", "X-Amz-Content-SHA256": "e3b0c44298fc1example" } }, "userIdentity": { "type": "AssumedRole", "principalId": "principalId", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/example", "accountId": "111122223333", "accessKeyId": "accessKeyId", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "Wed Mar 10 23:41:52 UTC 2021" }, "sessionIssuer": { "type": "Role", "principalId": "principalId", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" } } }, "protocolVersion": "1.00" }

Los siguientes campos están incluidos en la solicitud:

  • xAmzRequestId: ID de solicitud de Amazon S3 para esta solicitud. Le recomendamos que registre este valor para ayudar con la depuración.

  • getObjectContext: detalles de entrada y salida de las conexiones a Amazon S3 y S3 Object Lambda.

    • inputS3Url: URL prefirmada que se puede utilizar para obtener el objeto original de Amazon S3. La URL está firmada utilizando la identidad del intermediario que la llamó originalmente, y los permisos de ese usuario se aplicarán cuando se utilice la URL. Si hay encabezados firmados en la URL, la función de Lambda debe incluir estos encabezados los en la llamada a Amazon S3, excepto en el caso del encabezado Host.

    • outputRoute: token de enrutamiento que se agrega a la URL de S3 Object Lambda cuando la función de Lambda llama a WriteGetObjectResponse.

    • outputToken: token opaco utilizado por S3 Object Lambda para hacer coincidir la llamada WriteGetObjectResponse con el intermediario original.

  • configuration: información de configuración sobre el punto de acceso de Object Lambda.

    • accessPointArn: nombre de recurso de Amazon (ARN) del punto de acceso de Object Lambda que ha recibido esta solicitud.

    • supportingAccessPointArn: ARN del punto de acceso de apoyo especificado en la configuración del punto de acceso de Object Lambda.

    • payload: datos personalizados que se aplican a la configuración del punto de acceso de Object Lambda. S3 Object Lambda trata estos datos como una cadena opaca, por lo que es posible que deba decodificarse antes de su uso.

  • userRequest: información sobre la llamada original a S3 Object Lambda.

    • url: URL decodificada de la solicitud recibida por S3 Object Lambda, excluyendo cualquier parámetro de consulta relacionado con la autorización.

    • headers: un mapa de cadena a cadenas que contienen los encabezados HTTP y los valores de la llamada original, excluyendo cualquier encabezado relacionado con la autorización. Si el mismo encabezado aparece varias veces, los valores de cada instancia del mismo encabezado se combinan en una lista delimitada por comas. Las mayúsculas y minúsculas de los encabezados originales se conservan en este mapa.

  • userIdentity: detalles sobre la identidad que hizo la llamada a S3 Object Lambda. Para obtener más información, consulte Registro de eventos de datos para registros de seguimiento en la Guía del usuario de AWS CloudTrail.

    • type: tipo de identidad.

    • accountId: Cuenta de AWS a la que pertenece la identidad.

    • userName: nombre descriptivo de la identidad que realizó la llamada.

    • principalId: identificador único para la identidad que ha efectuado la llamada.

    • arn: ARN de la entidad principal que hizo la llamada. La última sección del ARN contiene el usuario o el rol que realizó la llamada.

    • sessionContext: si la solicitud se realizó con credenciales de seguridad temporales, este elemento proporciona información sobre la sesión que se creó para esas credenciales.

    • invokedBy: nombre del Servicio de AWS que realizó la solicitud, como Amazon EC2 Auto Scaling o AWS Elastic Beanstalk.

    • sessionIssuer: si la solicitud se realizó con credenciales de seguridad temporales, este elemento proporciona información acerca de cómo se obtuvieron las credenciales.

  • protocolVersion: ID de versión del contexto proporcionado. El formato de este campo es {Major Version}.{Minor Version}. Los números de versión secundaria son siempre números de dos dígitos. Cualquier eliminación o cambio en la semántica de un campo precisa un bache de versión principal y requiere la opción opcional activa. Amazon S3 puede agregar nuevos campos en cualquier momento, momento en el que podría experimentar un problema de versión secundaria. Por la naturaleza de las implementaciones de software, puede que vea varias versiones secundarias en uso a la vez.