Получение данных App Engine из другого приложения внутри

Просто из любопытства, есть ли в App Engine способ получить данные из другого приложения App Engine, используя какой-то внутренний URL-адрес (аналогичный соединению CloudSql)?

Например, вместо этого:

urlfetch.fetch("https://my-app-id.appspot.com/url/to/fetch")

Сделайте что-нибудь вроде этого:

urlfetch.fetch("/appengine/my-app-id/url/to/fetch")

person Tzach    schedule 31.03.2014    source источник
comment
Не могу дать ответ «Нет», так что это комментарий. Нет, нет. Что не так с вашим исходным примером.   -  person Tim Hoffman    schedule 31.03.2014
comment
Если вам нужно получить данные непосредственно из хранилища данных, вы можете попробовать удаленный API: developers.google .com / appengine / docs / python / tools / remoteapi.   -  person Deviling Master    schedule 31.03.2014
comment
@TimHoffman, спасибо. В первом примере нет ничего плохого. Я просто из любопытства спрашиваю, ведь такая штука существует для CloudSql.   -  person Tzach    schedule 31.03.2014
comment
@DevilingMaster Это хорошая альтернатива, и, возможно, вы могли бы написать это в ответе .. что, конечно же, нет ..   -  person Lipis    schedule 31.03.2014
comment
@DevilingMaster спасибо, но мне не нужен доступ к хранилищу данных.   -  person Tzach    schedule 31.03.2014
comment
На самом деле я не мог дать ответ «Нет», не дописав чего-либо ;-)   -  person Tim Hoffman    schedule 31.03.2014
comment
:) Не стесняйтесь, я приму.   -  person Tzach    schedule 31.03.2014
comment
Неясно, хотите ли вы получить доступ к данным в хранилище данных или получить конечную точку URL. В хранилище данных действительно есть API, и с соответствующей авторизацией вы можете получить к нему доступ из любого места. Для URLFetch я не понимаю, в чем проблема с использованием вместо этого абсолютного пути?   -  person David Cifuentes    schedule 31.03.2014


Ответы (2)


Вы можете передавать данные через Google Cloud Storage с помощью клиентской библиотеки GCS

Вам просто нужно добавить учетную запись службы для совместного использования Google Cloud Storage друг с другом.

Простой вариант использования в Python:

#!/usr/bin/env python
import cloudstorage as gcs

with gcs.open('your-bucket/your-file.txt', 'w') as gcs_file:
    gcs_file.write('hello world\n')

После того как вы предоставили доступ к сегменту для своих проектов, вы сможете получить доступ к одному и тому же файлу в указанном сегменте на каждом экземпляре App Engine в разных проектах.

Это самый простой способ обмениваться данными между разными проектами движка приложений.

person Colin Su    schedule 31.03.2014

Согласно документации, приложения могут обмениваться сообщениями друг с другом. Проверьте поле X-Appengine-Inbound-Appid для авторизации.

person Valéry    schedule 31.03.2014
comment
Это только для определения того, откуда пришел запрос, а не для отправки сообщений. Образец в документации просто фильтрует идентификатор приложения для приема запросов. - person Colin Su; 31.03.2014