Saltear al contenido principal

Cómo crear su primera función Python 3.6 AWS Lambda – Lenguaje Python

Amazon Web Services (AWS) Lambda proporciona un servicio informático basado en el uso para ejecutar código Python en respuesta a eventos definidos por el desarrollador. Por ejemplo, si un HTTP POST entrante llega a API Gateway o se carga un nuevo archivo en
AWS S3 luego, AWS Lambda puede ejecutar una función para responder a esa llamada a la API o manipular el archivo en S3.

AWS Lambdas no está relacionado con los lenguajes Python ‘ lambda expresiones, que se utilizan para crear funciones anónimas. El nombre de AWS Lambda simplemente choca con el lambda nombre de la palabra clave.

Aprendamos a escribir y ejecutar rápidamente una función Lambda para ejecutar código básico de Python 3.6 que utiliza variables de entorno como entrada. Este código, que también es disponible en GitHub en el repositorio de ejemplos de publicaciones de blog se puede cambiar para que pueda construir programas Python mucho más complicados.

Nuestras herramientas

No se requieren herramientas de entorno de desarrollo local para este tutorial, aparte de un navegador web. Todo el trabajo se realizará en AWS a través de su consola.

Estos pasos también se pueden completar desde la línea de comando a través del
boto3 biblioteca, pero no cubriremos eso en esta publicación.

Si usar Python 2 sigue siendo su problema en lugar de Python 3, eche un vistazo a esta otra publicación que muestra cómo ejecutar el código Python 2.7 en AWS Lambda.

Primeros pasos con AWS Lambda

Regístrese para una nueva Cuenta de Amazon Web Services, que proporciona un generoso nivel gratuito, o utilice su cuenta de AWS existente.

Pantalla de inicio de sesión y aterrizaje de AWS Lambda.

Después de registrarse, pueden aparecer algunos tutoriales, pero omítelos y vaya a la consola principal. AWS tiene toneladas de servicios, y cada mes se agregan más, por lo que usar el cuadro de búsqueda es la mejor manera de moverse. Seleccione el cuadro de texto de búsqueda, ingrese «lambda» y seleccione «Lambda» para llegar a la página de inicio de Lambda.

Busque lambda en el cuadro de texto del panel.

Haga clic en el botón «Crear una función Lambda». Aparecerá la página «Seleccionar plano».

La pantalla Seleccionar Blueprint Lambda.

Seleccione «Función en blanco» y aparecerá la página «Configurar disparadores». No fue obvio para mí al principio, pero en realidad no es necesario configurar un disparador para seguir adelante. Un desencadenante es cómo la función Lambda normalmente sabe cuándo ejecutarse en función de un evento de otro servicio de AWS, como
Puerta de enlace API o
Cloudwatch.

Configure la pantalla de disparo de Lambda.

No configuraremos un disparador para esta función porque podemos iniciar manualmente el Lambda para probarlo cuando hayamos terminado de configurarlo. Deje el icono del disparador en blanco y haga clic en el botón «Siguiente» para avanzar.

La pantalla de configuración de Lambda.

A continuación, llegamos a la pantalla «Configurar función» donde finalmente podemos escribir código.

Código Python para nuestra función Lambda

Ingrese un nombre para la función Lambda, como «python_3_6_lambda_test», así como una descripción. Una descripción es opcional, pero es útil cuando tiene docenas o cientos de funciones Lambda diferentes y necesita mantenerlas en orden. En el menú desplegable Runtime, seleccione Python 3.6 como lenguaje de programación.

Ingrese un nombre, una descripción y use Python 3.6 para Lambda.

Debajo del menú desplegable Runtime hay un cuadro de texto grande para el código, precargado con un lambda_handler definición de función. El menú desplegable «Tipo de entrada de código» también se puede cambiar para permitir la carga de un archivo ZIP o la entrada de un archivo desde un depósito de S3. Para nuestra primera función Lambda simple, nos ceñiremos a la opción «Editar código en línea». Copie o escriba el siguiente código, reemplazando lo que ya está en el cuadro de texto. Este código también está disponible en este repositorio de GitHub de código abierto.

import os


def lambda_handler(event, context):
    what_to_print = os.environ.get("what_to_print")
    how_many_times = int(os.environ.get("how_many_times"))

    # make sure what_to_print and how_many_times values exist
    if what_to_print and how_many_times > 0:
        for i in range(0, how_many_times):
            # formatted string literals are new in Python 3.6
            print(f"what_to_print: {what_to_print}.")
        return what_to_print
    return None

