用語

リソースWEBでいうパス
メソッドANYにすると全部のメソッド、個別メソッド単位で定義も可能
メソッドリクエストリクエストのパスやクエリーパラメータ
統合リクエストリクエストの接続先を設定する。Mockも設定可能
リクエストマッピング指定したContenteTypeの時にパラメータの入れ替えなどができる仕組み。いらない
ステージdev/prodなどの環境。URLのパスについてしまうのが残念だが、Custom Domain使うとなくてもいいらしい。ステージ変数を定義することもできるのでうまくやれば開発と本番で同じLambdaのバージョン違いを呼ぶなんてことも可能
エッヂロケーションエッジ(全世界)、リージョン、VPCが選択可能

トラブルシューティング

{"message":"Missing Authentication Token"}存在しないパスにアクセスしたときに出る
パスが反映されないリソース追加したら、デプロイ必須
Malformed Lambda proxy responseレスポンスが正しくない。return { status: 200 ,body: 'hogehoge'}のようにJSONでキーは2つのみ

HTTP API

https://blog.serverworks.co.jp/api-gateway-http-apis-now-supports-lambda-and-iam-authorization-options

{'version': '2.0', 'routeKey': '$default', 'rawPath': '/path/to/rutake', 'rawQueryString': 'foo=var&dryrun=true', 'headers': {'accept': '*/*', 'content-length': '37', 'content-type': 'application/json', 'host': 'xxxxx.execute-api.ap-northeast-1.amazonaws.com', 'user-agent': 'curl/7.68.0', 'x-amzn-trace-id': 'Root=1-60801384-26c43f936e8a22b8720a4e3d', 'x-forwarded-for': '106.154.129.243', 'x-forwarded-port': '443', 'x-forwarded-proto': 'https'}, 'queryStringParameters': {'dryrun': 'true', 'foo': 'var'}, 'requestContext': {'accountId': 'xxxxxx', 'apiId': 'bqksiliurc', 'domainName': 'bqksiliurc.execute-api.ap-northeast-1.amazonaws.com', 'domainPrefix': 'bqksiliurc', 'http': {'method': 'POST', 'path': '/path/to/rutake', 'protocol': 'HTTP/1.1', 'sourceIp': '106.154.129.243', 'userAgent': 'curl/7.68.0'}, 'requestId': 'eIf8whMqNjMEPYA=', 'routeKey': '$default', 'stage': '$default', 'time': '21/Apr/2021:11:59:00 +0000', 'timeEpoch': 1619006340701}, 'body': '{"Name":"sensuikan1973", "Age":"100"}', 'isBase64Encoded': False}

アクセス元IP制限

https://aws.amazon.com/jp/premiumsupport/knowledge-center/api-gateway-resource-policy-access/

{
   "Version": "2012-10-17",
   "Statement": [
       {
           "Effect": "Allow",
           "Principal": "*",
           "Action": "execute-api:Invoke",
           "Resource": "arn:aws:execute-api:ap-northeast-1:699567825067:ugqfikmepg/*/*/*"
       },
       {
           "Effect": "Deny",
           "Principal": "*",
           "Action": "execute-api:Invoke",
           "Resource": "arn:aws:execute-api:ap-northeast-1:699567825067:ugqfikmepg/*/*/*",
           "Condition": {
               "NotIpAddress": {
                   "aws:SourceIp": [
                       "許可IP",
                       "許可IP",
                       "許可IP"
                   ]
               }
           }
       }
   ]
}

ログの有効化

https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/set-up-logging.html

AWS リソースとの接続

https://ijin.github.io/blog/2016/04/28/terraforming-api-gatewways/

https://qiita.com/CkReal/items/be0923f6352b0109e225

https://github.com/CkReal/apigw4dynamodb

ロードバランサー

aws cli

aws elb describe-load-balancers


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-10-14 (金) 13:16:52