Formato e utilizzo del contesto degli eventi - Amazon Simple Storage Service

Formato e utilizzo del contesto degli eventi

Amazon S3 Object Lambda fornisce il contesto della richiesta che viene fatta se passata alla funzione AWS Lambda. Il risultato è illustrato nello screenshot seguente. Le descrizioni dei campi sono riportate dopo l'esempio.

{ "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" }

I seguenti campi sono inclusi nella richiesta:

  • xAmzRequestId: l'ID della richiesta di Amazon S3 per questa richiesta. Si consiglia di registrare questo valore per facilitare il debug.

  • getObjectContext: i dettagli di input e output per le connessioni ad Amazon S3 e S3 Object Lambda.

    • inputS3Url: un URL prefirmato che può essere utilizzato per recuperare l'oggetto originale da Amazon S3. L'URL viene firmato utilizzando l'identità del chiamante originale e quando viene utilizzato l'URL vengono applicate le autorizzazioni dell'utente associato. Se nell'URL sono presenti intestazioni firmate, la funzione Lambda deve includerle nella chiamata ad Amazon S3, ad eccezione dell'intestazione Host.

    • outputRoute ‐ Un token di routing che viene aggiunto all'URL di S3 Object Lambda quando la funzione Lambda richiama WriteGetObjectResponse.

    • outputToken: un token opaco utilizzato da S3 Object Lambda per abbinare la chiamata WriteGetObjectResponse al chiamante originale.

  • configuration: informazioni di configurazione sul punto di accesso Object Lambda.

    • accessPointArn: l'Amazon Resource Name (ARN) del punto di accesso Object Lambda che ha ricevuto questa richiesta.

    • supportingAccessPointArn: l'ARN del punto di accesso di supporto specificato nella configurazione del punto di accesso Object Lambda.

    • payload: dati personalizzati applicati alla configurazione del punto di accesso Object Lambda. S3 Object Lambda tratta questi dati come una stringa opaca, quindi potrebbe essere necessario decodificarli prima dell'utilizzo.

  • userRequest: informazioni sulla chiamata originale a S3 Object Lambda.

    • url: l'URL decodificato della richiesta come ricevuto da S3 Object Lambda, esclusi eventuali parametri di query relativi all'autorizzazione.

    • headers: una mappa di stringa alle stringhe contenenti le intestazioni HTTP e i relativi valori dalla chiamata originale, escluse eventuali intestazioni relative all'autorizzazione. Se la stessa intestazione viene visualizzata più volte, i valori di ogni istanza della stessa intestazione vengono combinati in un elenco delimitato da virgole. Il formato maiuscolo/minuscolo delle intestazioni originali viene mantenuto in questa mappa.

  • userIdentity: dettagli sull'identità che ha effettuato la chiamata a S3 Object Lambda. Per ulteriori informazioni, consulta Registrazione di eventi di dati per i percorsi nella Guida per l'utente di AWS CloudTrail.

    • type: il tipo di identità.

    • accountId ‐ L'Account AWS a cui appartiene l'identità.

    • userName: il nome descrittivo dell'identità che ha effettuato la chiamata.

    • principalId: l'identificatore univoco per l'identità che ha effettuato la chiamata.

    • arn: l'ARN del principale che ha effettuato la chiamata. L'ultima sezione dell'ARN contiene l'utente o il ruolo che ha effettuato la chiamata.

    • sessionContext: se la richiesta è stata effettuata con le credenziali di sicurezza temporanee, questo elemento fornisce informazioni sulla sessione creata per tali credenziali.

    • invokedBy: il nome del Servizio AWS che ha effettuato la richiesta, ad esempio Amazon EC2 Auto Scaling o AWS Elastic Beanstalk.

    • sessionIssuer: se la richiesta è stata effettuata con le credenziali di sicurezza temporanee, questo elemento fornisce informazioni su come sono state ottenute tali credenziali.

  • protocolVersion: l'ID versione del contesto fornito. Il formato di questo campo è {Major Version}.{Minor Version}. I numeri di versione secondari sono sempre numeri a due cifre. Qualsiasi rimozione o modifica alla semantica di un campo necessita un aumento della versione principale e richiede l'opt-in attivo. Amazon S3 può aggiungere nuovi campi in qualsiasi momento e in quel punto si potrebbe riscontrare un bump di versione minore. A causa della natura delle implementazioni software, più versioni secondarie potrebbero essere visualizzati in uso contemporaneamente.