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!

已提问 1 年前343 查看次数
1 回答
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
专家
已回答 1 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则

相关内容