Reputation: 373
In serverless.yml, under custom, I have the following code (with dummy values here):
customDomain:
domainName: myhost.mydomain.com
basePath: ''
stage: ${self:provider:stage}
createRouteS3Record: true
endpointType: 'edge'
securityPolicy: tls_1_2
certificateArn: 'arn:aws:acm:.................'
hostZoneId: 'P4OCK4S1PSTZK'
when I execute serverless deploy, everything goes smooth. the Api get generated properly for my function.
(Under functions i have events: http
)
However after the API getting generated lambda getting deployed, I get the following error:
Error: Error: Unable to setup base domain mappings for myhost.mydomain.com
i do not get much info other than https://forum.serverless.com/t/error-unable-to-setup-base-domain-mappings/11395 Do not know how to include api versions in serverless if that is the solution.
Upvotes: 6
Views: 6539
Reputation: 876
I was getting that error message because I (somehow) got the same api duplicated. so I went to
API Gateway -> Custom domain name -> {name_of_my_domain} -> API Mappings -> Configure API Mappings
Then I changed the API to use the correct API (holding the routes I was having in my app, and I could differentiate between both using their ID). Redeploying with Serverless succeeded
Upvotes: 0
Reputation: 1158
Had the same issue. In my serverless.yml file in events inside functions I was having 'httpApi'. Changing it to 'http' fixed my issue
functions:
getWebHooks:
handler: src/path
events:
- httpApi:
path: /
to
functions:
getWebHooks:
handler: src/path
events:
- http:
path: /
Upvotes: 0
Reputation: 3256
I got this error after having a domain mapping, then removing it, then trying to add it again: it looks like Serverless doesn't completely remove a domain mapping.
I had to go to Custom domain names -> my domain -> API mappings -> Configure API mappings and manually delete the domain mapping before redeploying.
Upvotes: 4
Reputation: 373
Well small things can cause big problems and are very hard to figure out at times.
I found that stage: ${self:provider:stage}
was wrong, it should have been stage: ${self:provider.stage}
. The colon after provider was the culprit.
Upvotes: 4