Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Procese eventos de Amazon S3 con AWS SAM

Modo de enfoque
Procese eventos de Amazon S3 con AWS SAM - AWS Serverless Application Model

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Con esta aplicación de muestra, puedes basarte en lo aprendido en los ejemplos anteriores e instalar una aplicación más compleja. Esta aplicación consiste en una función de Lambda invocada por un origen de eventos de subida de objetos de Amazon S3. En este ejercicio se muestra cómo acceder a AWS los recursos y realizar llamadas AWS de servicio mediante una función Lambda.

Esta aplicación de muestra, que no tiene servidor, procesa eventos de creación de objetos en Amazon S3. Para cada imagen que se carga en un bucket, Amazon S3 detecta el evento creado por el objeto e invoca una función de Lambda. La función de Lambda invoca a Amazon Rekognition para detectar el texto de la imagen. A continuación, almacena los resultados devueltos por Amazon Rekognition en una tabla de DynamoDB.

nota

Con esta aplicación de ejemplo, los pasos se realizan en un orden ligeramente diferente al de los ejemplos anteriores. El motivo es que este ejemplo requiere que se creen AWS los recursos y que se configuren los permisos de IAM antes de poder probar la función Lambda localmente. Vamos a aprovechar AWS CloudFormation para crear los recursos y configurar los permisos por usted. De lo contrario, tendrás que hacerlo manualmente antes de poder probar la función de Lambda de forma local.

Como este ejemplo es más complicado, asegúrate primero de estar familiarizado con la instalación de las aplicaciones del ejemplo anterior antes de ejecutar esta.

Antes de empezar

Asegúrate de que has completado la configuración requerida en el Instale el AWS SAM CLI.

Paso 1: Inicializar la aplicación

En esta sección, descargará la aplicación de muestra, que consta de una AWS SAM plantilla y un código de aplicación.

Para inicializar la aplicación
  1. Ejecute el siguiente comando en un AWS SAM CLI línea de comandos.

    sam init \ --location https://github.com/aws-samples/cookiecutter-aws-sam-s3-rekognition-dynamodb-python \ --no-input
  2. Revisa el contenido del directorio creado por el comando (aws_sam_ocr/):

    • template.yaml— Define tres AWS recursos que necesita la aplicación Amazon S3: una función Lambda, un bucket de Amazon S3 y una tabla de DynamoDB. La plantilla también define el mapeo y los permisos entre estos recursos.

    • Directorio de src/: contiene el código de la aplicación de Amazon S3.

    • SampleEvent.json: El origen del evento de muestra, que se utiliza para las pruebas locales.

Paso 2: Crear el paquete de la aplicación

Antes de poder probar esta aplicación localmente, debe usar el AWS SAM CLI para crear un paquete de despliegue, que se utilizará para desplegar la aplicación AWS en la nube. Esta implementación crea los AWS recursos y permisos necesarios para probar la aplicación localmente.

Creación del paquete de implementación de Lambda
  1. Crea un bucket de S3 en la ubicación donde desea guardar el código empaquetado. Si quieres utilizar un bucket de S3 existente, omite este paso.

    aws s3 mb s3://bucketname
  2. Crea el paquete de implementación ejecutando el siguiente comando package CLI en el indicador de comandos.

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

    El nuevo archivo de plantilla, packaged.yaml, se especifica al implementar la aplicación en el siguiente paso.

Paso 3: implementar de la aplicación

Ahora que ha creado el paquete de implementación, lo usa para implementar la aplicación AWS en la nube. A continuación, pruebe la aplicación invocándola en la AWS nube.

Para implementar la aplicación sin servidor en la nube AWS
  • En el AWS SAM CLI, utilice el deploy comando para implementar todos los recursos que definió en la plantilla.

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

    En el comando, el --capabilities parámetro permite AWS CloudFormation crear un rol de IAM.

    AWS CloudFormation crea los AWS recursos que se definen en la plantilla. Puede acceder a los nombres de estos recursos en la AWS CloudFormation consola.

Para probar la aplicación sin servidor en la nube AWS
  1. Cargua una imagen en el bucket de Amazon S3 que creaste para esta aplicación de muestra.

  2. Abre la consola de DynamoDB y busca la tabla que se ha creado. Consulta la tabla para ver los resultados devueltos por Amazon Rekognition.

  3. Comprueba que la tabla de DynamoDB contenga nuevos registros, que a su vez contengan el texto que Amazon Rekognition encontró en la imagen cargada.

Paso 4: probar la aplicación de forma local

Antes de poder probar la aplicación localmente, primero debe recuperar los nombres de los AWS recursos creados por AWS CloudFormation.

  • Recupera el nombre de la clave y el nombre del bucket de Amazon S3 AWS CloudFormation. Modifica el archivo SampleEvent.json sustituyendo los valores claves del objeto, el nombre del bucket y el ARN del bucket.

  • Recupera el nombre de la tabla de DynamoDB. Este nombre se utiliza para el siguiente comando sam local invoke.

Utilice el AWS SAM CLI para generar un ejemplo de evento de Amazon S3 e invocar la función Lambda:

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

La parte TABLE_NAME= establece el nombre de la tabla de DynamoDB. El parámetro --event especifica el archivo que contiene el mensaje del evento de prueba que se va a pasar a la función de Lambda.

Ahora puedes comprobar que se crearon los registros de DynamoDB esperados, en función de los resultados devueltos por Amazon Rekognition.

Próximos pasos a seguir

El AWS SAM GitHub repositorio contiene aplicaciones de ejemplo adicionales para descargar y experimentar con ellas. Para acceder a este repositorio, consulta las AWS SAM Aplicaciones de muestra.

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.