AWSとSAMは初めてです。 AWSサービスを使用してダミーのバックエンドを開発しています。そのために、私はSAMアプリケーションを使用してコードをローカルに記述しています。その中でAPI
sとLambda
の構造を次のように定義しました。
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: >
sam-app
Sample SAM Template for sam-app
Globals:
Function:
Timeout: 300
Api:
Cors:
AllowHeaders: "'content-type, authorization'"
AllowOrigin: "'*'"
Resources:
HelloWorldFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: hello_world
Handler: app.lambda_handler
Runtime: nodejs8.10
Environment:
Variables:
PARAM1: VALUE
Events:
HelloWorld:
Type: Api
Properties:
Path: /hello2
Method: get
Outputs:
HelloWorldFunction:
Description: "Hello World Lambda Function ARN"
Value: !GetAtt HelloWorldFunction.Arn
これにより、小さなダミーアプリケーションが作成されます。しかし、Body Mapping
のようなAWS
の他のユーティリティの使用方法、モデルの定義などを知りたいのですが、これらについて教えてください。
ありがとうございました...
API Gateway Swagger定義を使用して、モデルなどを定義できます。これは、SAMテンプレートに埋め込むか、S3でホストして、SAMテンプレートから参照できます。
基本的な例は次のようになります。
RestApi:
Type: AWS::Serverless::Api
Properties:
DefinitionBody:
<add Swagger definition here>
SAM APIゲートウェイの構成オプションについては、 https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi を参照してください。
SAM + API Gateway + Swaggerのサンプル例は次のとおりです。