Caso de uso de la función AWS Lambda
LambdaAccessRole – Cree una función lambda para contar el número de palabras en un archivo de texto.
Requisitos:
- Use la consola de administración de AWS para desarrollar una función de Lambda en Python
- Informar el recuento de trabajo en un correo electrónico utilizando el tema de Amazon SNA
- Formato del mensaje de respuesta: El recuento de palabras en el archivo <text FileName> es nnn.
- Asunto del correo electrónico: Resultado del conteo de palabras
- Active automáticamente la función cuando el archivo de texto se cargue en un depósito de Amazon S
- Pruebe la función Lambda cargando varios archivos de texto en el depósito S3
- Verificar el correo electrónico
Sugerencias:
- Asegúrese de crear todos sus recursos en la misma región.
- Necesita un rol de AWS Identity and Access Management (IAM) para que la función Lambda acceda a otros servicios de AWS.
El rol de LambdaAccessRole proporciona los siguientes permisos:
- AWSLambdaBasicExecutionRole
- AmazonSNSAcceso completo
- AmazonS3Acceso completo
- CloudWatchFullAccess
Solución:
1. Crear un depósito S3
2. Cree un tema de SNS, cree una suscripción: correo electrónico, actualice la política de acceso en el tema y mencione el tema arn en la condición del recurso en el JSON
"Como Arn": { “AWS:SoureArn”: “s3-cubo-arn” }
3. AWS Lambda: cree la función, elija el rol de IAM LambdaAccessRole
4. Configure S3 para activar la función Lambda, cree una notificación de evento
Fragmento de código de la función Lambda:
import boto3 s3_client = boto3.client(‘s3’) sns_client = boto3.client(‘sns’) def lambda_handler(event, context): # fecth the name of the bucket bucket_name = event[‘Records’][0][‘s3’][‘bucket’][‘name’] # fetch the object key key_name = event[‘Records’][0][‘s3’][‘object’][‘key’] # read the conents of the file file_content = s3_client.get_object(Bucket=bucket_name, Key=key_name)[‘Body’].read() myMessage = “The word count in the file “ + str(key_name) + “ is “ + str(len(file_content.split())) sns_client.publish(TargetArn = “arn:aws:sns:us-east-1:064892193515:myDemoTopic”, Message=myMessage, Subject=”Word Count Result”)
¡Gracias!
Recent Post
Laravel 8: Cómo arreglar ‘Target class does not exist’
Cómo arreglar ‘Target class does not exist’ en Laravel 8
Nuevas empresas emergentes de la recesión
Por qué las recesiones engendran nuevas empresas y una nueva generaciones de emprendedores
AWS MSK Topic: enviar datos desde Lambda
Enviar datos a AWS MSK Topic desde AWS Lambda