web-dev-qa-db-ja.com

SAMアプリケーションを使用してボディマッピングテンプレートを定義する方法

AWSとSAMは初めてです。 AWSサービスを使用してダミーのバックエンドを開発しています。そのために、私はSAMアプリケーションを使用してコードをローカルに記述しています。その中でAPIsと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の他のユーティリティの使用方法、モデルの定義などを知りたいのですが、これらについて教えてください。

ありがとうございました...

7
Sai

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のサンプル例は次のとおりです。

5
Brian Winant