我的默认应用程序是不是必须部署到 appspot.com?

Posted

技术标签:

【中文标题】我的默认应用程序是不是必须部署到 appspot.com?【英文标题】:Does my default app have to be deployed to appspot.com?我的默认应用程序是否必须部署到 appspot.com? 【发布时间】:2017-07-12 20:58:47 【问题描述】:

我问了一个关于默认应用的问题,因为它与应用引擎上的微服务相关,得到了great response here,但我还有另一个相关问题。

我的默认应用是否必须可以通过 appspot.com 访问?当我运行它放置它的部署命令时,但我宁愿让它不能像那样访问。我真的只是想要一个满足默认应用要求的半空(如 hello world 大小)应用。

Google 似乎正在将多应用/微服务硬塞到一个最初设置为仅提供由其他模块支持的面向 Web 的应用的环境中。它看起来非常不优雅和hacky。

【问题讨论】:

你应该小心使用app vs service(或module),很容易在GAE相关的帖子中造成混淆。从其他问题的上下文来看,我知道你的意思是service,而不是app :) 【参考方案1】:

您可以根据使用的 URL 自定义您的应用以不同的方式执行。

例如,您可以使用domain specific routes with webapp2,或者您可以通过检查self.request.url 的值并相应地响应来检查处理程序中的域。

例如,您可以让 myapp.appspot.com 返回 404,但让 www.mydomain.com 向用户提供内容。

【讨论】:

【参考方案2】:

这取决于您所说的“可访问”。

是的,应用程序将在appspot.com 上存在,从某种意义上说,根据Routing via URL 规则,请求可以到达应用程序内某些服务版本的某个实例,最通用的规则是:

向指定的服务、版本和实例发送请求:

https://instance-dot-version-dot-service-dot-app-id.appspot.com
http://instance.version.service.my-custom-domain.com

另外,来自Default service:

默认服务是通过显式指定服务名称来定义的 “默认”或不包括服务的名称参数 配置文件。未指定服务或无效服务的请求 被路由到默认服务。您可以指定默认版本 在适当的情况下,在Google Cloud Platform Console versions tab 中获取服务。

但您的应用代码对此类请求的响应方式完全取决于您。例如,没有什么可以阻止您的默认服务处理程序简单地返回 404 或您的“Hello world”页面,例如,如果您不希望它做任何其他事情。好像它不会在那里一样。但它仍然充当默认服务的角色。

【讨论】:

以上是关于我的默认应用程序是不是必须部署到 appspot.com?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Google App Engine 中设置我的默认版本

Google应用引擎TCP连接失败

使用 python 部署 Google 应用引擎失败

AWS Elastic Beanstalk:我是不是必须使用完整的“/node_modules”和“/bower_components”部署我的应用程序并编译 sass 和其他依赖项?

将 appid.appspot.com 重定向到应用引擎上托管的 Django App 的自定义域的最佳方法

如何将新服务部署到 Google App Engine 中的现有应用程序?