I need help calling an API form a URL and pulling that data to my S3 bucket

0

Hello, I am having trouble calling an API using Lambda trigger to collect data from this URL: https://data.nasdaq.com/api/v3/datatables/ZILLOW/DATA?indicator_id=ZSFH&region_id=99999&api_key=__afpDhxkYvt5XZzfEB- I wasnt sure what the best way to approach this was but I believe it can all be done through a lambda function? Also is there a certain way to word this process? I was looking for information about it online, but all I could find was tutorials of using the API Gateway which is not the approach that I am looking for thank you!

preguntada hace un año343 visualizaciones
1 Respuesta
0

Hi,

it should definitely possible, without involving an API Gateway.

Make sure Lambda is either non in a VPC 8as it gets outbound internet traffic automatically), or if it is in VPC, then you will need a NAT Gateway + Internet Gateway (IGW).

Nevertheless, depending on your language of choice, you can use libraries such as native https or axios for NodeJS one or requests (https://pypi.org/project/requests/) for Python.

An example for Node:

const axios = require('axios');

exports.handler = async (event) => {
    const url = 'https://data.nasdaq.com/api/v3/datatables/ZILLOW/DATA?indicator_id=ZSFH&region_id=99999&api_key=__afpDhxkYvt5XZzfEB-';
    const response = await axios.get(url);
    const data = response.data;
    return data;
};

or for Python:

import requests

def lambda_handler(event, context):
    url = 'https://data.nasdaq.com/api/v3/datatables/ZILLOW/DATA?indicator_id=ZSFH&region_id=99999&api_key=__afpDhxkYvt5XZzfEB-';
    response = requests.get(url)
    data = response.json()
    return data

Hope it helps ;)

profile picture
EXPERTO
respondido hace un año

No has iniciado sesión. Iniciar sesión para publicar una respuesta.

Una buena respuesta responde claramente a la pregunta, proporciona comentarios constructivos y fomenta el crecimiento profesional en la persona que hace la pregunta.

Pautas para responder preguntas