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.
git clone https://github.com/kurokuro15/bcv-scrapper-aws.git
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
comoconfig.js
configurando a su vez las variables internasSB_URL
,SB_SERVICE_KEY
dondeSB_URL
será la url de acceso al proyecto de supabase en donde el scrapper almacenará los datos ySB_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
ynodejs 16.x
- Crearla a partir del enlace de S3 del
-
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 oEnvironment 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.
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