Upload
aoike-toshiaki
View
594
Download
2
Embed Size (px)
Citation preview
自己紹介青池 利昭
▷ 兵庫県尼崎市出身
▷ cloudpack 大阪で MSP開発 やってます
▷ お酒が大好きです!!
▷ facebook: aoike.toshiaki
facebookでC3(Can Convenience Club) やってます!
API Gatewayの特徴
❏ API の作成、配布等をマネージドに管理
❏ APIのステージ、バージョン管理
❏ いろいろと出来るセキュリティ機能
❏ 既存のサービスのフロントエンドにもなる
❏ Lambdaを使えばEC2レスなサービスの作成が可能
etc…
APIの用意
❏ New API(1から自分で作成)
❏ Clone from existing API(既存のAPIからクローンを作成)
❏ Import from Swagger(Swaggerの定義から生成)
❏ Example API(提供されているサンプルを使って作成)
etc…
RESTful ?❏ RESTの定義に従った REpresentational State Transfer
❏ リソースベースでURIをもってアクセス
❏ HTTPメソッドを利用したCRUD
etc…
Swaggerのメリット
❏ 仕様書のフォーマットの統一
❏ テキストベースで編集も可能
❏ コードと一緒にバージョン管理が可能
❏ 複製が作りやすい
❏ Swagger UIを利用してAPIの動作確認が出来る
etc…
API Gatewayのハマリどころ
❏ APIをクローンしたまま使うとLambdaのアクセス権限が付与されておらずぱっと見
問題無い設定に見えるが動かない
❏ Lambda呼び出しの際に「Invoke with caller credentials」を指定するとリクエスト時
のIAM指定してLambdaを実行出来るが、このIAMにLambdaの実行権限がないと
Lambdaが発火しない
❏ Lambda(Python2.7)をバックエンドにするとRequestデータがJSON形式でないと
発火しない
❏ API Gateway UIの使いにくさ(設定変更時に レ を押さないと反映されない)
etc…
etc…
参考
❏ IP制限できないの?
→ CloudFront(WAF)+ APIキー認証で絞りましょう
→ マッピングテンプレートを使ってSourceIpを取得しコードでブロック
❏ HTTPでアクセスしたい
→ CloudFrontでHTTPからHTTPSにリダイレクトしましょう
❏ 後ろがLambda(Python 2.7)の場合にJson形式以外の値を処理したい
→ マッピングテンプレートを使ってJson形式に変更しちゃいましょう
AWS Black Belt Tech シリーズ 2015 - Amazon API Gateway
❏ http://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-tech-
2015-amazon-api-gateway