はじめに
個人開発始めたての方やAWS、webアプリの勉強してる方向けに、まず挫折しない超シンプルなAPIをAWS環境にPythonで作ってみました。PostmanでHTTPリクエストを送ると'helloworld'が返ってくるというだけのものです。
ぜひ参考になれば。
インフラ構成
まずさっくりしたインフラ構成図はこちらです。
私はmacを使っていますがPostmanのインストール手順が少し変わるだけで環境差分はほぼないです。
AWSのいいところですね。
事前準備
- AWSアカウントを発行済みであること
- Postmanがインストール済であること
⇨DLサイトhttps://www.postman.com/downloads/
構築の流れ
次にStep by StepでAPI構築の流れを追っていきます。
難しいところはほとんどなくサクサクと進めちゃいます。(30分くらいでできました。)
1. Lambda関数の作成
-
「一から作成」を選び、以下のように設定する
-
関数が作成されたら、コードエディタで「helloworld.py」というファイルを新規作成する
-
新規作成したファイルに以下のPythonコードを入力して「デプロイ」をクリックする
def lambda_handler(event, context): return { 'statusCode': 200, 'body': 'Hello, World!' }
2. API Gatewayの設定
-
API Gatewayコンソールで「REST API」を選択し、新しいAPIを作成します
- API名:HelloWorldAPI(任意)
-
作成したAPIで、「アクション」メニューから「リソースの作成」を選択し、以下のように設定する
-
リソース名:
/helloworld
-
リソース名:
-
リソースを選択した状態で「アクション」→「メソッドの作成」→ POST を選択する
-
統合タイプで「Lambda関数」を選び、先ほど作成したLambda関数(HelloWorldFunction)を指定する
-
API Gatewayで「アクション」→「APIのデプロイ」を選択する
-
新しいステージ(例:「dev」)を作成し、デプロイを完了させる
4. Postmanで動作確認
- Postmanを開き、POSTリクエストを作成する
- URLに、API GatewayでコピーしたエンドポイントURLを入力する
- 「Send」をクリックし、以下のようなレスポンスが返ってくることを確認する
```json
{
"statusCode": 200,
"body": "\"Hello from Lambda!\""
}
```
おわりに
今回作ったwebAPIをベースに、DBにレコードを新規登録するAPIや何かしらの値を返却するAPIを作ってもう少し拡張して行くと面白いかもと思います。
ちなみに私は、kintoneがデータを更新するたびにawsのRDSにレコードを登録・更新してくれるAPIを作る予定です。