У меня есть шаблон AWS SAM / CloudFormation, написанный на JSON, который содержит:
- Определение API шлюза API с конечными точками, определенными с использованием формата OpenAPI
DefinitionBody
- Определение API Gateway Authorizer, определенное с использованием формата SAM / CF
Я пытаюсь найти способ ссылки на Authorizer (2) для каждой из конечных точек (1), которую я хочуиспользовать авторизатор для.
Вот код:
Определение авторизатора:
"LambdaAuthorizer":{
"Type": "AWS::ApiGateway::Authorizer",
"Properties":{
"IdentitySource":"method.request.header.Authorization",
"Type":"TOKEN",
"RestApiId":{
"Ref": "ApiName"
},
"AuthorizerUri": {
"Fn::Join" : ["", ["arn:aws:apigateway:", {"Ref": "AWS::Region"}, ":lambda:path/2015-03-31/functions/", {"Fn::GetAtt": ["AuthLambda", "Arn"]}, "/invocations"]]
},
"IdentityValidationExpression": "^[a-zA-Z0-9]{3,32}$",
"AuthorizerResultTtlInSeconds": 300,
"AuthorizerCredentials": {
"Fn::GetAtt": ["LambdaAuthorizerRole", "Arn"]
},
"Name":"lambda-authorizer"
}
},
Определение конечной точки
"API": {
"Type": "AWS::Serverless::Api",
"Properties": {
...
"DefinitionBody": {
...
"paths": {
"/endpoint": {
"post": {
"responses": {
"200": {
"description": "200 response"
}
},
"x-amazon-apigateway-integration": {
"uri": {
"Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${AuthLambda.Arn}/invocations"
},
"responses": {
"default": {
"statusCode": "200",
"contentHandling": "CONVERT_TO_TEXT"
}
},
"passthroughBehavior": "when_no_match",
"httpMethod": "POST",
"contentHandling": "CONVERT_TO_TEXT",
"type": "aws_proxy"
},
"security" : [{
"NAME OF OPEN API SECURITY DEFINITION":[] // Can I reference my existing Authorizer?
}]
}
},
}
}
}
}
Как видите, я обнаружил свойство OpenAPI security
, которое в соответствии с документацией AWS используется как ссылка на securityDefinitions
, где может быть определен Authorizer. .
Но у меня уже есть мой Authorizer, определенный в CloudFormation JSON. Не могу ли я сослаться на это вместо