gpt4 book ai didi

amazon-web-services - AWS SAM - 通过 SAM 模板在 API 网关方法中强制执行请求验证

转载 作者:行者123 更新时间:2023-12-03 17:26:38 28 4
gpt4 key购买 nike

我正在开发具有 lambda 函数的 SAM 应用程序,API 网关作为事件源。 API Endpoint 是一种 POST 方法,需要在请求正文中设置一组参数。 API Gateway 通过使用 AWS 控制台指定请求模型,为我们提供了验证请求正文的功能。

请参阅以下 AWS 控制台选项的屏幕截图:

enter image description here

enter image description here

我需要通过 SAM 模板和 设置类似的选项能够链接模型 与请求正文但 无法设置请求验证器选项 并且也无法找到任何文档或示例。

下面是我的 SAM 模板

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31

Description: SAM Template

Parameters:
Stage:
Type: String
Default: dev

Resources:
MyApiGateway:
Type: AWS::Serverless::Api
Properties:
Name: My AWS Serverless API
StageName: !Ref Stage
Models:
ExchangeRate:
$schema: "http://json-schema.org/draft-04/schema#"
properties:
base:
type: string
target:
type: string
required:
- base
- target
title: User
type: object

ExchangeRateFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: functions/exchange-rate/
Handler: index.handler
Runtime: nodejs12.x
Description: Function to Get Currency Exchange Rate
MemorySize: 128
Timeout: 3
Policies:
- AWSLambdaBasicExecutionRole
Events:
HelloWorld:
Type: Api
Properties:
RestApiId: !Ref MyApiGateway
Path: /exchange
Method: POST
RequestModel:
Model: ExchangeRate
Required: true

Outputs:
ExchangeRateFunction:
Description: "Exchange Rate Lambda Function ARN"
Value: !GetAtt ExchangeRateFunction.Arn
MyApiGateway:
Description: "My Seed API EndPoint"
Value: !Sub "https://${MyApiGateway}.execute-api.${AWS::Region}.amazonaws.com/${Stage}"


引用文件
  • https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html
  • https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html

  • 请让我知道如何使用 SAM 模板将“请求验证器”设置为“验证正文”选项。将感谢帮助

    最佳答案

    我遇到了同样的问题,显然 SAM 暂时缺少此功能,正如您从上一个问题中看到的:

    How to add a request validator in a AWS SAM template for AWS::Serverless::Api?

    另外,在 GitHub 中已经打开了一些问题,最后一个是:

    https://github.com/awslabs/serverless-application-model/issues/1403

    我已经破解了一个解决方案,其中包含 SAM 规范中的两个附加属性来解决这个问题,但我不希望它实际上成为 PR。如果您想使用我的 fork 存储库从开发分支进行部署,我可以提供进一步的说明。

    关于amazon-web-services - AWS SAM - 通过 SAM 模板在 API 网关方法中强制执行请求验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60109523/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com