我是AWS SAM的新手。我已经使用AWS web控制台实现了一个API网关,并在API方法请求中指定了主体验证,我希望使用SAM模板实现同样的功能。我对如何在API网关SAM模板中指定方法请求的搜索与此无关。需要帮忙吗?
如果您希望配置“授权”,这里是SAM模板。
MyApi:
Type: AWS::Serverless::Api
Properties:
StageName: Prod
Auth:
DefaultAuthorizer: AWS_IAM
MyFunction:
Type: AWS::Serverless::Function
Properties:
FunctionName: MyFunction
...
Events:
Post:
Type: Api
Properties:
Path: /compute
Method: POST
RestApiId: !Ref MyApi
Auth:
Authorizer: AWS_IAM
您必须在AWS::Serverless::Api
定义中定义授权者,并在函数中使用它。
参考资料:
https://github.com/awslabs/serverless-application-model/blob/master/examples/2016-10-31/api_aws_iam_auth/template.yaml
https://github.com/awslabs/serverless-application-model/blob/master/examples/2016-10-31/api_cognito_auth/template.yaml
在API网关上添加验证的完整指南。
下面是来自SAMtemplate.yaml的代码片段,用于在示例API上添加正文验证。在这里,在API的 /ping路径上定义了一个平输入API模型。模型包含一个必需参数和一个可选参数。如果没有所需的参数,调用API将失败。
AuthApiGateway:
Type: AWS::Serverless::Api
Properties:
StageName: Prod
DefinitionBody:
swagger: '2.0'
info:
version: '1.0'
title: 'AwsRestServiceTemplate'
paths:
/ping:
x-amazon-apigateway-any-method:
responses: {}
post:
x-amazon-apigateway-request-validator: 'Validate body' # To specify that the Http Post body needs to be validated
parameters:
- in: 'body'
name: 'PingInput'
required: true
schema:
$ref: '#/definitions/PingInput'
x-amazon-apigateway-integration:
httpMethod: post
type: aws_proxy
uri:
Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PingFunction.Arn}/invocations
x-amazon-apigateway-request-validators:
Validate body:
validateRequestParameters: true
validateRequestBody: true
definitions:
PingInput:
type: 'object'
required:
- 'requiredKey'
properties:
requiredKey:
type: 'string'
optionalKey:
type: 'string'
在我的理解中,Spring Cloud Gateway必须实现一个HTTP客户端来发出反向代理请求。Spring框架提供了WebClient。我不知道Spring云网关是否真的在内部使用它。
我正在开发一个SAM应用程序,它有一个lambda函数,API网关是事件源。APIendpoint是一种POST方法,要求在请求体中有一组参数。API网关通过使用AWS控制台指定请求模型,为我们提供了验证请求体的能力。 请参阅以下AWS控制台选项的屏幕截图: 我需要通过SAM模板设置类似的选项,能够将模型与请求主体链接,但无法设置请求验证程序选项,也无法找到任何文档或示例。 下面是我的SAM模板
在AWS文档之后,我尝试使用以下http请求从api网关导出api定义。知道它为什么不起作用吗?
✔加200积分响应期权法 ✔将Access-Control-Allog-Headers,Access-Control-Allog-Methods,Access-Control-Allog-Origin方法响应头添加到OPTIONS ✔将Access-Control-Allow-Headers,Access-Control-Allow-Methods,Access-Control-Allow-Ori
我在使用Axis2-1.6.2制作客户机时遇到了问题,然后我总结了这个问题。 当我尝试将此客户端与下一段代码一起使用时: 我收到下一个错误: 线程“main”org.apache.axis2.AxisFault中的异常:请求中没有指定方法。在org.apache.axis2.util.utils.GetInboundFaultFromMessageContext(utils.java:531)在o