将 Datastore Admin 映射到另一个 URL?

Map Datastore Admin to a different URL?

编辑: 进一步检查后,我发现 Datastore Admin 的 URL 已经是 https://ah-builtin-python-bundle-dot-[project-id].appspot.com/_ah/datastore_admin?app_id=[project-id]。它可能在实施 "default" 标记之前启用,因此它捕获了子域中的所有流量。 因此,无需重新映射 URL。

有这个现有项目,我已被添加到该项目中,它的 [project-id]。appspot.com 已被库存数据存储管理页面占用。

我需要再托管几个 appspot URLs,其中一些用作 PubSub 端点,所以我发现 解释说我需要做的就是在其中添加一个服务标签app.yaml.

但是,在部署时,我收到此错误

ERROR: (gcloud.app.deploy) INVALID_ARGUMENT: The first service (module) you upload to a new application must be the 'default' service (module). Please upload a version of the 'default' service (module) before uploading a version for the 'upload-watcher' service (module). See the documentation for more information. Python: (https://developers.google.com/appengine/docs/python/modules/#Python_Uploading%%20modules) Java: (https://developers.google.com/appengine/docs/java/modules/#Java_Uploading%%20modules)

其中 'upload-watcher' 是我分配给此应用引擎应用程序的服务名称。

遇到了类似的问题,但他寻求了不同的解决方法,答案只是概念性的。

从机制上讲,这是添加到所选 app.yaml 中的正确代码吗? :

service: default 

此外,在我看来,不应将 Datastore Admin 设置为默认服务,并且应该或多或少地隐藏在 public 视图之外。因此,理想情况下,我想将数据存储管理员重新映射到辅助服务 URL,例如

datastore-admin-dot-[project-id].appspot.com

如何做到这一点?

您提到的第一个线程中讨论的解决方案意味着新服务的单独 .yaml 配置文件,而不仅仅是 a service tag into the app.yaml file(现有服务)。

我个人建议将服务保存在 GAE 应用程序目录中的单独并排子目录中,请参阅

中的实际示例

您遇到的错误与您提到的第二个线程类似:您在尝试部署 upload-watcher 服务时没有已经部署的 default 服务。

不要过度考虑数据存储管理 "mapping" 部分 - 您可能会被第二个线程误导 - 数据存储管理不是 GAE service/module,它是应用程序级别设施涵盖共享应用程序数据存储的所有应用程序服务。首先获得您的服务 运行,如果您发现这方面的问题,请提出一个单独的问题,现在只会增加混乱。

更新:

是的,service: default 对于默认服务是正确的。或者你可以根本没有 service 配置 - 同样的效果。

取决于使用的部署命令(更具体地说 --version optional argument) a new service version would be created or an existing version would be overwritten. See also

但是,正如您所观察到的,服务于数据存储管理设施是默认完成的,而不是通过配置专门启用的,因此无论是否覆盖现有版本,它都会工作。