search
LoginSignup
0
Help us understand the problem. What are the problem?

posted at

VPC内のLambdaからインターネットに接続する

背景・目的

インターネット上の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から、取得したデータを利用した分析など試してみたい。

参考

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
0
Help us understand the problem. What are the problem?