Creación de una aplicación con Serverless Framework, AWS y BigQuery

Publicado: 2021-01-28

Serverless se refiere a aplicaciones en las que la administración y la asignación de servidores y recursos están a cargo de un proveedor de la nube. Esto significa que el proveedor de la nube asigna dinámicamente los recursos. La aplicación se ejecuta en un contenedor sin estado que puede activarse mediante un evento. Un ejemplo de lo anterior y el que usaremos en este artículo es sobre AWS Lambda .

En resumen, podemos definir las "aplicaciones sin servidor" como aplicaciones que son sistemas basados ​​en la nube controlados por eventos. La aplicación se basa en servicios de terceros, lógica del lado del cliente y llamadas remotas (llamándola directamente Función como servicio ).

Instalación de Serverless Framework y configuración para Amazon AWS

logotipo sin servidor

1. Marco sin servidor

Serverless Framework es un marco de código abierto. Consiste en una interfaz de línea de comandos o CLI y un tablero alojado, que nos proporciona un sistema de administración de aplicaciones completamente sin servidor. El uso de Framework garantiza menos gastos generales y costos, desarrollo e implementación rápidos y protección de las aplicaciones sin servidor.

Antes de proceder a instalar el marco Serverless, primero debe configurar NodeJS. Es muy fácil de hacer en la mayoría de los sistemas operativos: solo tiene que visitar el sitio oficial de NodeJS para descargarlo e instalarlo. Recuerda elegir una versión superior a la 6.0.0.

Después de instalarlo, puede confirmar que NodeJS está disponible ejecutando node -v en la consola. Debería devolver la versión del nodo que ha instalado:

versión de nodo

Ahora está listo para comenzar, así que continúe e instale el marco Serverless.

Para hacer eso, siga la documentación para instalar y configurar el marco. Si lo prefiere, puede instalarlo solo para un proyecto, pero en DevriX, generalmente instalamos el marco globalmente: npm install -g serverless

Espere a que finalice el proceso y asegúrese de que Serverless se haya instalado correctamente ejecutando: serverless -v

información sin servidor

2. Cree una cuenta de Amazon AWS

Antes de continuar con la creación de su aplicación de muestra, debe crear una cuenta en Amazon AWS . Si aún no tiene una, es tan simple como ir a Amazon AWS y hacer clic en "Crear una cuenta de AWS" en la esquina superior derecha y seguir los pasos para crear una cuenta.

Crear una cuenta de Amazon AWS

Amazon requiere que ingrese una tarjeta de crédito, por lo que no puede continuar sin ingresar esa información. Al registrarse e iniciar sesión correctamente, debería ver la Consola de administración de AWS:

aws-consola

¡Genial! Procedamos ahora con la creación de su aplicación.

3. Configure el marco sin servidor con el proveedor de AWS y cree una aplicación de ejemplo

En este paso, tenemos que configurar el marco Serverless con el proveedor de AWS. Algunos servicios, como AWS Lambda, requieren credenciales cuando accede a ellos para asegurarse de que tiene permisos para los recursos que posee ese servicio. AWS recomienda utilizar AWS Identity and Access Manager (IAM) para lograrlo.

Entonces, lo primero y más importante es crear un usuario de IAM en AWS para usarlo dentro de nuestra aplicación:

En la consola de AWS:

  • Escriba IAM en el campo "Buscar servicios" .
  • Haga clic en "YO SOY" .
  • Ve a “Usuarios” .
  • Haga clic en "Agregar usuario" .

iam-añadir-usuario

Para "Nombre de usuario" usa lo que quieras. Por ejemplo, estamos usando serverless-admin. Para " Tipo de acceso" , marque "Acceso programático" y haga clic en "Permisos siguientes ".

iam-añadir-usuario2

Después de eso, tenemos que adjuntar permisos para el usuario, hacer clic en "Adjuntar políticas existentes directamente", buscar "Acceso de administrador" y hacer clic en él. Continúe haciendo clic en "Siguiente etiquetas"

iam-add-user3

Las etiquetas son opcionales, por lo que puede continuar haciendo clic en "Siguiente revisión" y "Crear usuario". Una vez hecho y cargado, aparece un mensaje de éxito en la página con las credenciales que necesitamos.

iam-añadir-usuario4

