use*_*652 5 aws-api-gateway aws-sam-cli serverless
我想使用API网关的标准API密钥功能.如果我使用标准的cloudformation,可以通过将方法的属性ApiKeyRequired设置为true来实现.我怎样才能用SAM做到这一点?
我尝试使用swagger,但似乎不起作用:
swagger: "2.0"
info:
title: !Ref AWS::StackName
paths:
"/machines/{resourceid}":
get:
parameters:
- name: resourceid
in: path
type: string
required: true
x-amazon-apigateway-integration:
httpMethod: POST
type: aws_proxy
uri: !Sub arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyLambda.Arn}/invocations
responses: {}
security:
- authorizer: []
securityDefinitions:
authorizer:
type: apiKey
name: Authorization
in: header
Run Code Online (Sandbox Code Playgroud)
有什么建议?
以下 swagger 定义有效:
DefinitionBody:
swagger: "2.0"
info:
title: !Ref AWS::StackName
x-amazon-apigateway-api-key-source : "HEADER"
paths:
"/machines/{resourceId}":
get:
parameters:
- name: resourceId
in: path
type: string
required: true
x-amazon-apigateway-integration:
httpMethod: POST
type: aws_proxy
uri: !Sub arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MessagingServiceTestHandler.Arn}/invocations
responses: {}
security:
- api_key: []
securityDefinitions:
api_key:
type: "apiKey"
name: "x-api-key"
in: "header"
Run Code Online (Sandbox Code Playgroud)
api key header 的名称必须是x-api-key而不是标准 Authorization header。
| 归档时间: |
|
| 查看次数: |
1213 次 |
| 最近记录: |