我刚尝试Serverless的版本.1.0.0-beta.1.1,看起来很有希望。
我希望使用AWS_IAM
验证请求。
我可以使用AWS Gateway API控制台,并将每个方法请求从none
更改为AWS_IAM
。手工,我可以使它工作。
但是,我宁愿更改无服务器服务中的serverless.yml
文件。
我尝试添加authorizationType
字段,如下所示:
- http:
path: greet
method: get
authorizationType: AWS_IAM
但它没有更新API网关的授权设置,仍然接受未经授权的请求。
是否可以将serverless.yml
文件设置为使用AWS_IAM
?
答案 0 :(得分:2)
在无服务器1.0.0-RC2中,您可以按如下方式设置authorizationType
functions:
hello:
handler: handler.hello
events:
- http:
path: hello
method: get
resources:
Resources:
ApiGatewayMethodHelloGet:
Properties:
AuthorizationType: AWS_IAM
答案 1 :(得分:1)
查看以下链接,了解我在验证帮助中找到的最接近的链接:
我没有使用过AWS_IAM,但这里是我如何定义CUSTOM身份验证,它应该指示整体格式。
functions:
hello:
handler: handler.hello
events:
- http:
path: hello
method: get
authorizer:
arn: arn:aws:lambda:us-east-1:xxxxxx:function:jwtAuthorize
resultTtlInSeconds: 0
identitySource: method.request.header.Authorization
identityValidationExpression: JWT [^\.]+\.[^\.]+\.[^\.]+
因此,我认为您需要添加authorizer
部分。我无法对此进行测试,但请告诉我这是否有效:
functions:
hello:
handler: handler.hello
events:
- http:
path: hello
method: get
authorizer:
authorizationType: AWS_IAM