Llamar una función Lambda de AWS con parámetros

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email

Lambda es el servicio de Amazon AWS para crear aplicaciones sin servidores. Es decir, subimos el código fuente y AWS se encarga de ejecutarlo sin que nosotros conozcamos la arquitectura hardware que hay detrás.

Con Lambda podemos crear aplicaciones en diferentes lenguajes o, sencillamente, un función que invoque a una api de Amazon. Por ejemplo, ejecutar un snapshot sobre un volumen EBS.

A estas funciones, si lo deseamos, las podemos programar para que se ejecuten periódicamente desde CloudWatch, pero este artículo trata de cómo crear una función Lambda a la que le pasaremos un parámetro.

En el siguiente ejemplo, crearemos una función, cuyo parámetro será el identificador del volumen EBS del que queremos realizar un snapshot. Utilizaremos el siguiente código en Python para crear dicha función:

HP 15s-fq2038ns - Ordenador Portátil de 15.6” FHD (Intel Core i5-1135G7, 8GB RAM, 512GB...
  • Pantalla Full HD de 15.6" (39,6 cm) en diagonal; bisel micro-edge; antirreflectante; 250 nits; 45 % NTSC (1920 x 1080), 60Hz
  • Procesador Intel Core i5-1135G7 (hasta 4,2 GHz con tecnología Intel Turbo Boost, 8 MB de caché L3, 4 núcleos)
  • Memoria RAM DDR4-2666 MHz de 8 GB

import boto3

Rebajas
Samsung LF27T352FHRXEN - Monitor Plano de 27", Full HD (1080p, Panel IPS), Freesync, HDMI,...
  • Monitor 27 pulgadas con panel IPS y ángulo de visión de 178º para una calidad de visionado superior e imágenes cristalinas
  • Pantalla sin marcos en tres bordes, que facilita el montaje de varios monitores
  • AMD Freesync y Game mode, experiencia gaming inmersiva

   ec = boto3.client(‘ec2′, region_name=’eu-west-1’)

   def lambda_handler(event, context):
   ec.create_snapshot( VolumeId=event[‘volid‘],         Description=event[‘description‘],)

volid: Es el ID del volumen del que queremos hacer el snapshot y se lo pasaremos como parámetro a la función.

Description: Es un parámetro que utilizaremos para añadir una descripción al snapshot.

Una vez creada la función, la podemos probar desde el mismo entorno de prueba, haciendo click en el botón «prueba», donde indicaremos los valores de los parámetros que le pasamos a la función:

Si queremos ejecutar la función desde la línea de comandos con AWS Cli, podemos pasar los parámetros de dos maneras:

  • Con un fichero de texto que contiene los parámetros:

[[email protected] ~]# aws lambda invoke –region eu-west-1 –function-name CreateSnapshot –payload file://input.txt output.txt
{
«StatusCode»: 200
}
[[email protected] ~]# cat input.txt  Este es el fichero de parámetros
{
«volid«: «vol-07b239bfcde6aae69»,
«description«: «aws snapshot test»
}

  • Pasamos todos los parámetros en una única línea:

[[email protected] ~]# aws lambda invoke –region eu-west-1 –function-name CreateSnapshot –payload ‘{«volid«:»vol-07b239bfcde6aae69», «description«:»aws snapshot test»}’ output.txt
{
«StatusCode»: 200
}
[[email protected] ~]#

¿Te ha gustado? Compártelo

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email
About Author

Contenido Relacionado

Artículos Recientes

Deja un comentario