/ #AWS #Lambda 

Cloud9でAPI Gateway+Lambdaを爆速で作る

もくじ

今回作るもの

はい👻

AWS Cloud9を使って API Gateway + Lambda を爆速で開発します。

これは簡単なWebAPIを作ってテストしたいとかそういった場合にとても便利ですので、手順を知っていて損はありません!

前提

  1. 作業できる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」をクリックしましょう!

以上です👻

お疲れさまです!

Author

Sisii

インフラが好きなエンジニアぶってるなにか