【问题标题】:Using SAM application how to define body mapping templates使用 SAM 应用程序如何定义身体映射模板
【发布时间】:2018-12-13 12:00:25
【问题描述】:

我是 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

这会创建一个小的虚拟应用程序。但是,我想知道如何使用AWS 的其他实用程序,例如Body Mapping,定义模型等。请帮助我了解这些。

谢谢...

【问题讨论】:

    标签: amazon-web-services aws-lambda aws-api-gateway aws-sam-cli aws-sam


    【解决方案1】:

    您可以使用 API Gateway Swagger 定义来定义模型等。这可以嵌入到 SAM 模板中或托管在 S3 中并由 SAM 模板引用

    基本示例如下:

    RestApi:
        Type: AWS::Serverless::Api
        Properties:
            DefinitionBody:       
                <add Swagger definition here>
    

    请参阅https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi 了解 SAM API 网关配置选项。

    一些示例 SAM + API Gateway + Swagger 示例位于:

    【讨论】:

    • 映射模板可以在本地应用吗?
    • 我在本地尝试过,但对我不起作用。这违背了 AWS SAM 的全部目的。如果有人有工作示例,请发布。
    • @CameronHudson。见docs.aws.amazon.com/serverless-application-model/latest/…。请注意,如果您需要使用内部 fn.s,请使用包含转换的 DefinitionBody 属性将 OpenApi 定义导入模板。
    • @AfzalS.H.你是说映射模板可以在 sam 中工作吗?
    猜你喜欢
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 2018-12-04
    • 2019-10-30
    • 2018-05-18
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多