Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Traitez les événements Amazon S3 avec AWS SAM

Mode de mise au point
Traitez les événements Amazon S3 avec AWS SAM - AWS Serverless Application Model

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.

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.

Avec cet exemple d'application, vous mettez à profit ce que vous avez appris dans les exemples précédents et installez une application plus complexe. Cette application se compose d'une fonction Lambda appelée par une source d'événement de téléchargement d'objet Amazon S3. Cet exercice explique comment accéder aux AWS ressources et effectuer des appels de AWS service via une fonction Lambda.

Cet exemple d'application sans serveur traite les événements de création d'objets dans Amazon S3. Pour chaque image téléchargée vers un compartiment, Amazon S3 détecte l'événement créé par l'objet et appelle une fonction Lambda. La fonction Lambda appelle Amazon Rekognition pour détecter le texte qui se trouve dans l'image. Elle stocke ensuite les résultats renvoyés par Amazon Rekognition dans une table DynamoDB.

Note

Avec cet exemple d'application, vous effectuez des étapes dans un ordre légèrement différent de celui des exemples précédents. La raison en est que cet exemple nécessite que AWS des ressources soient créées et que les autorisations IAM soient configurées avant de pouvoir tester la fonction Lambda localement. Nous allons en tirer parti AWS CloudFormation pour créer les ressources et configurer les autorisations pour vous. Sinon, vous devrez le faire manuellement avant de pouvoir tester la fonction Lambda localement.

Étant donné que cet exemple est plus compliqué, assurez-vous d'être familiarisé avec l'installation des exemples d'applications précédents avant d'exécuter celui-ci.

Avant de commencer

Assurez-vous que vous avez terminé la configuration requise dans Installez le AWS SAM CLI.

Étape 1 : initialiser l'application

Dans cette section, vous allez télécharger l'exemple d'application, qui se compose d'un AWS SAM modèle et d'un code d'application.

Pour initialiser l'application
  1. Exécutez la commande suivante sur un AWS SAM CLI invite de commande.

    sam init \ --location https://github.com/aws-samples/cookiecutter-aws-sam-s3-rekognition-dynamodb-python \ --no-input
  2. Vérifiez le contenu du répertoire créé par la commande (aws_sam_ocr/) :

    • template.yaml— Définit trois AWS ressources dont l'application Amazon S3 a besoin : une fonction Lambda, un compartiment Amazon S3 et une table DynamoDB. Le modèle définit également les mappages et les autorisations entre ces ressources.

    • Répertoire src/ – Contient le code d'application Amazon S3.

    • SampleEvent.json – L'exemple de source d'événement, qui est utilisé pour les tests locaux.

Étape 2 : empaqueter l'application

Avant de pouvoir tester cette application localement, vous devez utiliser le AWS SAM CLI pour créer un package de déploiement que vous utiliserez pour déployer l'application AWS dans le cloud. Ce déploiement crée les AWS ressources et les autorisations nécessaires pour tester l'application localement.

Pour créer un package de déploiement Lambda
  1. Créez un compartiment S3 à l'emplacement où vous souhaitez enregistrer le code empaqueté. Si vous souhaitez utiliser un compartiment S3 existant, ignorez cette étape.

    aws s3 mb s3://bucketname
  2. Créez le package de déploiement en exécutant la commande CLI package suivante.

    sam package \ --template-file template.yaml \ --output-template-file packaged.yaml \ --s3-bucket bucketname

    Vous spécifiez le nouveau fichier de modèle, packaged.yaml, lorsque vous déployez l'application dans l'étape suivante.

Étape 3 : déployer l'application

Maintenant que vous avez créé le package de déploiement, vous l'utilisez pour déployer l'application AWS dans le cloud. Vous testez ensuite l'application en l'invoquant dans le AWS Cloud.

Pour déployer l'application sans serveur dans le cloud AWS
  • Dans le AWS SAM CLI, utilisez la deploy commande pour déployer toutes les ressources que vous avez définies dans le modèle.

    sam deploy \ --template-file packaged.yaml \ --stack-name aws-sam-ocr \ --capabilities CAPABILITY_IAM \ --region us-east-1

    Dans la commande, le --capabilities paramètre permet AWS CloudFormation de créer un rôle IAM.

    AWS CloudFormation crée les AWS ressources définies dans le modèle. Vous pouvez accéder aux noms de ces ressources dans la AWS CloudFormation console.

Pour tester l'application sans serveur dans le cloud AWS
  1. Téléchargez une image dans le compartiment Amazon S3 que vous avez créé pour cet exemple d'application.

  2. Ouvrez la console DynamoDB et recherchez la table qui a été créée. Voir la table pour les résultats renvoyés par Amazon Rekognition.

  3. Vérifiez que la table DynamoDB contient de nouveaux enregistrements contenant du texte trouvé par Amazon Rekognition dans l'image téléchargée.

Étape 4 : tester l'application localement

Avant de pouvoir tester l'application localement, vous devez d'abord récupérer les noms des AWS ressources créées par AWS CloudFormation.

  • Récupérez le nom de la clé et le nom du compartiment Amazon S3 auprès de AWS CloudFormation. Modifiez le fichier SampleEvent.json en remplaçant les valeurs de la clé d'objet, du nom du compartiment et de l'ARN du compartiment.

  • Récupérez le nom de la table DynamoDB. Ce nom est utilisé pour la commande sam local invoke suivante.

Utilisez le AWS SAM CLI pour générer un exemple d'événement Amazon S3 et appeler la fonction Lambda :

TABLE_NAME=Table name obtained from AWS CloudFormation console sam local invoke --event SampleEvent.json

La portion TABLE_NAME= définit le nom de la table DynamoDB. Le paramètre --event spécifie le fichier contenant le message d'événement test à transmettre à la fonction Lambda.

Vous pouvez maintenant vérifier que les enregistrements DynamoDB attendus ont été créés, en fonction des résultats renvoyés par Amazon Rekognition.

Étapes suivantes

Le AWS SAM GitHub référentiel contient des exemples d'applications supplémentaires que vous pouvez télécharger et tester. Pour accéder à ce référentiel, consultez Exemples d'applications AWS SAM.

ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.