Introducción a AWS

Cree una aplicación Web básica

Implemente una aplicación Web y agregue interactividad con una API y una base de datos

Módulo 2: crear una función sin servidor

En este módulo creará una función sin servidor utilizando AWS Lambda.

Introducción

En este módulo escribirá una pequeña porción de código en Python, JavaScript o Java, que luego se utilizará en otro módulo para agregarle interactividad al sitio Web. Utilizará el servicio de AWS Lambda, un servicio informático que nos permitirá crear las funciones sin servidor. (Las “funciones sin servidor” eliminan la necesidad de que el desarrollador administre el software y hardware. En lugar de eso, las aplicaciones se dividen en funciones individuales que se pueden invocar y escalar de manera individual).

Estas funciones sin servidor se activan en función de un evento específico que debe definir en el código. También es un servicio muy asequible, ya que solamente se le cobrará la cantidad de eventos que procese, no el tiempo de inactividad. Y lo mejor de todo es que no deberá preocuparse por la administración de los servidores.

Lo que aprenderá

  • Crear una función de Lambda desde el principio, utilizando la consola de AWS (en Python, JavaScript o Java)
  • Crear eventos (JSON) en la consola de AWS para probar la función

Conceptos clave

Servicio informático: se trata de un servicio que brinda potencia de procesamiento informático.

Función sin servidor: es una porción del código que ejecutará un servicio informático, bajo demanda.

Lambda Trigger: se trata del tipo de evento que permitirá la ejecución de la función de Lambda (sin servidor). Puede ser otro servicio de AWS o un aporte externo.

 Tiempo de realización

5 minutos

 Servicios utilizados