Ahora tenemos que ejecutar el siguiente comando:
serverless config credentials --provider aws --key key --secret secret --profile serverless-admin
Reemplace la clave y el secreto con el proporcionado anteriormente. Sus credenciales de AWS se crean como un perfil. Puede comprobarlo dos veces abriendo el archivo ~/.aws/credentials . Debe consistir en perfiles de AWS. Actualmente, en el siguiente ejemplo, es solo uno, el que hemos creado:

aws-credentials-file

¡Gran trabajo hasta ahora! Puede continuar creando una aplicación de ejemplo con NodeJS y las plantillas de inicio integradas.

Nota: Además, en el artículo, estamos usando el comando sls , que es la abreviatura de serverless .
Cree un directorio vacío e introdúzcalo. Ejecute el comando

ls create --template aws-nodejs

Con el comando create –template , especifique una de las plantillas disponibles, en este caso, aws-nodejs, que es una aplicación de plantilla "Hello world" de NodeJS .

sls-crear

Una vez hecho esto, su directorio debe constar de lo siguiente y se ve así:

sls-create-files

Hemos creado los nuevos archivos handler.js y serverless.yml .

El archivo handler.js almacena su(s) función(es) y serverless.yml almacena las propiedades de configuración que cambiará más adelante. Si se pregunta qué es el archivo .yml , en resumen, es un lenguaje de serialización de datos legible por humanos . Es bueno estar familiarizado con él, ya que se utiliza al insertar cualquier parámetro de configuración. Pero echemos un vistazo a lo que tenemos en el archivo serverless.yml ahora:

 servicio: aws-muestra-aplicación
proveedor:
  nombre: aws
  tiempo de ejecución: nodejs12.x
funciones:
  Hola:
    controlador: controlador.hola
  • servicio: – Nuestro nombre de servicio.
  • proveedor: un objeto que contiene propiedades de proveedor y, como vemos aquí, nuestro proveedor es AWS y estamos utilizando el tiempo de ejecución de NodeJS.
  • funciones: – Es un objeto que contiene todas las funciones que se pueden implementar en Lambda. En este ejemplo, solo tenemos una función llamada hello que apunta a la función hello de handler.js.

Debe hacer una cosa crucial aquí antes de continuar con la implementación de la aplicación. Anteriormente, configuramos las credenciales para AWS con un perfil (lo llamamos serverless-admin ). Ahora todo lo que tiene que hacer es decirle a la configuración sin servidor que use ese perfil y su región. Abra serverless.yml y debajo de la propiedad del proveedor justo debajo del tiempo de ejecución, ingrese esto:

 perfil: administrador sin servidor
región: us-east-2

Al final, deberíamos tener esto:

 proveedor:
  nombre: aws
  tiempo de ejecución: nodejs12.x
  perfil: administrador sin servidor
  región: us-east-2

Nota: para obtener la región, una manera fácil es buscar la URL cuando haya iniciado sesión en la consola: Ejemplo:

aws-región

Ahora que tenemos la información necesaria sobre nuestra plantilla generada. Veamos cómo podemos invocar la función localmente e implementarla en AWS Lambda.
Inmediatamente podemos probar la aplicación invocando la función localmente:

sls invoke local -f hello

Invoca la función (¡pero solo localmente!) y devuelve el resultado a la consola:

sls-invoke-local

Ahora, si todo salió bien, puede intentar implementar su función en AWS Lambda .

Entonces, ¿fue complicado? ¡No, no lo fue! Gracias a Serverless Framework , es solo un código de una línea:

sls deploy -v

Espere a que todo termine, puede tardar unos minutos, si todo está bien, debe terminar con algo como esto:

sls-deploy-terminado

Ahora veamos qué sucedió en AWS. Vaya a Lambda (en " Buscar servicios ", escriba Lambda ), y debería ver creada su función Lambda .

aws-lambda-creado

Ahora puede intentar invocar su función desde AWS Lambda. En el tipo de terminal
sls invoke -f hello
Debería devolver el mismo resultado que antes (cuando probamos localmente):

sls-invocar

Puede verificar que ha activado la función de AWS abriendo la función en AWS Lambda y yendo a la pestaña " Monitoreo " y haciendo clic en " Ver registros en CloudWatch". “.

lambda-cloudwatch-registros

Deberías tener un registro allí.

Ahora, todavía falta una cosa en su aplicación, pero ¿qué es…? Bueno, no tiene un punto de enlace para acceder a su aplicación, así que vamos a crearlo usando AWS API Gateway.

