Сопоставить администратора хранилища данных с другим URL-адресом? - PullRequest
0 голосов
/ 14 января 2019

РЕДАКТИРОВАТЬ: После дальнейшей проверки я обнаружил, что URL администратора хранилища данных уже https://ah-builtin-python-bundle-dot-[project-id].appspot.com/_ah/datastore_admin?app_id=[project-id]. Вероятно, он был включен до внедрения тега «по умолчанию», поэтому он перехватывал весь трафик в поддомене. Таким образом, нет необходимости повторно сопоставлять URL.

Существует этот существующий проект, над которым я был добавлен для работы, и на нем есть [project-id] .appspot.com, уже занятый стандартной страницей администратора хранилища данных.

Мне нужно было разместить еще несколько URL-адресов appspot, некоторые из которых выступать в качестве конечных точек PubSub, поэтому я нашел эту ветку , объясняющую, что все, что мне нужно сделать, это добавить служебный тег в app.yaml .

Однако при развертывании я получаю эту ошибку

ОШИБКА: (gcloud.app.deploy) INVALID_ARGUMENT: первый сервис (модуль), который вы загружаете в новое приложение, должно быть услугой по умолчанию (Модуль). Пожалуйста, загрузите версию услуги по умолчанию (модуль) перед загрузкой версии для сервиса «upload-watcher» (модуль). Смотрите документацию для получения дополнительной информации. Python: (https://developers.google.com/appengine/docs/python/modules/#Python_Uploading%%20modules) Джава: (https://developers.google.com/appengine/docs/java/modules/#Java_Uploading%%20modules)

с присваиванием «upload-watcher» имени службы, которое я назначил этому приложению.

Этот пользователь столкнулся с аналогичной проблемой, но он искал другой обходной путь, и ответ был просто концептуальным.

Механически, это правильный код для добавления в выбранный app.yaml? :

service: default 

Кроме того, мне кажется, что администратор хранилища данных НЕ должен быть сервисом по умолчанию и должен быть более или менее скрыт от публичного просмотра. Следовательно, в идеале я хотел бы переназначить администратора хранилища данных на URL вторичной службы, например

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

Как это можно сделать?

1 Ответ

0 голосов
/ 14 января 2019

Решение, рассмотренное в первом упомянутом вами потоке, означает отдельный файл конфигурации .yaml для новой службы, а не просто a service tag into the app.yaml file (существующий).

Лично я рекомендую хранить сервисы в отдельных параллельных подкаталогах внутри директории приложения GAE, см. Фактический пример в Может ли сервис / модуль по умолчанию в приложении Google App Engine быть родным по умолчанию с точки зрения структуры папок?

Ошибка, с которой вы сталкиваетесь, похожа на второй упомянутый вами поток: у вас нет развернутой службы default, когда вы пытаетесь развернуть службу upload-watcher.

Не переоценивайте часть «отображения» администратора хранилища данных - вас может ввести в заблуждение второй поток - администратор хранилища данных не является сервисом / модулем GAE, это средство уровня приложения, охватывающее все приложения сервисы, которые совместно используют хранилище данных приложения. Запустите ваши службы в первую очередь и, если вы видите проблемы в этом направлении, задайте отдельный вопрос, сейчас это просто добавляет путаницы.

Обновление:

Да, service: default является правильным для службы по умолчанию. В качестве альтернативы вы можете вообще не иметь конфигурации service - тот же эффект.

В зависимости от используемой команды развертывания (точнее, необязательного аргумента --version) будет создана новая версия службы или существующая версия будет перезаписана. См. Также Непрерывная интеграция / развертывание / доставка в Google App Engine, слишком рискованно?

Но, как вы заметили, обслуживание администратора хранилища данных выполняется по умолчанию, а не специально включается через конфиги, поэтому оно будет работать независимо от того, будет ли оно перезаписано или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...