

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.

# Création d'unAWS LambdaFonction
<a name="lambda"></a>

Vous pouvez appeler les opérations de l'API Amazon Textract depuis unAWS Lambda. Les instructions ci-dessous montrent comment créer une fonction Lambda en Python qui appelle[DetectDocumentText](API_DetectDocumentText.md). Il renvoie une liste de[Block](API_Block.md)objets. Pour exécuter cet exemple, vous devez disposer d'un compartiment Amazon S3 contenant un document au format PNG ou JPEG. Pour créer la fonction, vous utilisez la console.

Pour obtenir un exemple qui utilise les fonctions Lambda pour traiter des documents à grande échelle, voir[Traitement de documents à grande échelle avec Amazon Textract](https://github.com/aws-samples/amazon-textract-serverless-large-scale-document-processing).

## Pour appeler l'opération DetectDocumentText à partir d'une fonction Lambda :
<a name="lambda-procedure"></a><a name="create-deployment-package"></a>

**Étape 1 : Créer un package de déploiement Lambda**

1. Ouvrez une fenêtre de commande.

1. Saisissez les commandes suivantes pour créer un package de déploiement avec la version la plus récente duAWSSDK.

   ```
   pip install boto3 --target python/.
   zip boto3-layer.zip -r python/
   ```<a name="create-function"></a>

**Étape 2 : Création d'une fonction Lambda**

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

1. Sélectionnez **Créer une fonction**.

1. Spécifiez les paramètres suivants.
   + Choisissez **Créer à partir de zéro**. 
   + Pour **Nom de la fonction**, entrez un nom.
   + Pour**Runtime (Exécution)**, choisissez**Python 3.7**ou**Python 3.6**.
   + Pour**Choisir ou créer un rôle d'exécution**, choisissez**Créer un nouveau rôle avec les autorisations Lambda de base**. 

1. Choisissez**Créer une fonction**pour créer la fonction Lambda.

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

1. Dans le volet de navigation, choisissez**Rôles**.

1. Dans la liste des ressources, choisissez le rôle IAM que Lambda a créé pour vous. Le nom du rôle commence par le nom de votre fonction Lambda.

1. Cliquez sur l'onglet**Autorisations**, puis choisissez**Attacher des stratégies**.

1. Sélectionnez les stratégies AmazonTextractFullAccess et AmazonS3ReadOnlyAccess.

1. Tâche de sélection**Attacher une politique**.

Pour de plus amples informations, veuillez consulter[Créer une fonction Lambda avec la console](https://docs.aws.amazon.com/lambda/latest/dg/getting-started-create-function.html)

**Étape 3 : Créer et ajouter une couche**

1. Ouvrez la console AWS Lambda à l'adresse [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Choisissez **Layers** dans le volet de navigation. 

1. Sélectionnez **Créer un calque**.

1. Pour**Nom**, entrez un nom.

1. Pour **Description**, entrez une description.

1. Pour**Type d'entrée de code**, choisissez**Charger le fichier .zip**et sélectionnez**Charger**.

1. Dans la boîte de dialogue, sélectionnez le fichier zip (boto3-layer.zip), le zip que vous avez créé dans[Étape 1 : Créer un package de déploiement Lambda](#create-deployment-package).

1. Pour**Runtimes compatibles**, choisissez la version du moteur d'exécution que vous avez choisie dans[Étape 2 : Création d'une fonction Lambda](#create-function).

1. Choisissez**Créer**pour créer la couche.

1. Choisissez l'icône de menu du volet de navigation.

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

1. Dans la liste des ressources, sélectionnez la fonction que vous avez créée dans[Étape 2 : Création d'une fonction Lambda](#create-function). 

1. Choisissez**Configuration**et dans le**Designer**, choisissez**Couches**(sous le nom de votre fonction Lambda). 

1. Dans**Couches**, choisissez**Ajout d'une couche**.

1. Choisissez**Sélectionnez dans la liste des couches compatibles avec l'environnement d'exécution**.

1. Dans**Couches compatibles**, sélectionnez la**Nom**et**Version**du calque que vous avez créé à l'étape 3.

1. Choisissez **Add (Ajouter)**.

**Étape 4 : Ajouter du code Python à la fonction**

1. Dans**Designer**, choisissez votre fonction.

1. Dans l'éditeur de code, ajoutez les éléments suivants au fichier**lambda\$1function.py**. Modifiez les valeurs des`bucket`et`document`à votre compartiment et à votre document.

   ```
   import json
   import boto3
   
   def lambda_handler(event, context):
   
       bucket="bucket"
       document="document"
       client = boto3.client('textract')
   
   
   
       #process using S3 object
       response = client.detect_document_text(
           Document={'S3Object': {'Bucket': bucket, 'Name': document}})
   
       #Get the text blocks
       blocks=response['Blocks']
       
       return {
           'statusCode': 200,
           'body': json.dumps(blocks)
       }
   ```

1. Choisissez**Enregistrer**pour enregistrer votre fonction Lambda.

**Étape 5 : Testez votre Lambda**

1. Tâche de sélection**Test**.

1. Saisir une valeur pour**Nom de l'événement**.

1. Sélectionnez **Create (Créer) Application Load Balancer request count per target**.

1. La sortie, une liste de[Block](API_Block.md), apparaît dans le volet des résultats de l'exécution.

Si l'icôneAWS Lambdarenvoie une erreur de délai d'attente, un appel d'opération de l'API Amazon Textract peut en être la cause. Pour plus d'informations sur la prolongation du délai d'expiration d'uneAWS Lambdafonction, voir[Configuration d'une fonction AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/resource-model.html).

Pour plus d'informations sur l'appel d'une fonction Lambda à partir de votre code, consultez[InvoquerAWS LambdaFonctions](https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-functions.html). 