背景・目的
インターネット上のAPIを呼び出して、データを取得したい。
これを、Lambdaで実現する方法を試す。
内容
概要
-
Qiita APIの
/api/v2/items
を使用して記事の一覧を作成日時の降順で取得する。
前提
- ネットワーク(VPC、サブネット、ルートテーブル)、インターネットゲートウェイ、NATゲートウェイなど正しく設定されているものとする。
実践
Lambda関数の作成
- 上記の他に、予め作成したVPC、サブネット、セキュリティグループを指定する。
コード
- 以下のコードを書いて、Deploy&Testを実行。
import urllib.request
import json
# エンドポイント
url = 'https://qiita.com/api/v2/items?page=1&per_page=10'
# リクエスト
req = urllib.request.Request(url)
try:
with urllib.request.urlopen(req) as res:
body = json.load(res)
for item in body:
print("{0}".format(item['title']))
except urllib.error.HTTPError as e:
if e.code >=400:
print(e.reason)
else:
raise e
- 指定したエンドポイントに対して、リクエストを実行しタイトルを取得するプログラム。
- Qiita APIを見ると、他にもURLやタグなども取得できるようだ。
結果
- 以下のように結果が返ってきました。
ABC245のA, B, C, D問題 を Elixir で解く
Flutterで作成したアプリをリリースした話
Azure x IBMCloud Active/Active 冗長化接続(IPsecVPN+BGP)
ISLispでラムダ計算インタプリタを作った話
ドメインモデルで設計上の問題を解決する
OData #3 Intune データ ウェアハウスでデバイス管理のためのレポートを作成する
text-align: center;の使い方
Python3: Elastic Cloud の filters の使い方
Dynatraceでダッシュボードの作成
Go言語 HelloWorld
考察
- 次回は、この関数を定期的に実行する。
- 今後、QiitaAPIから、取得したデータを利用した分析など試してみたい。
参考