リソース | 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つのみ |
{'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}
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
https://ijin.github.io/blog/2016/04/28/terraforming-api-gatewways/
https://qiita.com/CkReal/items/be0923f6352b0109e225
https://github.com/CkReal/apigw4dynamodb
aws elb describe-load-balancers