【AWS】Amazon API Gateway ~ 入門編 ~

■ はじめに

https://amazon.qwiklabs.com/

で「Introduction to Amazon API Gateway(日本語版)」って
いうハンズオンラボがあったので、少し勉強してみる

個人的な感想

* ハンズオンラボにそって行えば、大体な雰囲気は理解できる
* 特に、サービス始めでユーザ数が少なく、サーバ建てるコストを考えるなら
 まずは、このサービスを使うのはいいと思った。
* 実際に使う場合は、以下の公式サイトで補えばよさそう

https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/welcome.html

Amazon API Gateway

* マネージドサービス

何ができる?

* AWS Lambda などと組み合わせることにより、
 簡単に外部向けのWebサービスを構築できる

サポートAPI

a) ステートフル (WebSocket) 
b) ステートレス (HTTP と REST)

不正アクセスにはどう対応する?

* セキュリティ設定の項目があり、以下が選択できる
 + IAM
 + オープン
 + API Key

※
今回のハンズオンラボでは特にセキュリティ設定しない
「オープン」を選択。
(実際に使うには、この辺も深堀りしないとダメ)

テスト・デバッグについて

* 通常のLambda同様(デバッグは、CloudWatch で行えばいい)

■ サンプル

使用しているLambda関数の重要な部分を抽出
 ⇒ 外部公開用に加工なんか特にしていない普通のLambda関数。

index.js

var json = {
  "service": "lambda",
  "reference": "https://aws.amazon.com/lambda/faqs/",
  "questions": [{
    "q": "質問内容1",
    "a": "回答1"
  },
  // 以下、質問・回答リストなので省略
  ]
}

exports.handler = function(event, context) {
    var rand = Math.floor(Math.random() * json.questions.length);
    console.log("Quote selected: ", rand);

    var response = {
        body: JSON.stringify(json.questions[rand])
    };
    console.log(response);
    context.succeed(response);
};

関連記事

Lambda ~ 基礎知識編 ~ https://dk521123.hatenablog.com/entry/2017/04/05/235618
Amazon CloudFront ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2017/12/18/233136