Primero debe abrir el archivo serverless.yml y limpiar los comentarios. Debe agregar una propiedad de eventos a nuestra función y bajo su propiedad http . Eso le dice al marco sin servidor que cree una API Gateway y la adjunte a nuestra función Lambda al implementar la aplicación. Nuestro archivo de configuración debería terminar así:

 servicio: aws-muestra-aplicación
proveedor:
  nombre: aws
  tiempo de ejecución: nodejs12.x
  perfil: administrador sin servidor
  región: us-east-2
funciones:
  Hola:
    controlador: controlador.hola
    eventos:
      -http:
          ruta: /hola
          método: obtener

En http especificamos la ruta y el método HTTP.
Eso es todo, implementemos nuestra aplicación nuevamente ejecutando sls deploy -v

Una vez que haya terminado, debería aparecer algo nuevo en la terminal de salida, y ese es el punto final que se ha creado:

http-punto final

Abramos el punto final:

http-endpoint-ejecutado

Debería ver que su función se está ejecutando, devolviendo resultados y alguna información sobre la solicitud. Veamos qué está cambiando en nuestra función Lambda.

Abra AWS Lambda y haga clic en su función.

aws-lambda-api-puerta de enlace

Vemos en la pestaña " Diseñador " que tenemos API Gateway adjunto a nuestro Lambda y el API Endpoint.

¡Genial! Creó una aplicación sin servidor súper simple, la implementó en AWS Lambda y probó su funcionalidad. Además, hemos agregado un punto de enlace mediante AWS API Gateway .

4. Cómo ejecutar la aplicación sin conexión

Hasta ahora, sabemos que podemos invocar funciones localmente, pero también podemos ejecutar toda nuestra aplicación sin conexión utilizando el complemento sin conexión sin servidor.

El complemento emula AWS Lambda y API Gateway en su máquina local/de desarrollo. Inicia un servidor HTTP que maneja las solicitudes e invoca a sus controladores.

Para instalar el complemento, ejecute el siguiente comando en el directorio de la aplicación

npm install serverless-offline --save-dev

Luego, dentro del archivo serverless.yml del proyecto, abra el archivo y agregue la propiedad de los complementos :

 complementos:
  - sin servidor sin conexión

La configuración debería verse así:

 servicio: aws-muestra-aplicación
proveedor:
  nombre: aws
  tiempo de ejecución: nodejs12.x
  perfil: administrador sin servidor
  región: us-east-2
funciones:
  Hola:
    controlador: controlador.hola
    eventos:
      -http:
          ruta: /hola
          método: obtener
complementos:
  - sin servidor sin conexión

Para comprobar que hemos instalado y configurado correctamente el complemento, ejecute

sls --verbose

Deberías ver esto:

sls-verbose

Ahora en la raíz de su proyecto, ejecute el comando

sls offline

sls-sin conexión

Como puede ver, un servidor HTTP está escuchando en el puerto 3000 y puede acceder a sus funciones, por ejemplo, aquí tenemos http://localhost:3000/dev/hello para nuestra función de saludo. Apertura que tenemos la misma respuesta que desde API Gateway , que creamos anteriormente.

sls-offline2

Agregue la integración de Google BigQuery

gran consulta

¡Has hecho un gran trabajo hasta ahora! Tiene una aplicación completamente funcional usando Serverless. Ampliemos nuestra aplicación y agreguemos la integración de BigQuery para ver cómo funciona y cómo se realiza la integración.

BigQuery es un software como servicio (SaaS) sin servidor, que es un almacén de datos rentable y rápido que admite consultas. Antes de continuar integrándolo con nuestra aplicación NodeJS, debemos crear una cuenta, así que procedamos.

1. Configurar Google Cloud Console

Vaya a https://cloud.google.com e inicie sesión con su cuenta, si aún no lo ha hecho, cree una cuenta y continúe.

Cuando inicia sesión en Google Cloud Console, debe crear un nuevo proyecto. Haga clic en los tres puntos al lado del logotipo y se abrirá una ventana modal donde elija " Nuevo proyecto".

gc-create-proyecto

Introduzca un nombre para su proyecto. Usaremos bigquery-example . Una vez que haya creado el proyecto, navegue a BigQuery usando el cajón:

gc-bq

Cuando se carga BigQuery, en el lado izquierdo, verá los datos del proyecto, a los que tiene acceso, y también los conjuntos de datos públicos. Estamos utilizando un conjunto de datos públicos para este ejemplo. Se llama covid19_ecdc :

bigquery-covid-dataset

Juega con el conjunto de datos y las tablas disponibles. Obtenga una vista previa de los datos que contiene. Es un conjunto de datos público que se actualiza cada hora y contiene información sobre datos mundiales de COVID-19 .

