Как включить свойство "ApiKeyRequired" в SAM без явного определения чванства?
В облачной информации, AWS::ApiGateway::Method
имеет логическое свойство ApiKeyRequired
, Как я могу добиться того же в SAM?
Я знаю, что мы можем включить использование явной конфигурации Swagger. что похоже на это
{
"swagger": "2.0",
"info": {
"version": "1.0",
"title": {
"Ref": "AWS::StackName"
}
},
"x-amazon-apigateway-api-key-source": "HEADER",
"paths": {
"/": {
"get": {
"x-amazon-apigateway-integration": {
"httpMethod": "POST",
"type": "aws_proxy",
"uri": {
"Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${GetHelloWorld.Arn}/invocations"
}
},
"responses": {},
"security": [
{
"api_key": []
}
]
}
}
},
"securityDefinitions": {
"api_key": {
"type": "apiKey",
"name": "x-api-key",
"in": "header"
}
}
}
Можно ли это сделать с помощью неявного вызова API в SAM вместо явной передачи AWS::Serverless::Api
? Потому что код swagger подходит для меньших конечных точек и становится сложным после увеличения конечных точек. Есть ли такой флаг, как APIkeyRequired
как у нас в Cloudformation
?
Любая помощь приветствуется
0 ответов
Сейчас же ApiKeyRequired
поддерживается как на AWS::Serverless::Api
а также AWS::Serverless::Function
уровень в SAM.
Вот пример из документации AWS:
Resources:
MyApi:
Type: AWS::Serverless::Api
Properties:
StageName: Prod
Auth:
ApiKeyRequired: true # sets for all methods
MyFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: .
Handler: index.handler
Runtime: nodejs8.10
Events:
ApiKey:
Type: Api
Properties:
RestApiId: !Ref MyApi
Path: /
Method: get
Auth:
ApiKeyRequired: true
Вы также можете узнать об этом из следующих ресурсов:
- Официальная документация AWS здесь.
- Это пошаговое сообщение в блоге Сартака Джайна.