Как подключиться к удаленному хранилищу данных Google с локального хоста, используя dev_appserver.py? - PullRequest
0 голосов
/ 25 октября 2019

Мне просто нужен эффективный способ отладки приложения 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, но похоже, что никто не разрабатывает и не отлаживает приложения локально.

...