Tenemos que crear un usuario de IAM -> Cuenta de servicio para poder acceder a los datos. Entonces, en el menú, haga clic en "IAM y administración", luego en "Cuentas de servicio".

cuenta-servicio-bq

Haga clic en el botón "Crear cuenta de servicio" , ingrese el nombre de la cuenta de servicio y haga clic en "Crear". A continuación, vaya a " Permisos de cuenta de servicio" , busque y elija "Administrador de BigQuery" .

permisos de la cuenta de servicio de bq

Haga clic en " Continuar ", este es el último paso, aquí necesita sus claves, así que haga clic en el botón de creación debajo de " Claves " y exporte como JSON . Guarde esto en algún lugar seguro, lo necesitaremos más adelante. Haga clic en Listo para finalizar la creación de la cuenta de servicio.

cuenta de servicio de bigquery creada

Ahora, usaremos las credenciales generadas aquí para conectar la biblioteca NodeJS BigQuery.

2. Instalar la biblioteca NodeJS BigQuery

Deberá instalar la biblioteca BigQuery NodeJS para usarla en el proyecto que acaba de crear. Ejecute los siguientes comandos en el directorio de la aplicación:

Primero, inicialice npm ejecutando npm init

Complete todas las preguntas y continúe con la instalación de la biblioteca de BigQuery :
npm install @google-cloud/bigquery

Antes de continuar con el cambio de nuestro controlador de funciones, tenemos que llevar la clave privada del archivo JSON que hemos creado previamente. Vamos a utilizar variables de entorno sin servidor para hacer esto. Puede obtener más información aquí.

Abra serverless.yml y, en la propiedad del proveedor , agregue una propiedad de entorno como esta:

 ambiente:
PROYECTO_ID: ${archivo(./config/bigquery-config.json):proyecto_id}
CORREO ELECTRÓNICO_CLIENTE: ${archivo(./config/bigquery-config.json):correo_electrónico_cliente}
CLAVE_PRIVADA: ${archivo(./config/bigquery-config.json):clave_privada}

Cree las variables de entorno PROJECT_ID, PRIVATE_KEY y CLIENT_EMAIL , que toman las mismas propiedades (en minúsculas) del archivo JSON que hemos generado. Lo colocamos en la carpeta de configuración y lo llamamos bigquery-config.json .

En este momento, debería terminar con el archivo serverless.yml con este aspecto:

 servicio: aws-muestra-aplicación
proveedor:
  nombre: aws
  tiempo de ejecución: nodejs12.x
  perfil: administrador sin servidor
  región: us-east-2
  ambiente:
    PROYECTO_ID: ${archivo(./config/bigquery-config.json):proyecto_id}
    CORREO ELECTRÓNICO_CLIENTE: ${archivo(./config/bigquery-config.json):correo_electrónico_cliente}
    CLAVE_PRIVADA: ${archivo(./config/bigquery-config.json):clave_privada}
funciones:
  Hola:
    controlador: controlador.hola
    eventos:
      -http:
          ruta: /hola
          método: obtener
complementos:
  - sin servidor sin conexión

Ahora abra handler.js e importemos la biblioteca de BigQuery, en la parte superior del archivo, debajo de 'usar estricto', agregue la siguiente línea:

const {BigQuery} = require('@google-cloud/bigquery');

Ahora tenemos que decirle a la biblioteca de BigQuery las credenciales. Para este propósito, cree una nueva constante que instancia BigQuery con las credenciales:

 const bigQueryClient = nuevo BigQuery({
    ID del proyecto: proceso.env.PROJECT_ID,
    cartas credenciales: {
        cliente_email: proceso.env.CLIENT_EMAIL,
        clave_privada: proceso.env.CLAVE_PRIVADA
    }
});

A continuación, creemos nuestra consulta SQL de BigQuery. Queremos recuperar la información más reciente sobre los casos de COVID-19 en Bulgaria. Usamos el editor de consultas de BigQuery para probarlo antes de continuar, por lo que creamos una consulta personalizada:

 SELECCIONE * DESDE `bigquery-public-data.covid19_ecdc.covid_19_geographic_distribution_worldwide` DONDE geo_ ORDENAR POR fecha DESC LÍMITE 1 

bigquery-consulta-resultados

