Skip to content

Scrapper serverless de la conversión de divisas a bolívares desde el Banco central de Venezuela. Para AWS Lambda functions

Notifications You must be signed in to change notification settings

kurokuro15/bcv-scrapper-aws

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bcv-scrapper-aws

paquete serverless para la extracción de los montos de conversión del banco central de venezuela. Ejecutandose una vez al día posterior a la actualización de estos. Actualmente limitado a ejecutarse por el desencadenamiento de un evento de AWS EventBridge ejecutado todos los días a las 21 horas UTC.

Procedimientos para ejecutar en un entorno local:

git clone https://github.com/kurokuro15/bcv-scrapper-aws.git

Procedimientos para ejecutar en un entorno AWS:

Para levantar la lambda function:

  • Copiar el repositorio localmente

    git clone https://github.com/kurokuro15/bcv-scrapper-aws.git

  • Instalar las dependencias de node

    npm install

  • Se ha de renombrar el archivo config.js.example como config.js configurando a su vez las variables internas SB_URL, SB_SERVICE_KEY donde SB_URL será la url de acceso al proyecto de supabase en donde el scrapper almacenará los datos y SB_SERVICE_KEY será el JWT de servicio que otorga Supabase para acceder como manteiner.

  • Crear un archivo layer.zip con la siguiente estructura:

     layer.zip
      └ nodejs/
       └ node_modules/*
    

    almacenando todas las dependencias de node_modules en dicho archivo .zip

  • Crear un archivo function.zip donde se almacenará la lambda function:

     function.zip
     	├ config.js
     	├ currencies.json
     	├ declarations.js
     	├ index.js
     	├ package.json
    
  • Acceder a la consola de AWS S3 y crear un bucket.

    • Almacenar ambos archivos comprimidos en este bucket.
  • Acceder a la consola de AWS Lambda Functions.

  • Acceder al apartado de capas y crear una capa.

    • Crearla a partir del enlace de S3 del layer.zip.
    • Indicar como runtime nodejs 12.x, nodejs 14.x y nodejs 16.x
  • Acceder a la opción de funciones y crear una función.

    • Crear a partir de una función vacía.
    • Identificar
    • Indicar como runtime nodejs 12.X
    • Una vez creada, acceder a esta y cargar código fuente a través de enlace de S3. Utilizar el enlace a function.zip ubicado en tú bucket de S3.
    • Después de cargar el .zip accedemos a configuración y ubicamos las variables de entorno o Environment Variables.
    • Crear una variable NODE_PATH = '/opt/nodejs/node_modules'
    • Asignar la layer creada previamente.

Con esto tenemos listo la configuración principal de la función lambda.

Ahora toca hacer el trigger por tiempo.

Para esto se agrega un disparador a la función.

  • Acceder a la función y crear un desencadenador.
  • Selecionar eventBridge y crear una nueva regla.
  • Utilizar expresión de programación
  • Utilizamos una expresión cron de la forma:
cron(Minutes Hours Day-of-month Month Day-of-week Year)
rate(5 minutes) // cada 5 minutos
cron(0 5 * * ? *) // a las 5:00 de cada día 
  • Finalizamos la configuración y tendríamos todo listo para la auto ejecución.
  • Se puede crear un test sin cuerpo para probar su funcionamiento.

Es importante utilizar NodeJS 12.X en AWS Lambda Functions

About

Scrapper serverless de la conversión de divisas a bolívares desde el Banco central de Venezuela. Para AWS Lambda functions

Topics

Resources

Stars

Watchers

Forks