Мне просто нужен эффективный способ отладки приложения GAE, и для этого мне нужно подключиться к производственной инфраструктуре GAE с локального хоста при запуске dev_appserver.py.
Следующий код работает хорошо, если я его запускаюкак отдельный скрипт:
import argparse
try:
import dev_appserver
dev_appserver.fix_sys_path()
except ImportError:
print('Please make sure the App Engine SDK is in your PYTHONPATH.')
raise
from google.appengine.ext import ndb
from google.appengine.ext.remote_api import remote_api_stub
def main(project_id):
server_name = '{}.appspot.com'.format(project_id)
remote_api_stub.ConfigureRemoteApiForOAuth(
app_id='s~' + project_id,
path='/_ah/remote_api',
servername=server_name)
# List the first 10 keys in the datastore.
keys = ndb.Query().fetch(10, keys_only=True)
for key in keys:
print(key)
if __name__ == '__main__':
parser = argparse.ArgumentParser(
description=__doc__,
formatter_class=argparse.RawDescriptionHelpFormatter)
parser.add_argument('project_id', help='Your Project ID.')
args = parser.parse_args()
main(args.project_id)
С помощью этого скрипта я смог получить данные из удаленного хранилища данных. Но где мне нужно поместить один и тот же код в мое приложение (которое, очевидно, не является единственным скриптом), чтобы оно работало? Я пытался вставить remote_api_stub.ConfigureRemoteApiForOAuth()
код в appengine_config.py
, но у меня ошибка рекурсии. Я запускаю приложение, подобное этому:
dev_appserver.py app.yaml --admin_port=8001 --enable_console --support_datastore_emulator=no --log_level=info
Приложение использует NDB для доступа к Google Datastore. Приложение содержит много модулей и файлов, и я просто не знаю, куда поместить код аутентификации remote_api_stab.
Я надеюсь, что кто-то из команды Google увидит эту тему, потому что я искал весь интернет без каких-либо результатов. Невероятно, сколько людей разрабатывают приложения для платформы GAE, но похоже, что никто не разрабатывает и не отлаживает приложения локально.