I have an application deployed to Google App Engine (GAE) using Flask in a Python 3 Standard Environment, which is working fine. Now, I want to have a subdomain, but I don't want to create a new service for that, as it increases (front-end instance) costs. In my local host I have been able to do it by using Flask Blueprint subdomains, however in my production application, that is not working.
Consider that my application has the following custom DNS configured: example.com, and admin.example.com. This is what I have defined in my application:
app = Flask(__name__)
app.register_blueprint(admin, subdomain='admin')
if __name__ == '__main__':
app.config['SERVER_NAME'] = 'example.com'
app.run()
My dispatch.yaml looks like this:
dispatch:
- url: "*.example.com/*"
service: default
When I execute locally, I get the expected behavior:
- Accessing
example.compoints me toapphome page - Accessing
admin.example.compoints me toadminhome page
However, in production (GAE) both URLs, point to the app home page.
I've not been able to find much information on this topic. Any hints/suggestions are much appreciated.
Thanks in advance!
CodePudding user response:
I finally found the solution. It turns out that the order matters. This is how I fixed it:
app = Flask(__name__)
app.config['SERVER_NAME'] = 'example.com'
app.register_blueprint(admin, subdomain='admin')
if __name__ == '__main__':
app.run()
