Cloud9でAPI Gateway+Lambdaを爆速で作る
今回作るもの
はい👻
AWS Cloud9を使って API Gateway + Lambda を爆速で開発します。
これは簡単なWebAPIを作ってテストしたいとかそういった場合にとても便利ですので、手順を知っていて損はありません!
前提
- 作業できるAWSアカウントがある
では 作っていきましょう👻
ステップ1
Cloud9ので開発環境を構築します
まずCloud9のコンソールを開きましょう

「Create Environment」 クリック
適当に名前をつけて「Next step」クリック
デフォルト設定で下までスクロールして、、、すみませんスクショが消えました。 スクロールして一番下のボタン押してください。 その後もう一度一番下のボタンおしてください。 たぶん「Create Environment」。。。だったと思います。
ボタンを押すと作成画面に入り、しばらくすると環境が自動起動します。

ステップ2
API GatewayとLambdaのデプロイします
自動起動した環境から。。。右側端の「AWS Resources」クリック

メニューが開くのでLambdaマークをクリック

適当にLambdaの名前をつけて「Next」をクリック

ランタイムで「python3.6」を選択してempty-pythonを選択して「Next」クリック

API Gatewayを選択して、APIのエンドポインのパスを入力(例ではaabbcc)して「Next」クリック

下記の設定で「Next」クリック

「Finish」クリック

メニューにLambdaが使いされますが、しばらく作り中でピロピロしてます。
↓ピロピロ中

ピロピロが終了したら、Lambdaマークで右クリックして「Edit Config」クリック

下記の選択した場所「ANY」を「POST」へ書き換えて保存(command + s)
また、左の一覧からlambda_function.pyをクリック。lambdaの処理を書きます。

プロキシ統合でlambdaがデプロイされるためreturnのKeyは下記の固定ですので注意を!!
import json
def lambda_handler(event, context):
# TODO implement
return {
'statusCode': 200,
'headers': {
"Access-Control-Allow-Origin": "*"
},
'body': json.dumps(event)
}
処理としては受け取ったbodyを返すだけです。

動作の確認をしてみましょう。「Run」をクリック

下記のようにテストで送るデータをJSONで記述して「Run」をクリックすると、下記のようにレスポンスが返ってきますねー

最後です。スクショがわかりにくくて申し訳ないです。lambdaマークを右クリックして「Deploy」をクリック

しばらくピロピロが続き、収まったらデプロイ完了です!
ステップ3
生成物を確認してみましょう。
lambdaのコンソールを開き、今回作成したlambda関数をクリックします。

下記な感じで、API Gatewayと接続していることが確認できます。
API Gatewayのアイコンをクリックしてください。

エンドポインが表示されます。のでターミナルからPOSTを投げてみましょう。

$ curl -XPOST https://xjn84zf5ck.execute-api.ap-northeast-1.amazonaws.com/Prod/aabbcc \
-d '{"aaa":111, "bbb":222, "ccc":333}'
{
"resource": "/aabbcc",
"path": "/aabbcc",
"httpMethod": "POST",
"headers": {
"Accept": "*/*",
// 省略...
},
// 省略...
"body": "{\"aaa\":111, \"bbb\":222, \"ccc\":333}",
}
bodyに入れたデータがレスポンスでも返ってくることが確認できました!👻
次に↑のスクショの「cloud9-yyyyyyyy」的なボタンをクリックしてください
下記のような構成のAPIが作られていることが確認できます。

以上。Cloud9を使って簡単お手軽爆速に、APIを用意することができたと思います。
👻
削除方法
Lambdaの削除。
これはCloud Formationからデプロイされているので、 まずCloud Formationのターミナルに入って、そこから対象のスタックを選択して「削除」をクリックしましょう!
しばらくピロピロした後、消えます。

Cloud9の削除。
Cloud9のコンソール入り、今回作った環境を選択して「Delete」をクリックしましょう!

以上です👻
お疲れさまです!