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
-
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
-
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
-
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
-
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
-
Cargua una imagen en el bucket de Amazon S3 que creaste para esta aplicación de muestra.
-
Abre la consola de DynamoDB y busca la tabla que se ha creado. Consulta la tabla para ver los resultados devueltos por Amazon Rekognition.
-
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