KAROUSHI -Japanese Engineer Blog-

読者です 読者をやめる 読者になる 読者になる

KAROUSHI -Japanese Engineer Blog-

Web、ネットワーク構築関連で仕事している、器用貧乏エンジニア。最近はAWS関連の勉強をしています。

API Gateway, Lambda, S3を使用して、ファイルを取得する処理をノンサーバで実装する~その3~

前回の記事はこちら。

API Gateway, Lambda, S3を使用して、ファイルを取得する処理をノンサーバで実装する~その2~ - KAROUSHI -Japanese Engineer Blog-

API Gatewayの設定

さて3回目は最後にAPI Gatewayの作成と接続テスト実施を行います。

APIGatewayを作成する

lambdaの画面を開いて前回作成した[s3create]を選択します。

f:id:jainders:20160606201721j:plain

タブから[API endpoints][Add API endpoint]を押下します。

f:id:jainders:20160606201724j:plain

 

Add API endpoint画面が開きますので以下のように設定しましょう。
(今回はメソッドはPOSTで設定します)

 

API endpoint type:API Gateway(そのまま)
API name: LambdaMicroservice(そのまま)
Resource name: /s3create(そのまま)
Method: POST
Deployment stage: prod(そのまま)
Security: AWS IAM(そのまま)

[Submit]を押下します。

f:id:jainders:20160606201726j:plain

API endpointが作成され表示されることを確認しましょう。

APIをテストする

確認したらMethodの[POST]を選択してAPI Gatewayの画面へ遷移します。[クライアント]という文字の上にある[テスト(雷マーク)]を選択しましょう。

f:id:jainders:20160606201729j:plain

f:id:jainders:20160606201732j:plain

すると下図のようなテスト画面に遷移するので、リクエスト本文に以下のJSONをコピペして[テスト]をクリックしましょう。

{
  "Records": [
  {
    "s3": {
      "object": {
        "key": "index.html"
      },
      "bucket": {
        "name": "test.test.test.3"
      }
    }
  }
  ]
}

f:id:jainders:20160606201735j:plain

以下のようにレスポンス本文、レスポンスヘッダー、ログが表示されればOKです。

f:id:jainders:20160606201740j:plain

 

これで一通りの流れを終えました。

今回はlambda処理を自作せずにblue printから選んで作成しました。どうでしょうか?APIが簡単にできましたね。URLも生成されているのでEC2などからURL+POSTデータを実行してあげれば、EC2上で動くサービスとの連携も可能です。

pythonの場合はbotoというlambdaのライブラリがあるようなので、次回はそれを使ってもう少し高度で実践的なことをやろうと思います。