API Gateway の背後にいくつかの Lambda を持つ SAM アプリを定義しました」
MyApi:
Type: AWS::Serverless::Api
Properties:
StageName: !Ref EnvType
Auth:
DefaultAuthorizer: LambdaTokenAuthorizer
Authorizers:
LambdaTokenAuthorizer:
FunctionArn: !GetAtt AuthorizerLambda.Arn
MyFunction:
Type: 'AWS::Serverless::Function'
...
Events:
MyEvent:
Type: Api
Properties:
RestApiId: !Ref MyApi
Path: "/MyResource/{proxy+}"
Method: post
明らかに、API Gateway は次のようなプロキシされたリソースについてあまり知りません。
- プロキシされたパス
- リクエストモデル
- 応答モデル
API Gateway ステージから生成されたドキュメントには、次の内容が反映されています。
swagger: "2.0"
info:
version: "1.0"
title: "xxx-dev"
host: "xxx.execute-api.us-west-2.amazonaws.com"
basePath: "/dev"
schemes:
- "https"
paths:
/MyResource/{proxy+}:
post:
responses: {}
security:
- LambdaTokenAuthorizer: []
securityDefinitions:
LambdaTokenAuthorizer:
type: "apiKey"
name: "Authorization"
in: "header"
x-amazon-apigateway-authtype: "custom"
不足しているビット (プロキシ パス、応答モデル、要求モデル) を API Gateway に供給する方法はありますか? 最終的には、クライアント コードを生成したり、いくつかの統合テストを許可したりするのに十分なドキュメントが必要です。ここで同様の質問 -> Aws ラムダ プロキシ Swagger テンプレートの統合