1日1%成長する ~AWS API gateway~

AWSの学習メモ

AWS API gateway

REST API
    リソースとメソッド
        「/」を最上位としたツリー構造にて「リソース」を定義
        各リソースに受け付けるHTTPメソッドを指定(パスパラメータの利用も可能)

    リソース:/
        リソース:/pets
            GET
            リソース:/{petId}
                GET、PUT、POST、HEAD
        リソース:/echo
            ANY

WebSocket API

    Websocket URL:wss://
    Callback URL:https://

    事前定義:$connect、$disconnect、$default

    メッセージデータ
    {
        "action": "join"
    }
        -> $request.body.action -> action:joinへ

その他の主要機能
    APIの認証認可
        AWS署名v4
            AWS SDKAPIクライアントSDkを利用
                -> 認証したプリンシパルのIAMポリシー上、
                  このAPI呼び出しを行う権限が認可
        Lambdaオーソライザー
            Bearerトークン or パラメータ付リクエスト
                -> Lambda認証関数がポリシー&プリンシパルIDを返却
        Cognitoオーソライザー
            ユーザプールで認証を行う取得したトークンをHTTPヘッダーに指定
                -> トークン検証

    統合タイプ
        Lambda関数
        HTTP
            public ipがあればAWSもしくはオンプレでもOK
        Mock
            固定の値を応答
        AWSサービス
        VPCリンク
            NLBを参照する「VPCリンク」を登録しそれを経由してVPC内リソースへアクセス

リクエスト/レスポンス変換
    - VTL(Velocity Template Language)とJSONPathや予約変数($input等)を利用し記述
    - リクエストやレスポンスのデータを別の形式に変換することが可能

APIキーと使用量プラン
    APIのメータリングとスロットリングを実現
        しきい値を超えるとHTTPステータスコード429(too many request)
        APIキーを「認証」目的にりようしないこと
            -> 計測のための識別用途のためのものだから