Description
This is a (Bug Report)
Description
- What went wrong?
I have two services (e.g. Service-A and Service-B) that shares the same API Gateway. Service-A has some public/private endpoints and defines an API GW authorizer. This works fine.
Service-B has some private endpoints that need to use the authorizer defined in Service-A. I tried to reference the authorizer by ARN with no success. I think the problem is that serverless tries to create another authorizer in the same API GW, and throws error because an authorizer with the same name already exists. The thing is that I dont want to create another API GW authorizer, I just want to reference an authorizer that belongs to the API GW.
Output relevant to Service-A
{
"AuthorizerApiGatewayAuthorizer":{
"Type":"AWS::ApiGateway::Authorizer",
"Properties":{
"AuthorizerResultTtlInSeconds":0,
"IdentitySource":"method.request.header.Authorization",
"Name":"authorizer",
"RestApiId":"XXXXXXXX",
"AuthorizerUri":{
"Fn::Join":[
"",
[
"arn:aws:apigateway:",
{
"Ref":"AWS::Region"
},
":lambda:path/2015-03-31/functions/",
{
"Fn::GetAtt":[
"AuthorizerLambdaFunction",
"Arn"
]
},
"/invocations"
]
]
},
"Type":"TOKEN"
}
}
}
Output relevant to Service-B
{
"AuthorizerApiGatewayAuthorizer":{
"Type":"AWS::ApiGateway::Authorizer",
"Properties":{
"IdentitySource":"method.request.header.Authorization",
"Name":"authorizer",
"RestApiId":"XXXXXXXX",
"AuthorizerUri":{
"Fn::Join":[
"",
[
"arn:aws:apigateway:",
{
"Ref":"AWS::Region"
},
":lambda:path/2015-03-31/functions/",
"MY_LAMBDA_FUNCTION_AUTHORIZER_ARN",
"/invocations"
]
]
},
"Type":"TOKEN"
}
}
}
- What did you expect should have happened?
Having Service-A and Service-B within the same API GW, I expect to be able to reference the authorizer already defined by Service-A. - What was the config you used?
I have tried this alternatives in Service-B
functions:
some-function:
handler: someHandler.someFunction
events:
- http:
path: some/path
method: get
authorizer:
arn: LAMBDA_ARN
name: service-a-authorizer-name
functions:
some-function:
handler: someHandler.someFunction
events:
- http:
path: some/path
method: get
authorizer: LAMBDA_ARN
- What stacktrace or error message from your provider did you see?
An error occurred: AuthorizerApiGatewayAuthorizer - Authorizer name must be unique. Authorizer authorizer already exists in this RestApi..
Additional Data
- Serverless Framework Version you're using: 1.26
- Operating System: Linux (kernel 4.13.0-32-generic)
- Stack Trace:
- Provider Error messages:
Metadata
Metadata
Assignees
Labels
No labels