Implementación

  • Cree y configure la función Lambda
    • Python
    • JavaScript
    • Java
    • Python
      1. En una nueva pestaña en el navegador, inicie sesión en la Consola de AWS Lambda.
      2. Asegúrese de verificar en qué región está creando la función. Podrá ver ese detalle en la parte superior de la página, junto al nombre de la cuenta.
      3. Haga clic en el botón naranja “Crear función”.
      4. En el campo “Nombre de la función” escriba HelloWorldFunction.
      5. Seleccione Python 3.8 en el menú desplegable de tiempo de ejecución.
      Full Stack tutorial CreateFunction Python

      6. Haga clic en el botón naranja “Crear función”.

      7. En la parte superior de la pantalla verá un cuadro verde con el siguiente mensaje: “La función se creó correctamente”.

      8. Reemplace el código en el campo “Código de la función” con lo siguiente:

      # import the JSON utility package since we will be working with a JSON object
      import json
      # define the handler function that the Lambda service will use an entry point
      def lambda_handler(event, context):
      # extract values from the event object we got from the Lambda service
          name = event['firstName'] +' '+ event['lastName']
      # return a properly formatted JSON object
          return {
          'statusCode': 200,
          'body': json.dumps('Hello from Lambda, ' + name)
          }

      9. Haga clic en el botón naranja “Guardar” que se encuentra en la parte superior de la pantalla.

      10. Ahora debemos probar la función nueva. En la parte superior de la pantalla, haga clic en “Seleccionar un evento de prueba”.

      11. En el menú desplegable, haga clic en “Configurar eventos de prueba”.

      12. En el campo “Nombre del evento” escriba HelloWorldTestEvent.

      13. Copie y pegue el siguiente objeto JSON para reemplazar el objeto predeterminado:

      {
      "firstName": "Ada",
      "lastName": "Lovelace"
      }

      14. Haga clic en el botón naranja “Crear” al final de la página.

    • JavaScript
      1. En una nueva pestaña en el navegador, inicie sesión en la Consola de AWS Lambda.
      2. Asegúrese de verificar en qué región está creando la función. Podrá ver ese detalle en la parte superior de la página, junto al nombre de la cuenta.
      3. Haga clic en el botón naranja “Crear función”.
      4. En el campo “Nombre de la función” escriba HelloWorldFunction.
      5. Seleccione Node.js 12.x en el menú desplegable de tiempo de ejecución.
      Full Stack tutorial CreateFunction JavaScript

      6. Haga clic en el botón naranja “Crear función”.

      7. En la parte superior de la pantalla verá un cuadro verde con el siguiente mensaje: “La función se creó correctamente”.

      8. Reemplace el código en el campo “Código de la función” con lo siguiente:

      // Define handler function, the entry point to our code for the Lambda service
      // We receive the object that triggers the function as a parameter
      exports.handler = async (event) => {
          // Extract values from event and format as strings
          let name = JSON.stringify(`Hello from Lambda, ${event.firstName} ${event.lastName}`);
          // Create a JSON object with our response and store it in a constant
          const response = {
              statusCode: 200,
              body: name
          };
          // Return the response constant
          return response;
      };

      9. Haga clic en el botón naranja “Guardar” que se encuentra en la parte superior de la pantalla.

      10. Ahora debemos probar la función nueva. En la parte superior de la pantalla, haga clic en “Seleccionar un evento de prueba”.

      11. En el menú desplegable, haga clic en “Configurar eventos de prueba”.

      12. En el campo “Nombre del evento” escriba HelloWorldTestEvent.

      13. Copie y pegue el siguiente objeto JSON para reemplazar el objeto predeterminado:

      {
      "firstName": "Ada",
      "lastName": "Lovelace"
      }

      14. Haga clic en el botón naranja “Crear” al final de la página.

    • Java
      1. En una nueva pestaña en el navegador, inicie sesión en la Consola de AWS Lambda.
      2. Asegúrese de verificar en qué región está creando la función. Podrá ver ese detalle en la parte superior de la página, junto al nombre de la cuenta.
      3. Haga clic en el botón naranja “Crear función”.
      4. En el campo “Nombre de la función” escriba HelloWorldFunction.
      5. Seleccione Java 11 en el menú desplegable de tiempo de ejecución.
      Full Stack tutorial CreateFunction Java

      6. Haga clic en el botón naranja “Crear función”.

      7. En la parte superior de la pantalla verá un cuadro verde con el siguiente mensaje: “La función se creó correctamente”.

      8. Ha creado una función Lambda con una clase de gestor denominada Hello. Dado que el lenguaje Java es complicado, no podrá ver o editar el código fuente en la consola Lambda, pero podrá modificar su configuración, invocarla y configurar disparadores.

      9. Para actualizar el código de la función deberá crear un paquete de implementación, que será un archivo JAR o ZIP que contendrá el código de la función. Para este tutorial, brindamos el archivo JAR con el código de la función actualizado aquí.

      10. Diríjase a “Código de la función” y cargue el archivo JAR.

      Full Stack tutorial UploadJar

      11. Actualice el “Gestor” a com.example.app.LambdaRequestHandler::handleRequest.

      Full Stack tutorial UpdateHandler

      12. Haga clic en el botón naranja “Guardar” que se encuentra en la parte superior de la pantalla.

      13. Ahora debemos probar la función nueva. En la parte superior de la pantalla, haga clic en “Seleccionar un evento de prueba”.

      14. En el menú desplegable, haga clic en “Configurar eventos de prueba”.

      15. En el campo “Nombre del evento” escriba HelloWorldTestEvent.

      16. Copie y pegue el siguiente objeto JSON para reemplazar el objeto predeterminado:

      {
      "firstName": "Ada",
      "lastName": "Lovelace"
      }

      17. Haga clic en el botón naranja “Crear” al final de la página.

  • Pruebe la función Lambda
    1. Haga clic en el botón gris “Probar” en la parte superior de la página.
    2. En la parte superior de la página verá un cuadro verde claro con el siguiente texto: “Resultado de la ejecución: correcta”. Puede hacer clic en “Detalles” para ver el evento que arroja la función.
    3. ¡Bien hecho! Ahora la función Lambda funciona correctamente.

Arquitectura de aplicaciones

Ahora que ya terminamos este módulo, la arquitectura se verá de la siguiente manera:

full-stack amplify console arch diagram module 2

Notará que agregamos el servicio AWS Lambda, pero este aún no está conectado a AWS Amplify o a los usuarios. Eso lo haremos en el próximo módulo.

¿Este módulo le resultó útil?

Gracias
Indíquenos lo que le gustó.
Lamentamos haberlo decepcionado
¿Hay información desactualizada, confusa o inexacta? Ayúdenos a mejorar este tutorial con sus comentarios.

Enlazar la función sin servidor a la aplicación Web