[vc_row el_class=”blog-info”][vc_column][vc_single_image source=”featured_image” img_size=”full” style=”vc_box_rounded”][vc_empty_space height=”40px”][vc_row_inner][vc_column_inner width=”1/6″][/vc_column_inner][vc_column_inner width=”2/3″][vc_column_text el_class=”font-weight-bold”]
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.
[/vc_column_text][vc_empty_space height=”40px”][/vc_column_inner][vc_column_inner width=”1/6″][/vc_column_inner][/vc_row_inner][vc_row_inner][vc_column_inner width=”1/6″][/vc_column_inner][vc_column_inner width=”2/3″][vc_column_text]
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!
[/vc_column_text][/vc_column_inner][vc_column_inner width=”1/6″][/vc_column_inner][/vc_row_inner][/vc_column][/vc_row][vc_row el_class=”social-info”][vc_column width=”1/6″][/vc_column][vc_column width=”2/3″][vc_row_inner][vc_column_inner width=”1/2″][vc_column_text][social_share_button themes=’theme1′][/vc_column_text][/vc_column_inner][vc_column_inner el_class=”youtube-inner-col” width=”1/2″][vc_column_text][likebtn theme=”youtube” lang=”auto” show_like_label=”0″ white_label=”1″ alignment=”right”][/vc_column_text][/vc_column_inner][/vc_row_inner][vc_row_inner el_class=”social-info-inner”][vc_column_inner width=”1/4″][vc_single_image image=”921″][/vc_column_inner][vc_column_inner width=”3/4″][vc_column_text]
Diego Pacheco
Ingeniero en Sitemas, MBA (Babson College). Desarrollador PHP/Java/JavaScript. Fundador & CEO de EpicStudio. Entusiasta de las tecnologías web (JavaScript, Vue, Laravel, AWS, Docker) Viajes, Negocios, Surf y Growth.[/vc_column_text][asvc_list_item icon_fontawesome=”fa fa-calendar-o” icon_size=”14px”]Programar una reunión[/asvc_list_item][/vc_column_inner][/vc_row_inner][/vc_column][vc_column width=”1/6″][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]
Recent Post
[/vc_column_text][lvca_posts_carousel posts_query=”size:3|order_by:rand|post_type:post” image_linkable=”true” image_size=”full” taxonomy_chosen=”post_tag” display_title=”true” display_post_date=”true” display_summary=”true” autoplay_speed=”3000″ animation_speed=”300″ display_columns=”3″ scroll_columns=”3″ gutter=”3″ tablet_display_columns=”2″ tablet_scroll_columns=”2″ tablet_gutter=”3″ tablet_width=”800″ mobile_display_columns=”1″ mobile_scroll_columns=”1″ mobile_gutter=”3″ mobile_width=”480″][vc_empty_space height=”20px”][/vc_column][/vc_row]