¡Bien! Ahora implementemos eso en nuestra aplicación NodeJS.
Abra handler.js y pegue el código a continuación

 const query = 'SELECT * FROM `bigquery-public-data.covid19_ecdc.covid_19_geographic_distribution_worldwide` WHERE geo_id = \'BG\' ORDER BY date DESC LIMIT 1';
opciones constantes = {
    consulta: consulta
}

const [trabajo] = esperar bigQueryClient.createQueryJob(opciones);
const [filas] = esperar trabajo.getQueryResults();

Hemos creado constantes de consulta y opciones . Luego procedemos a ejecutar la consulta como un trabajo y recuperar los resultados de eso.

También cambiemos nuestro controlador de devolución para devolver las filas generadas de la consulta:

 regreso {
    código de estado: 200,
    cuerpo: JSON.stringify(
        {
            filas
        },
        nulo,
        2
    ),
};

Veamos el handler.js completo:

 'uso estricto';

constante {BigQuery} = require('@google-cloud/bigquery');
const bigQueryClient = nuevo BigQuery({
    ID del proyecto: proceso.env.PROJECT_ID,
    cartas credenciales: {
        cliente_email: proceso.env.CLIENT_EMAIL,
        clave_privada: proceso.env.CLAVE_PRIVADA
    }
});

module.exports.hello = evento asíncrono => {
    const query = 'SELECT * FROM `bigquery-public-data.covid19_ecdc.covid_19_geographic_distribution_worldwide` WHERE geo_id = \'BG\' ORDER BY date DESC LIMIT 1';
    opciones constantes = {
        consulta: consulta
    }

    const [trabajo] = esperar bigQueryClient.createQueryJob(opciones);
    const [filas] = esperar trabajo.getQueryResults();

    regreso {
        código de estado: 200,
        cuerpo: JSON.stringify(
            {
                filas
            },
            nulo,
            2
        ),
    };
};

¡Okey! Probemos nuestra función localmente:
sls invoke local -f hello
Deberíamos ver la salida:

bigquery-hola-invocar

Continúe con la implementación de la aplicación para probarla a través de puntos finales HTTP, así que ejecute sls deploy -v

Espere a que termine y abra el punto final. Aquí están los resultados:

bigquery-endpoint

¡Bien hecho! ¡Ahora tenemos una aplicación para recuperar datos de BigQuery y devolver una respuesta! Finalmente, verifiquemos que esté funcionando sin conexión. Ejecutar sls offline

Y cargue el punto final local:

bigquery-fuera de línea

trabajo bien hecho Estamos casi al final del proceso. El último paso es cambiar ligeramente la aplicación y el comportamiento. En lugar de AWS API Gateway , queremos usar Application Load Balancer . Veamos cómo lograrlo en el próximo capítulo.

ALB: balanceador de carga de aplicaciones en AWS

Hemos creado nuestra aplicación utilizando AWS API Gateway. En este capítulo, cubriremos cómo reemplazar API Gateway con Application Load Balancer (ALB).

Primero, veamos cómo funciona el balanceador de carga de aplicaciones en comparación con API Gateway:

En el balanceador de carga de aplicaciones, asignamos una ruta específica (p. ej., /hello/ ) a un grupo objetivo: un grupo de recursos, en nuestro caso, la función Lambda .

Un grupo objetivo solo puede tener una función de Lambda asociada. Cada vez que el grupo objetivo necesita responder, el balanceador de carga de la aplicación envía una solicitud a Lambda y la función debe responder con un objeto de respuesta. Al igual que API Gateway, ALB maneja todas las solicitudes HTTP.

Existen algunas diferencias entre ALB y API Gateway . Una diferencia principal es que API Gateway solo admite HTTPS (SSL), mientras que ALB admite tanto HTTP como HTTPS.

Pero, veamos algunos pros y contras de API Gateway:

Puerta de enlace API:

Ventajas:

  • Excelente seguridad.
  • Es fácil de implementar.
  • Es rápido para el despliegue y está listo para funcionar en un minuto.
  • Escalabilidad y disponibilidad.

Contras:

  • Puede llegar a ser bastante costoso cuando se enfrenta a un alto tráfico.
  • Requiere un poco más de orquestación, lo que agrega un nivel de dificultad para los desarrolladores.
  • La degradación del rendimiento, debido a los escenarios de la API, puede afectar la velocidad y la confiabilidad de la aplicación.

Continuemos con la creación de un ALB y cambiemos a él en lugar de usar API Gateway:

1. ¿Qué es ALB?

