

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Didacticiel : Transformation de données pour votre application avec S3 Object Lambda
<a name="tutorial-s3-object-lambda-uppercase"></a>

**Note**  
Depuis le 7 novembre 2025, S3 Object Lambda n'est disponible que pour les clients existants qui utilisent actuellement le service, ainsi que pour certains AWS partenaires du réseau de partenaires (APN). Pour des fonctionnalités semblables à celles de S3 Object Lambda, cliquez ici : [Modification de la disponibilité d’Amazon S3 Object Lambda](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazons3-ol-change.html).

Lorsque vous stockez des données dans Amazon S3, vous pouvez facilement les partager pour utilisation par plusieurs applications. Cependant, chaque application peut avoir des exigences de format de données uniques et nécessiter une modification ou un traitement de vos données pour un cas d’utilisation particulier. Par exemple, un jeu de données créé par une application de commerce électronique peut inclure des données d’identification personnelle (PII). Lorsque les mêmes données sont traitées à des fins analytiques, ces DCPI ne sont pas nécessaires et doivent être supprimées. Toutefois, si le même jeu de données est utilisé pour une campagne marketing, vous devrez peut-être enrichir les données avec des détails supplémentaires, comme des informations provenant de la base de données de fidélisation des clients.

Avec [S3 Object Lambda](https://aws.amazon.com/s3/features/object-lambda), vous pouvez ajouter votre propre code pour traiter les données récupérées à partir de S3 avant de les renvoyer vers une application. Plus précisément, vous pouvez configurer une AWS Lambda fonction et l'associer à un point d'accès Lambda S3 Object. Lorsqu’une application envoie des [demandes S3 GET standard](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) via le point d’accès S3 Object Lambda, la fonction Lambda spécifiée est invoquée pour traiter toutes les données extraites de la source de données sous-jacente du point d’accès S3 compatible. Ensuite, le point d’accès S3 Object Lambda renvoie le résultat transformé à l’application. Vous pouvez créer et exécuter vos propres fonctions Lambda personnalisées, en adaptant la transformation des données S3 Object Lambda à votre cas d’utilisation particulier, sans devoir modifier vos applications.

![\[Diagramme de flux de travail S3 Object Lambda.\]](http://docs.aws.amazon.com/fr_fr/AmazonS3/latest/userguide/images/ol-example-image-global.png)


**Objectif**  
Dans ce didacticiel, vous apprendrez à ajouter du code personnalisé aux demandes GET S3 standard pour modifier l’objet demandé récupéré à partir de S3 afin que l’objet réponde aux besoins du client ou de l’application demandeur. Plus précisément, vous apprendrez à transformer en majuscules tout le texte de l’objet original stocké dans un compartiment S3 grâce à S3 Object Lambda. 

**Note**  
Ce didacticiel utilise le code Python pour transformer les données. Pour des exemples, AWS SDKs voir [Transformer des données pour votre application avec S3 Object Lambda](https://docs.aws.amazon.com/code-library/latest/ug/lambda_example_cross_ServerlessS3DataTransformation_section.html) dans la bibliothèque d'exemples de code du AWS SDK. 

**Topics**
+ [

## Conditions préalables
](#ol-upper-prerequisites)
+ [

## Étape 1 : créer un compartiment S3
](#ol-upper-step1)
+ [

## Étape 2 : charger un fichier dans le compartiment S3
](#ol-upper-step2)
+ [

## Étape 3 : créer un point d’accès S3
](#ol-upper-step3)
+ [

## Étape 4 : créer une fonction Lambda
](#ol-upper-step4)
+ [

## Étape 5 : configurer une politique IAM pour le rôle d’exécution de votre fonction Lambda
](#ol-upper-step5)
+ [

## Étape 6 : créer un point d’accès S3 Object Lambda
](#ol-upper-step6)
+ [

## Étape 7 : afficher les données transformées
](#ol-upper-step7)
+ [

## Étape 8 : nettoyer
](#ol-upper-step8)
+ [

## Étapes suivantes
](#ol-upper-next-steps)

## Conditions préalables
<a name="ol-upper-prerequisites"></a>

Avant de commencer ce didacticiel, vous devez disposer d'un utilisateur Compte AWS auquel vous pouvez vous connecter en tant qu'utilisateur Gestion des identités et des accès AWS (IAM) avec les autorisations appropriées. Vous devez également installer Python 3.8 ou version ultérieure.

**Topics**
+ [

### Créez un utilisateur IAM avec des autorisations dans votre Compte AWS (console)
](#ol-upper-prerequisites-account)
+ [

### Installez Python 3.8 ou version ultérieure sur votre machine locale
](#ol-upper-prerequisites-python)

### Créez un utilisateur IAM avec des autorisations dans votre Compte AWS (console)
<a name="ol-upper-prerequisites-account"></a>

Vous pouvez créer un utilisateur IAM pour le didacticiel. Pour terminer ce didacticiel, votre utilisateur IAM doit joindre les politiques IAM suivantes pour accéder aux AWS ressources pertinentes et effectuer des actions spécifiques. Pour en savoir plus sur la création d’un utilisateur IAM, consultez [Créer des utilisateurs IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) dans le *guide de l’utilisateur IAM*.

Votre utilisateur IAM requiert les politiques suivantes :
+ [AmazonS3 FullAccess — Accorde](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonS3FullAccess$jsonEditor) des autorisations pour toutes les actions Amazon S3, y compris les autorisations pour créer et utiliser un point d'accès Object Lambda. 
+ [AWSLambda\$1FullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSLambda_FullAccess$jsonEditor)— Accorde des autorisations à toutes les actions Lambda. 
+ [IAMFullAccès](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/IAMFullAccess$jsonEditor) : accorde des autorisations à toutes les actions IAM. 
+ [IAMAccessAnalyzerReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/IAMAccessAnalyzerReadOnlyAccess$jsonEditor)— Accorde l'autorisation de lire toutes les informations d'accès fournies par IAM Access Analyzer. 
+ [CloudWatchLogsFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/CloudWatchLogsFullAccess$jsonEditor)— Accorde un accès complet aux CloudWatch journaux. 

**Note**  
Pour des raisons de simplicité, ce didacticiel crée et utilise un utilisateur IAM. Après avoir terminé ce didacticiel, n’oubliez pas de [Supprimer l’utilisateur IAM](#ol-upper-step8-delete-user). Pour une utilisation en production, nous vous recommandons de suivre les [Bonnes pratiques de sécurité dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dans le *Guide de l’utilisateur IAM*. Une bonne pratique requiert que les utilisateurs humains utilisent une fédération avec un fournisseur d’identité pour accéder à AWS avec des informations d’identification temporaires. Une autre bonne pratique consiste à exiger que les charges de travail utilisent des informations d’identification temporaires avec des rôles IAM pour accéder à AWS. Pour en savoir plus sur l'utilisation AWS IAM Identity Center pour créer des utilisateurs avec des informations d'identification temporaires, voir [Getting started](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) dans le *guide de AWS IAM Identity Center l'utilisateur*.   
Ce didacticiel utilise des politiques gérées par AWS à accès complet. Pour utilisation en production, nous vous recommandons d’accorder uniquement les autorisations minimales nécessaires à votre cas d’utilisation, conformément aux [Bonnes pratiques de sécurité](security-best-practices.md#security-best-practices-prevent).

### Installez Python 3.8 ou version ultérieure sur votre machine locale
<a name="ol-upper-prerequisites-python"></a>

Utilisez la procédure suivante pour installer Python 3.8 ou version ultérieure sur votre machine locale. Pour obtenir des instructions sur l’installation, consultez la page [Télécharger Python](https://wiki.python.org/moin/BeginnersGuide/Download) dans le *Guide du débutant de Python*.

1. Ouvrez votre terminal ou shell local, puis exécutez la commande suivante afin de déterminer si Python est déjà installé et, si oui, quelle version est installée. 

   ```
   python --version
   ```

1. Si Python 3.8 ou version ultérieure n’est pas installé, téléchargez le [programme d’installation officiel](https://www.python.org/downloads/) de Python 3.8 ou version ultérieure qui convient à votre machine locale. 

1. Exécutez le programme d’installation en double-cliquant sur le fichier téléchargé, puis suivez les étapes pour achever l’installation. 

   Pour les **utilisateurs Windows**, choisissez **Ajouter Python 3.X au PATH** dans l’assistant d’installation avant de choisir **Installer maintenant**. 

1. Redémarrez votre terminal en le fermant et en le rouvrant. 

1. Exécutez la commande suivante pour vérifier que Python 3.8 ou version ultérieure est installé correctement. 

   Pour les **utilisateurs macOS**, exécutez cette commande : 

   ```
   python3 --version
   ```

   Pour les **utilisateurs Windows**, exécutez cette commande : 

   ```
   python --version
   ```

1. Exécutez les commandes suivantes pour vérifier que le gestionnaire de paquets pip3 est installé. Si vous voyez un numéro de version pip et Python 3.8 ou version ultérieure dans la réponse de la commande, cela signifie que le gestionnaire de paquets pip3 est installé correctement.

   ```
   pip --version
   ```

## Étape 1 : créer un compartiment S3
<a name="ol-upper-step1"></a>

Créez un compartiment pour stocker les données originales que vous prévoyez de transformer. 

**Note**  
Des points d'accès peuvent être attachés à une autre source de données, telle qu'un volume Amazon FSx pour OpenZFS, mais ce didacticiel utilise un point d'accès auxiliaire attaché à un compartiment S3.

**Pour créer un compartiment**

1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Dans le panneau de navigation de gauche, choisissez **Compartiments**.

1. Choisissez **Créer un compartiment**. 

   La page **Créer un compartiment** s'ouvre.

1. Pour **Nom du compartiment**, saisissez un nom (par exemple, **tutorial-bucket**) pour votre compartiment. 

   Pour en savoir plus sur les règles d'attribution de noms des compartiments Amazon S3, consultez [Règles de dénomination des compartiments à usage général](bucketnamingrules.md).

1. Pour **Région**, choisissez l' Région AWS endroit où vous souhaitez que le compartiment réside. 

   Pour en savoir plus sur les régions des compartiments, consultez [Présentation des compartiments à usage général](UsingBucket.md).

1. Pour **Paramètres de blocage de l'accès public à ce compartiment**, conservez les paramètres par défaut (**Bloquer *tout *accès public** est activé). 

   Nous vous recommandons de laisser tous les paramètres de blocage de l’accès public activés, sauf si vous devez en désactiver un ou plusieurs pour votre cas d’utilisation. Pour en savoir plus sur le blocage de l'accès public, consultez [Blocage de l’accès public à votre stockage Amazon S3](access-control-block-public-access.md).

1. Pour les paramètres restants, conservez les paramètres par défaut. 

   (Facultatif) Si vous souhaitez configurer des paramètres de compartiment supplémentaires pour votre cas d’utilisation particulier, consultez [Création d’un compartiment à usage général](create-bucket-overview.md).

1. Choisissez **Créer un compartiment**.

## Étape 2 : charger un fichier dans le compartiment S3
<a name="ol-upper-step2"></a>

Chargez un fichier texte dans le compartiment S3. Ce fichier texte contient les données originales que vous transformerez en majuscules plus tard dans ce didacticiel. 

Par exemple, vous pouvez charger un fichier `tutorial.txt` qui contient le texte suivant :

```
Amazon S3 Object Lambda Tutorial:
You can add your own code to process data retrieved from S3 before 
returning it to an application.
```

**Charger un fichier dans un compartiment**

1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Dans le panneau de navigation de gauche, choisissez **Compartiments**.

1. Dans la liste **Compartiments**, choisissez le nom du compartiment que vous avez créé à l'[étape 1](#ol-upper-step1) (par exemple, **tutorial-bucket**) pour y charger votre fichier.

1. Sous l’onglet **Objets** de votre compartiment, choisissez **Charger**.

1. Dans la page **Charger**, sous **Fichiers et dossiers**, choisissez **Ajouter des fichiers**.

1. Choisissez un fichier à charger, puis choisissez **Ouvrir**. Par exemple, vous pouvez charger le fichier `tutorial.txt` mentionné précédemment.

1. Choisissez **Charger**.

## Étape 3 : créer un point d’accès S3
<a name="ol-upper-step3"></a>

Pour utiliser un point d’accès S3 Object Lambda afin d’accéder aux données originales et de les transformer, vous devez créer un point d’accès S3 et l’associer au compartiment S3 que vous avez créé à l’[étape 1](#ol-upper-step1). Le point d'accès doit se trouver dans le même Région AWS emplacement que les objets que vous souhaitez transformer.

Plus loin dans ce didacticiel, vous utiliserez ce point d’accès comme point d’accès de prise en charge pour votre point d’accès Object Lambda. 

**Créer un point d’accès**

1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Dans le volet de navigation, choisissez **Points d’accès**.

1. Dans la page **Points d’accès**, choisissez **Créer un point d’accès**.

1. Dans le champ **Nom du point d’accès**, saisissez le nom (par exemple, **tutorial-access-point**) du point d’accès.

   Pour en savoir plus sur l’attribution de noms aux points d’accès, consultez [Règles de dénomination des points d’accès](access-points-restrictions-limitations-naming-rules.md#access-points-names).

1. Dans le champ **Source de données**, saisissez le nom du compartiment que vous avez créé à l’[étape 1](#ol-upper-step1) (par exemple, **tutorial-bucket**). S3 attache le point d’accès à ce compartiment. 

   (Facultatif) Vous pouvez choisir **Parcourir S3** pour parcourir et rechercher les compartiments inclus dans votre compte. Si vous choisissez **Parcourir S3**, choisissez le compartiment souhaité, puis choisissez **Choisir un chemin** pour renseigner le champ **Nom du compartiment** avec le nom de ce compartiment.

1. Pour **Origine du réseau**, choisissez **Internet**. 

   Pour en savoir plus sur les origines de réseau des points d’accès, consultez [Création de points d’accès restreints à un virtual private cloud](access-points-vpc.md).

1. Par défaut, tous les paramètres de blocage d’accès public sont activés pour votre point d’accès. Nous vous recommandons de conserver l’option **Bloquer *tous* les accès publics** activée.

   Pour en savoir plus, consultez [Gestion de l’accès public aux points d’accès de compartiments à usage général](access-points-bpa-settings.md).

1. Pour tous les autres paramètres de point d’accès, conservez les paramètres par défaut.

   (Facultatif) Vous pouvez modifier les paramètres du point d’accès afin de prendre en charge votre cas d’utilisation. Pour ce didacticiel, nous vous recommandons de conserver les paramètres par défaut. 

   (Facultatif) Si vous devez gérer l’accès à votre point d’accès, vous pouvez indiquer une politique de point d’accès. Pour plus d’informations, consultez [Exemples de stratégies de points d’accès](access-points-policies.md#access-points-policy-examples). 

1. Choisissez **Créer un point d’accès**.

## Étape 4 : créer une fonction Lambda
<a name="ol-upper-step4"></a>

Pour transformer des données originales, créez une fonction Lambda à utiliser avec votre point d’accès S3 Object Lambda. 

**Topics**
+ [

### Écrire le code d’une fonction Lambda et créer un package de déploiement avec un environnement virtuel
](#ol-upper-step4-write-lambda)
+ [

### Créer une fonction Lambda à l’aide d’un rôle d’exécution (console)
](#ol-upper-step4-create-function)
+ [

### Déployez le code de votre fonction Lambda avec les archives du fichier .zip et configurez la fonction Lambda (console)
](#ol-upper-step4-deploy-function)

### Écrire le code d’une fonction Lambda et créer un package de déploiement avec un environnement virtuel
<a name="ol-upper-step4-write-lambda"></a>

1. Sur votre ordinateur local, créez un dossier avec le nom du dossier `object-lambda` afin que l’environnement virtuel puisse l’utiliser ultérieurement dans ce didacticiel.

1. Dans le dossier `object-lambda`, créez un fichier avec une fonction Lambda qui change tout le texte de l’objet original en majuscules. Par exemple, vous pouvez utiliser la fonction suivante écrite en langage Python. Enregistrez cette fonction dans un fichier nommé `transform.py`. 

   ```
   import boto3
   import requests
   from botocore.config import Config
   
   # This function capitalizes all text in the original object
   def lambda_handler(event, context):
       object_context = event["getObjectContext"]
       # Get the presigned URL to fetch the requested original object 
       # from S3
       s3_url = object_context["inputS3Url"]
       # Extract the route and request token from the input context
       request_route = object_context["outputRoute"]
       request_token = object_context["outputToken"]
       
       # Get the original S3 object using the presigned URL
       response = requests.get(s3_url)
       original_object = response.content.decode("utf-8")
   
       # Transform all text in the original object to uppercase
       # You can replace it with your custom code based on your use case
       transformed_object = original_object.upper()
   
       # Write object back to S3 Object Lambda
       s3 = boto3.client('s3', config=Config(signature_version='s3v4'))
       # The WriteGetObjectResponse API sends the transformed data
       # back to S3 Object Lambda and then to the user
       s3.write_get_object_response(
           Body=transformed_object,
           RequestRoute=request_route,
           RequestToken=request_token)
   
       # Exit the Lambda function: return the status code  
       return {'status_code': 200}
   ```
**Note**  
L’exemple précédent de fonction Lambda charge l’ensemble de l’objet demandé en mémoire avant de le transformer et de le renvoyer au client. Vous pouvez autrement diffuser l’objet à partir de S3 pour éviter de charger l’intégralité de l’objet dans la mémoire. Cette approche peut être utile lorsque vous travaillez avec des objets volumineux. Pour en savoir plus sur le streaming des réponses avec des points d’accès Object Lambda, consultez les exemples de streaming dans [Utilisation de requêtes `GetObject` dans Lambda](olap-writing-lambda.md#olap-getobject-response).

   Lorsque vous écrivez une fonction Lambda à utiliser avec un point d’accès S3 Objet Lambda, la fonction est basée sur le contexte d’événement d’entrée que S3 Object Lambda fournit à la fonction Lambda. Le contexte de l’événement fournit des informations sur la demande effectuée dans l’événement transmis de S3 Object Lambda à Lambda. Il contient les paramètres que vous utiliserez pour créer la fonction Lambda.

   Les champs utilisés pour créer la fonction Lambda précédente sont les suivants : 

   Le champ de `getObjectContext` indique les détails d’entrée et de sortie pour les connexions à Amazon S3 et à S3 Object Lambda. Il comporte les champs suivants :
   + `inputS3Url` – Une URL présignée que la fonction Lambda peut utiliser pour télécharger l’objet original à partir du point d’accès de prise en charge. En utilisant une URL présignée, la fonction Lambda n’a pas besoin des autorisations de lecture Amazon S3 pour récupérer l’objet original et peut uniquement accéder à l’objet traité par chaque invocation.
   + `outputRoute` – Un jeton de routage qui est ajouté à l’URL S3 Object Lambda lorsque la fonction Lambda appelle `WriteGetObjectResponse` pour renvoyer l’objet transformé.
   + `outputToken` – Un jeton utilisé par S3 Object Lambda pour correspondre à l’appel `WriteGetObjectResponse` avec l’appelant original lors du renvoi de l’objet transformé.

   Pour en savoir plus sur tous les champs du contexte de l’événement, consultez [Format et utilisation du contexte d’événement](olap-event-context.md) et [Écriture de fonctions Lambda pour les points d’accès S3 Object Lambda](olap-writing-lambda.md).

1. Dans votre terminal local, saisissez la commande suivante pour installer le package `virtualenv` :

   ```
   python -m pip install virtualenv
   ```

1. Dans votre terminal local, ouvrez le dossier `object-lambda` que vous avez créé précédemment, puis saisissez la commande suivante pour créer et initialiser un environnement virtuel nommé `venv`.

   ```
   python -m virtualenv venv
   ```

1. Pour activer l’environnement virtuel, saisissez la commande suivante pour exécuter le fichier `activate` à partir du dossier de l’environnement :

   Pour les **utilisateurs macOS**, exécutez cette commande :

   ```
   source venv/bin/activate
   ```

   Pour les **utilisateurs Windows**, exécutez cette commande :

   ```
   .\venv\Scripts\activate
   ```

   Votre invite de commande change maintenant pour afficher **(venv)**, indiquant que l’environnement virtuel est actif.

1. Pour installer les bibliothèques requises, exécutez les commandes suivantes ligne par ligne dans l’`venv`environnement virtuel.

   Ces commandes installent des versions mises à jour des dépendances de votre `lambda_handler`fonction Lambda. Ces dépendances sont les AWS SDK for Python (Boto3) et le module des demandes.

   ```
   pip3 install boto3
   ```

   ```
   pip3 install requests
   ```

1. Pour désactiver l’environnement virtuel, exécutez la commande suivante :

   ```
   deactivate
   ```

1. Pour créer un package de déploiement avec les bibliothèques installées en tant que fichier `.zip` nommé `lambda.zip` à la racine du répertoire `object-lambda`, exécutez la commande les commandes ligne par ligne dans votre terminal local.
**Astuce**  
Les commandes suivantes peuvent nécessiter des ajustements pour fonctionner dans votre environnement particulier. Par exemple, une bibliothèque peut s’afficher dans `site-packages` ou dans `dist-packages`, et le premier dossier peut être `lib` ou `lib64`. En outre, il est possible de nommer le fichier `python` avec une version de Python différente. Vous pouvez utiliser la commande `pip show` pour localiser un package spécifique.

   Pour les **utilisateurs macOS**, exécutez les commandes suivantes :

   ```
   cd venv/lib/python3.8/site-packages 
   ```

   ```
   zip -r ../../../../lambda.zip .
   ```

   Pour les **utilisateurs Windows**, exécutez les commandes suivantes :

   ```
   cd .\venv\Lib\site-packages\ 
   ```

   ```
   powershell Compress-Archive * ../../../lambda.zip
   ```

   La dernière commande enregistre le package de déploiement à la racine du répertoire `object-lambda`.

1. Ajoutez le fichier de code de fonction `transform.py` à la racine de votre package de déploiement.

   Pour les **utilisateurs macOS**, exécutez les commandes suivantes :

   ```
   cd ../../../../ 
   ```

   ```
   zip -g lambda.zip transform.py
   ```

   Pour les **utilisateurs Windows**, exécutez les commandes suivantes : 

   ```
   cd ..\..\..\
   ```

   ```
   powershell Compress-Archive -update transform.py lambda.zip
   ```

   Lorsque vous aurez achevé cette étape, vous disposerez de la structure de répertoire suivante :

   ```
   lambda.zip$
     │ transform.py
     │ __pycache__
     | boto3/
     │ certifi/
     │ pip/
     │ requests/
     ...
   ```

### Créer une fonction Lambda à l’aide d’un rôle d’exécution (console)
<a name="ol-upper-step4-create-function"></a>

1. Connectez-vous à la AWS Lambda console AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

   

1. Dans le volet de navigation de gauche, choisissez **Fonctions**.

1. Choisissez **Créer une fonction**.

1. Choisissez **Créer à partir de zéro**.

1. Sous **Informations de base**, procédez comme suit :

   1. Sous **Nom de la fonction**, saisissez **tutorial-object-lambda-function**.

   1. Pour **Exécution**, choisissez **Python 3.8** ou version ultérieure.

1. Développez la section **Changer le rôle d’exécution par défaut**. Sous **Rôle d’exécution**, choisissez **Créer un nouveau rôle avec les autorisations Lambda de base**.

   À [l'étape 5](#ol-upper-step5) plus loin dans ce didacticiel, vous associerez **AmazonS3 ObjectLambdaExecutionRolePolicy** au rôle d'exécution de cette fonction Lambda. 

1. Conservez les paramètres restants définis sur les valeurs par défaut.

1. Choisissez **Créer une fonction**.

### Déployez le code de votre fonction Lambda avec les archives du fichier .zip et configurez la fonction Lambda (console)
<a name="ol-upper-step4-deploy-function"></a>

1. Dans la AWS Lambda console [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/), sélectionnez **Functions** dans le volet de navigation de gauche. 

1. Choisissez la fonction Lambda que vous avez créée précédemment (par exemple, **tutorial-object-lambda-function**). 

1. Dans la page des détails de la fonction Lambda, choisissez l’onglet **Code**. Dans la section **Source du code**, choisissez **Charger à partir de**, puis **fichier .zip**.

1. Choisissez **Charger** pour sélectionner votre fichier `.zip` local.

1. Choisissez le fichier `lambda.zip` que vous avez créé précédemment, puis choisissez **Ouvrir**.

1. Choisissez **Enregistrer**.

1. Dans la section **Paramètres d’exécution**, choisissez **Modifier**. 

1. Dans la page **Modifier les paramètres d’exécution**, confirmez que **Exécution** est définie sur **Python 3.8** ou version ultérieure. 

1. Pour indiquer à l’exécution Lambda la méthode de gestionnaire dans votre code de fonction Lambda à invoquer, saisissez **transform.lambda\$1handler** pour **Gestionnaire**.

   Quand vous configurez une fonction dans Python, la valeur du paramètre de gestionnaire correspond au nom de fichier et au nom de module de gestionnaire, séparés par un point. Par exemple, `transform.lambda_handler` appelle la méthode `lambda_handler` définie dans le fichier `transform.py`.

1. Choisissez **Enregistrer**.

1. (Facultatif) Dans la page des détails de votre fonction Lambda, choisissez l’onglet **Configuration**. Dans le volet de navigation de gauche, choisissez **Configuration générale**, puis **Modifier**. Dans le champ **Délai d’expiration**, saisissez **1** min **0** s. Conservez les paramètres restants définis sur les valeurs par défaut, puis choisissez **Enregistrer**.

   Le **Délai d’expiration** est la durée que Lambda autorise pour l’exécution d’une fonction pour invocation avant de l’arrêter. Le durée par défaut est de 3 secondes. La durée maximale d’une fonction Lambda utilisée par S3 Object Lambda est de 60 secondes. La tarification est basée sur la quantité de mémoire configurée et la durée pendant laquelle votre code s’exécute.

## Étape 5 : configurer une politique IAM pour le rôle d’exécution de votre fonction Lambda
<a name="ol-upper-step5"></a>

Pour permettre à votre fonction Lambda de fournir des données personnalisées et des en-têtes de réponse à l’appelant `GetObject`, le rôle d’exécution de votre fonction Lambda doit disposer des autorisations IAM pour appeler l’API `WriteGetObjectResponse`.

**Pour attacher une politique IAM au rôle de votre fonction Lambda**



1. Dans la AWS Lambda console [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/), sélectionnez **Functions** dans le volet de navigation de gauche. 

1. Choisissez la fonction que vous avez créée à l’[étape 4](#ol-upper-step4) (par exemple, **tutorial-object-lambda-function**).

1. Dans la page des détails de votre fonction Lambda, choisissez l’onglet **Configuration**, puis **Autorisations** dans le volet de navigation de gauche. 

1. Sous **Rôle d’exécution**, cliquez sur le lien du **Nom de rôle**. La console IAM s’ouvre. 

1. Sur la page **Summary** (Résumé) de la console IAM pour le rôle d’exécution de votre fonction Lambda, choisissez l’onglet **Permissions** (Autorisations). Ensuite, dans le menu **Add Permissions** (Ajouter des autorisations), choisissez **Attach policies** (Attacher des politiques).

1. Dans la page **Attacher des autorisations**, saisissez **AmazonS3ObjectLambdaExecutionRolePolicy** dans le champ de recherche pour filtrer la liste des politiques. Cochez la case à côté du nom de la politique **AmazonS3 ObjectLambdaExecutionRolePolicy**. 

1. Choisissez **Attacher des politiques**. 

## Étape 6 : créer un point d’accès S3 Object Lambda
<a name="ol-upper-step6"></a>

Un point d’accès S3 Object Lambda offre la flexibilité d’invoquer une fonction Lambda directement à partir d’une demande GET S3 afin que la fonction puisse traiter les données récupérées à partir d’un point d’accès S3. Lors de la création et de la configuration d’un point d’accès S3 Object Lambda, vous devez indiquer la fonction Lambda à invoquer et fournir le contexte de l’événement au format JSON en tant que paramètres personnalisés à utiliser par Lambda.

**Créer un point d’accès S3 Object Lambda**

1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Dans le volet de navigation de gauche, choisissez **Points d’accès Object Lambda**.

1. Dans la page **Points d'accès Object Lambda)**, choisissez **Créer un point d'accès Object Lambda)**.

1. Pour **Nom du point d’accès Lambda d’objet**, saisissez le nom que vous souhaitez utiliser pour le point d’accès Object Lambda (par exemple, **tutorial-object-lambda-accesspoint**). 

1. Pour **Point d’accès de prise en charge**, saisissez ou accédez au point d’accès standard que vous avez créé à l’[étape 3](#ol-upper-step3) (par exemple, **tutorial-access-point**), puis choisissez **Choisir un point d’accès de prise en charge**. 

1. Pour **S3 APIs**, pour récupérer des objets du compartiment S3 afin que la fonction Lambda les traite, sélectionnez. **GetObject**

1. Pour **invoquer une fonction Lambda**, vous pouvez choisir l’une des deux options suivantes de ce didacticiel. 
   + Sélectionnez **Choisir parmi les fonctions de votre compte**, puis choisissez la fonction Lambda que vous avez créée à l’[étape 4](#ol-upper-step4) (par exemple, **tutorial-object-lambda-function**) dans la liste déroulante **Fonction Lambda**.
   + Choisissez **Saisir l’ARN**, puis entrez l’Amazon Resource Name (ARN) de la fonction Lambda que vous avez créée à l’[étape 4](#ol-upper-step4).

1. Pour **Version de la fonction Lambda**, choisissez **\$1LATEST** (la dernière version de la fonction Lambda que vous avez créée à l’[étape 4](#ol-upper-step4)).

1. (Facultatif) Si vous avez besoin de votre fonction Lambda pour reconnaître et traiter les demandes GET avec des en-têtes de plage et de numéro de partie, sélectionnez **La fonction Lambda prend en charge les demandes utilisant la plage** et **La fonction Lambda prend en charge les demandes utilisant des numéros de partie**. Sinon, décochez ces deux cases.

   Pour en savoir plus sur l’utilisation des plages ou des numéros de pièce avec S3 Object Lambda, consultez [Utilisation des en-têtes Range et partNumber](range-get-olap.md).

1. (Facultatif) Sous **Charge utile – *facultatif***, ajoutez un texte JSON pour fournir des informations supplémentaires à votre fonction Lambda.

   Une charge utile est un texte JSON facultatif que vous pouvez fournir à votre fonction Lambda comme entrée pour toutes les invocations provenant d’un point d’accès S3 Object Lambda spécifique. Pour personnaliser les comportements de plusieurs points d’accès Object Lambda qui invoquent la même fonction Lambda, vous pouvez configurer des charges utiles avec différents paramètres, augmentant ainsi la flexibilité de votre fonction Lambda.

   Pour en savoir plus sur les charges utiles, consultez [Format et utilisation du contexte d’événement](olap-event-context.md).

1. (Facultatif) Pour **Métriques de demande – *facultatif***, choisissez **Activer** ou **Désactiver** pour ajouter une surveillance Amazon S3 à votre point d’accès Object Lambda. Les statistiques relatives aux demandes sont facturées au CloudWatch tarif standard d'Amazon. Pour en savoir plus, consultez [PricingCloudWatch](https://aws.amazon.com/cloudwatch/pricing/) (Tarification).

1. Sous **Politique de point d’accès Object Lambda – *facultatif***, conservez le paramètre par défaut. 

   (Facultatif) Vous pouvez définir une politique de ressource. Cette politique de ressource permet à l’autorisation d’API `GetObject` d’utiliser le point d’accès Object Lambda spécifié.

1. Conservez les paramètres restants définis sur les valeurs par défaut, puis choisissez **Créer un point d’accès Object Lambda**.

## Étape 7 : afficher les données transformées
<a name="ol-upper-step7"></a>

S3 Object Lambda est maintenant prêt à transformer vos données pour votre cas d’utilisation. Dans ce didacticiel, S3 Object Lambda transforme tout le texte de votre objet en majuscules.

**Topics**
+ [

### Afficher les données transformées dans votre point d’accès S3 Object Lambda
](#ol-upper-step7-check-data)
+ [

### Exécuter un script Python pour imprimer les données originales et transformées
](#ol-upper-step7-python-print)

### Afficher les données transformées dans votre point d’accès S3 Object Lambda
<a name="ol-upper-step7-check-data"></a>

Lorsque vous demandez de récupérer un fichier via votre point d’accès S3 Object Lambda, vous effectuez un appel d’API `GetObject` à S3 Object Lambda. S3 Object Lambda invoque la fonction Lambda pour transformer vos données, puis retourne les données transformées en réponse à l’appel d’API `GetObject` S3 standard.

1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Dans le panneau de navigation de gauche, choisissez **Points d'accès Object Lambda**.

1. Sur la page **Points d’accès Lambda d’objet**, choisissez le point d’accès S3 Object Lambda que vous avez créé à l’[étape 6](#ol-upper-step6) (par exemple, **tutorial-object-lambda-accesspoint**).

1. Dans l’onglet **Objets** de votre point d’accès S3 Object Lambda, sélectionnez le fichier portant le même nom (par exemple, `tutorial.txt`) comme celui que vous avez chargé dans le compartiment S3 à l’[étape 2](#ol-upper-step2). 

   Ce fichier doit contenir toutes les données transformées.

1. Pour afficher les données transformées, choisissez **Ouvrir** ou **Télécharger**.

### Exécuter un script Python pour imprimer les données originales et transformées
<a name="ol-upper-step7-python-print"></a>

Vous pouvez utiliser S3 Object Lambda avec vos applications existantes. Pour ce faire, mettez à jour la configuration de votre application pour utiliser le nouvel ARN du point d’accès S3 Object Lambda que vous avez créé à l’[étape 6](#ol-upper-step6) afin de récupérer des données depuis S3.

L’exemple de script Python suivant imprime à la fois les données originales à partir du compartiment S3 et les données transformées à partir du point d’accès S3 Object Lambda. 

1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Dans le panneau de navigation de gauche, choisissez **Points d'accès Object Lambda**.

1. Sur la page **Points d’accès Lambda d’objet**, choisissez le bouton radio situé à gauche du point d’accès S3 Object Lambda que vous avez créé à l’[étape 6](#ol-upper-step6) (par exemple, **tutorial-object-lambda-accesspoint**).

1. Choisissez **Copier l'ARN**.

1. Enregistrez l’ARN pour utilisation ultérieure.

1. Écrivez un script Python sur votre machine locale pour imprimer les données originales (par exemple, `tutorial.txt`) à partir de votre compartiment S3 et les données transformées (par exemple, `tutorial.txt`) à partir de votre point d’accès S3 Object Lambda. Vous pouvez utiliser l’exemple de script suivant. 

   ```
   import boto3
   from botocore.config import Config
   
   s3 = boto3.client('s3', config=Config(signature_version='s3v4'))
   
   def getObject(bucket, key):
       objectBody = s3.get_object(Bucket = bucket, Key = key)
       print(objectBody["Body"].read().decode("utf-8"))
       print("\n")
   
   print('Original object from the S3 bucket:')
   # Replace the two input parameters of getObject() below with 
   # the S3 bucket name that you created in Step 1 and 
   # the name of the file that you uploaded to the S3 bucket in Step 2
   getObject("tutorial-bucket", 
             "tutorial.txt")
   
   print('Object transformed by S3 Object Lambda:')
   # Replace the two input parameters of getObject() below with 
   # the ARN of your S3 Object Lambda Access Point that you saved earlier and
   # the name of the file with the transformed data (which in this case is
   # the same as the name of the file that you uploaded to the S3 bucket 
   # in Step 2)
   getObject("arn:aws:s3-object-lambda:us-west-2:111122223333:accesspoint/tutorial-object-lambda-accesspoint",
             "tutorial.txt")
   ```

1. Enregistrez votre script Python avec un nom personnalisé (par exemple, `tutorial_print.py`) dans le dossier (par exemple, `object-lambda`) que vous avez créé à l’[étape 4](#ol-upper-step4) sur votre machine locale.

1. Dans votre terminal local, exécutez la commande suivante à partir de la racine du répertoire (par exemple, `object-lambda`) que vous avez créé à l’[étape 4](#ol-upper-step4).

   ```
   python3 tutorial_print.py
   ```

   Vous devriez voir à la fois les données originales et les données transformées (tout le texte en majuscules) sur le terminal. Par exemple, vous devriez voir quelque chose ressemblant au texte suivant.

   ```
   Original object from the S3 bucket:
   Amazon S3 Object Lambda Tutorial:
   You can add your own code to process data retrieved from S3 before 
   returning it to an application.
   
   Object transformed by S3 Object Lambda:
   AMAZON S3 OBJECT LAMBDA TUTORIAL:
   YOU CAN ADD YOUR OWN CODE TO PROCESS DATA RETRIEVED FROM S3 BEFORE 
   RETURNING IT TO AN APPLICATION.
   ```

## Étape 8 : nettoyer
<a name="ol-upper-step8"></a>

Si vous avez transformé vos données via S3 Object Lambda comme un simple exercice d’apprentissage, supprimez les ressources AWS que vous avez allouées afin de ne plus accumuler de frais. 

**Topics**
+ [

### Supprimer le point d’accès Object Lambda
](#ol-upper-step8-delete-olap)
+ [

### Supprimer le point d’accès S3
](#ol-upper-step8-delete-ap)
+ [

### Supprimer le rôle d’exécution de votre fonction Lambda.
](#ol-upper-step8-delete-lambda-role)
+ [

### Supprimer la fonction Lambda
](#ol-upper-step8-delete-lambda-function)
+ [

### Supprimer le groupe de CloudWatch journaux
](#ol-upper-step8-delete-cloudwatch)
+ [

### Supprimer le fichier original dans le compartiment source S3
](#ol-upper-step8-delete-file)
+ [

### Supprimer le compartiment source S3
](#ol-upper-step8-delete-bucket)
+ [

### Supprimer l’utilisateur IAM
](#ol-upper-step8-delete-user)

### Supprimer le point d’accès Object Lambda
<a name="ol-upper-step8-delete-olap"></a>

1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Dans le panneau de navigation de gauche, choisissez **Points d'accès Object Lambda**.

1. Sur la page **Points d'accès Lambda d'objet**, choisissez le bouton radio situé à gauche du point d'accès S3 Object Lambda que vous avez créé à l'[étape 6](#ol-upper-step6) (par exemple, **tutorial-object-lambda-accesspoint**).

1. Choisissez **Supprimer**.

1. Confirmez que vous souhaitez supprimer votre point d’accès Object Lambda en saisissant son nom dans le champ de texte qui s’affiche, puis choisissez **Supprimer**.

### Supprimer le point d’accès S3
<a name="ol-upper-step8-delete-ap"></a>

1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Dans le panneau de navigation de gauche, choisissez **Points d'accès**.

1. Accédez au point d’accès que vous avez créé à l’[étape 3](#ol-upper-step3) (par exemple, **tutorial-access-point**), puis choisissez le bouton radio en regard du nom du point d’accès.

1. Choisissez **Supprimer**.

1. Confirmez que vous souhaitez supprimer votre point d’accès Object Lambda en saisissant son nom dans le champ de texte qui s’affiche, puis choisissez **Supprimer**.

### Supprimer le rôle d’exécution de votre fonction Lambda.
<a name="ol-upper-step8-delete-lambda-role"></a>

1. Connectez-vous à la AWS Lambda console AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Dans le panneau de navigation de gauche, choisissez **Fonctions**.

1. Choisissez la fonction que vous avez créée à l'[étape 4](#ol-upper-step4) (par exemple, **tutorial-object-lambda-function**).

1. Dans la page des détails de votre fonction Lambda, choisissez l’onglet **Configuration**, puis **Autorisations** dans le volet de navigation de gauche. 

1. Sous **Rôle d’exécution**, cliquez sur le lien du **Nom de rôle**. La console IAM s'ouvre.

1. Dans la page **Récapitulatif** de la console IAM du rôle d’exécution de votre fonction Lambda, choisissez **Supprimer le rôle**.

1. Dans la boîte de dialogue **Supprimer le rôle**, choisissez **Oui, supprimer**.

### Supprimer la fonction Lambda
<a name="ol-upper-step8-delete-lambda-function"></a>

1. Dans la AWS Lambda console [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/), sélectionnez **Functions** dans le volet de navigation de gauche. 

1. Cochez la case à gauche du nom de la fonction que vous avez créée à l’[étape 4](#ol-upper-step4) (par exemple, **tutorial-object-lambda-function**).

1. Choisissez **Actions**, puis **Supprimer**.

1. Dans la boîte de dialogue **Supprimer une fonction**, choisissez **Supprimer**.

### Supprimer le groupe de CloudWatch journaux
<a name="ol-upper-step8-delete-cloudwatch"></a>

1. Ouvrez la CloudWatch console à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Dans le volet de navigation de gauche, choisissez **Groupes de journaux**.

1. Recherchez le groupe de journaux dont le nom se termine par la fonction Lambda que vous avez créée à l’[étape 4](#ol-upper-step4) (par exemple, **tutorial-object-lambda-function**).

1. Cochez la case située à gauche du nom du groupe de journaux.

1. Choisissez **Actions**, puis **Supprimer le ou les groupes de journaux**.

1. Dans la boîte de dialogue **Supprimer le ou les groupes de journaux**, choisissez **Supprimer**.

### Supprimer le fichier original dans le compartiment source S3
<a name="ol-upper-step8-delete-file"></a>

1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Dans le panneau de navigation de gauche, choisissez **Compartiments**.

1. Dans la liste **Nom du compartiment**, choisissez le nom du compartiment vers lequel vous avez chargé le fichier original à l’[étape 2](#ol-upper-step2) (par exemple, **tutorial-bucket**).

1. Cochez la case située à gauche du nom de l’objet que vous souhaitez supprimer (par exemple, `tutorial.txt`).

1. Choisissez **Supprimer**.

1. Dans la page **Supprimer des objets**, dans la section **Supprimer définitivement les objets ?**, confirmez que vous souhaitez supprimer cet objet en saisissant **permanently delete** dans la zone de texte.

1. Choisissez **Supprimer les objets**.

### Supprimer le compartiment source S3
<a name="ol-upper-step8-delete-bucket"></a>

1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Dans le panneau de navigation de gauche, choisissez **Compartiments**.

1. Dans la liste **Compartiments**, choisissez le bouton radio en regard du nom du compartiment que vous avez créé à l’[étape 1](#ol-upper-step1) (par exemple, **tutorial-bucket**).

1. Choisissez **Supprimer**.

1. Dans la page **Supprimer le compartiment**, confirmez que vous souhaitez supprimer le compartiment en saisissant le nom de ce dernier dans le champ de texte, puis choisissez **Supprimer le compartiment**.

### Supprimer l’utilisateur IAM
<a name="ol-upper-step8-delete-user"></a>

1. Connectez-vous à la console IAM AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)l'adresse.

1. Dans le volet de navigation, choisissez **Utilisateurs**, puis cochez la case en regard du nom de l’utilisateur à supprimer.

1. En haut de la page, choisissez **Supprimer**.

1. Dans le champ **Supprimer *user name* ?** boîte de dialogue, entrez le nom d'utilisateur dans le champ de saisie de texte pour confirmer la suppression de l'utilisateur. Choisissez **Supprimer**.

## Étapes suivantes
<a name="ol-upper-next-steps"></a>

Après avoir terminé ce didacticiel, vous pourrez personnaliser la fonction Lambda pour votre cas d’utilisation afin de modifier les données renvoyées par des demandes GET S3 standard.

Voici une liste de cas d’utilisation courants pour S3 Object Lambda :
+ Masquer les données sensibles à des fins de sécurité et de conformité.

  Pour plus d’informations, consultez [Didacticiel : Détecter et expurger des PII avec S3 Object Lambda et Amazon Comprehend](tutorial-s3-object-lambda-redact-pii.md).
+ Filtrer certaines lignes de données pour fournir des informations précises.
+ Enrichir les données avec des informations provenant d’autres services ou bases de données.
+ Conversion entre les formats de données, comme la conversion XML en JSON pour la compatibilité des applications.
+ Compression ou décompression des fichiers pendant qu’ils sont téléchargés.
+ Redimensionnement des images et insertion d’un filigrane.

  Pour plus d’informations, consultez [Didacticiel : Utilisation de S3 Object Lambda pour filigraner dynamiquement des images au fur et à mesure de leur récupération](https://aws.amazon.com/getting-started/hands-on/amazon-s3-object-lambda-to-dynamically-watermark-images/?ref=docs_gateway/amazons3/tutorial-s3-object-lambda-uppercase.html).
+ Mise en œuvre de règles d’autorisation personnalisées pour accéder aux données.

Pour en savoir plus sur S3 Object Lambda, consultez [Transformation d’objets avec S3 Object Lambda](transforming-objects.md).