KAROUSHI -Japanese Engineer Blog-

コボルドからドラゴンへ -Kobold to Dragon-

システムエンジニアのブログです。サイト名は「雑魚キャラからボスキャラへレベルアップしたい!」という思いを込めて命名しました。自分はやっとリザードマンになったくらいです。

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のライブラリがあるようなので、次回はそれを使ってもう少し高度で実践的なことをやろうと思います。