El equilibrador de carga de la aplicación permite al desarrollador configurar y enrutar el tráfico entrante. Es una característica de “ Elastic Load Balancing”. Sirve como el único punto de contacto para los clientes, distribuye el tráfico de aplicaciones entrantes entre múltiples objetivos, como instancias EC2 en múltiples zonas.

2. Cree un balanceador de carga de aplicaciones utilizando la interfaz de usuario de AWS

Vamos a crear nuestro balanceador de carga de aplicaciones (ALB) a través de la interfaz de usuario en Amazon AWS. Inicie sesión en la Consola de AWS en “ Buscar servicios. ” escriba “ EC2 ” y busque “ Equilibradores de carga.

aws-alb

Haga clic en " Crear Load Balancer ", en " Application Load Balancer ", elija " Crear ". Para un nombre, ingrese su elección, hemos usado " sample-alb", elija Esquema " orientado a Internet ", tipo de dirección IP ipv4.

En “ Oyentes ”, déjelo como está: HTTP y puerto 80. Se puede configurar para HTTPS, aunque debe tener un dominio y confirmarlo antes de poder usar HTTPS.

Zonas de disponibilidad: para VPC , elija la que tenga del menú desplegable y marque todas las " Zonas de disponibilidad" :

aws-alb-create1

Haga clic en " Siguiente Configurar ajustes de seguridad " para solicitarle que mejore la seguridad de su balanceador de carga. Haga clic en Siguiente.

En el " Paso 3. Configurar grupos de seguridad ", en Asignar un grupo de seguridad para elegir "Crear un nuevo grupo de seguridad". Continúe a continuación haciendo clic en " Siguiente: Configurar enrutamiento". “. En el paso 4, configúrelo como se muestra en la captura de pantalla anterior:

aws-alb-enrutamiento

Haga clic en Siguiente , Siguiente y Crear .

Regrese a los balanceadores de carga y copie el ARN como se muestra en la captura de pantalla:

aws-alb-arn

Ahora tenemos que cambiar nuestro serverless.yml y eliminar la propiedad http de API Gateway. En la propiedad de eventos, elimine la propiedad http y agregue una propiedad alb. El objeto de la función debe terminar así:

 Hola:
  controlador: controlador.hola
  eventos:
    - alba:
        listenerArn: arn:aws:elasticloadbalancing:us-east-2:115129174008:listener/app/sample-alb/ae6e398a898c48e6/67ce6bf319d0513d
        Prioridad 1
        condiciones:
          ruta: /hola

Guarde el archivo y ejecute el comando para implementar la aplicación.
sls deploy -v

Después de implementar con éxito, regrese a AWS Load Balancers y busque su nombre de DNS como se muestra en la captura de pantalla:

aws-alb-dns

Copie el nombre DNS e ingrese la ruta /hello .

Debería funcionar y eventualmente ofrecerte la opción de descargar contenido :). Hasta ahora, el equilibrador de carga de la aplicación funciona maravillosamente, pero la aplicación debe devolver una respuesta adecuada a nuestros usuarios finales. Para hacer esto, abra handler.js y reemplace la declaración de devolución con la siguiente:

 regreso {
    código de estado: 200,
    estadoDescripción: "200 OK",
    encabezados: {
        "Tipo de contenido": "aplicación/json"
    },
    isBase64Codificado: falso,
    cuerpo: JSON.stringify (filas)
}

La diferencia del ALB es que la respuesta debe incluir la descripción del estado del contenedor, los encabezados e isBase64Encoded. Guarde el archivo e implemente nuevamente, pero esta vez no toda la aplicación, sino solo la función que hemos cambiado. Ejecute el siguiente comando:
sls deploy -f hello

De esta manera, estamos definiendo solo la función hola para implementar. Después de implementar con éxito, visite el nombre DNS con la ruta nuevamente, ¡y debería tener una respuesta adecuada!

aws-alb-respuesta

¡Genial! Ahora hemos reemplazado API Gateway con Application Load Balancer. La aplicación Load balancer es más económica que API Gateway, y ahora podemos ampliar nuestra aplicación para satisfacer nuestras necesidades, especialmente si esperamos tener un mayor tráfico.

Ultimas palabras

Creamos una aplicación simple usando Serverless Framework, AWS y BigQuery , y cubrimos su uso principal. Serverless es el futuro, y es fácil manejar una aplicación con él. Sigue aprendiendo y sumérgete en el framework Serverless para explorar toda su funcionalidad y los secretos que esconde. También es una herramienta bastante sencilla y conveniente.