El código anterior contiene un lambda_handler , que es el enlace definido de AWS Lambda para que sepa dónde comenzar la ejecución. Pensar en
lambda_handler como un main función, como el
if __name__ == "__main__": línea condicional comúnmente utilizada en archivos Python para garantizar que se ejecute un bloque de código cuando se ejecuta un script desde la línea de comandos.

El código Python espera dos variables de entorno que son leídas por el
os módulo con el environ.get función. Con el what_to_print y
how_many_times variables establecidas por las variables de entorno, nuestro código luego imprime un mensaje cero o más veces, según la cantidad definida en el how_many_times variable. Si un mensaje se imprime al menos una vez, la función devuelve el what_to_print cadena, si no se imprime nada entonces None es regresado.

Debajo del cuadro de texto de entrada de código en esta pantalla de configuración de función hay una sección para establecer pares clave-valor de variables de entorno.

Ingrese las claves nombradas what_to_print y how_many_times luego ingrese sus valores. Use un mensaje de cadena para what_to_printy un número entero entero superior a 0 para how_many_times. El manejo de errores de nuestro código Python no es muy robusto, por lo que un valor que no sea un número en el how_many_times
La variable hará que el script arroje un error cuando se ejecute debido a la conversión forzada de how_many_times mediante el int() función.

Sección para establecer variables de entorno para la función Lambda.

El código Python 3.6 y las variables de entorno ahora están en su lugar. Solo necesitamos manejar algunas configuraciones más específicas de AWS antes de que podamos probar la función Lambda.

Ejecutando nuestra función Lambda

Desplácese más allá de las variables de entorno hasta la sección «Controlador de funciones Lambda y rol», que contiene algunos elementos de configuración de funciones más necesarios.

Mantenga el controlador predeterminado configurado en lambda_function.lambda_handler. Seleccione «Crear un nuevo rol a partir de plantillas» en el menú desplegable y, a continuación, en el campo «Nombre del rol» ingrese «dynamodb_access». En «Plantillas de políticas», seleccione «Permisos de microservicio simple».

Los «permisos de microservicio simple» permiten que nuestro Lambda acceda
AWS DynamoDB. No usaremos DynamoDB en este tutorial, pero el servicio se usa comúnmente como almacenamiento permanente o temporal para funciones de Lambda.

Para la configuración final, mantenga el controlador predeterminado, cree un nuevo rol a partir de una plantilla para permisos de Microservicio simple y guárdelo con un nombre único.

Nuestro código y configuración están en su lugar, así que haga clic en el botón «Siguiente» en la esquina inferior derecha de la página.

Revise la configuración de Lambda.

La pantalla de revisión nos muestra nuestros ajustes de configuración para asegurarnos de que seleccionamos los valores adecuados para nuestra nueva función Lambda. Desplácese hacia abajo y presione «Crear función».

Haga clic en el botón Crear función para continuar.

El mensaje de éxito debería aparecer en la página siguiente debajo del botón «Prueba».

Botón de prueba en la pantalla de ejecución.

Haga clic en el botón «Prueba» para ejecutar Lambda. Lambda nos pedirá algunos datos para simular un evento que iniciaría nuestra función. Seleccione la plantilla de evento de muestra «Hello World», que contiene algunas claves, pero nuestro Lambda no las utilizará en su ejecución. Haga clic en el botón «Guardar y probar» en la parte inferior del modal.

Plantilla de evento de muestra para la ejecución de Lambda.

Desplácese hacia abajo hasta la sección «Resultado de la ejecución» donde podemos ver nuestro resultado.

Es el resultado de ejecutar nuestra nueva función Lambda.

La salida del registro nos muestra el valor de retorno de nuestra función, que en esta ejecución era el mensaje de cadena de what_to_print. También podemos ver que nuestra función de impresión produjo una salida cinco veces superior a la esperada en función de la cantidad establecida en el how_many_times Variable ambiental.

Próximos pasos

¡Acaba de configurar, codificar y ejecutar su primera función Python 3.6 AWS Lambda! El poder real de Lambda surge cuando usa desencadenadores para su función Lambda para que se ejecute en función de los eventos que suceden. Lo veremos en el próximo tutorial.

Consulte la página de AWS Lambda Mundo Python Python para ver ejemplos y tutoriales adicionales que otras personas han compartido para Lambda con Python.

Preguntas? Contáctame a través de Twitter
@fullstackpython
o @mattmakai. También estoy en GitHub con el nombre de usuario Mattmakai.

¿Algo anda mal con esta publicación? Tenedor
la fuente de esta página en GitHub
y envíe una solicitud de extracción.


¿Necesitas ayuda para revisar el código de tu proyecto?



Esta entrada tiene 0 comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Volver arriba