2010-10-20 4 views
6

Я разрабатываю приложение App Engine, использующее memcache. Поскольку среди всех версий вашего приложения есть только одна memcache, я потенциально могу отправить плохие данные из новой версии в производственную версию memcache. Чтобы предотвратить это, я думаю, что я могу добавить версию приложения в строку ключа memcache, чтобы различные версии приложения могли хранить свои данные отдельно.Версия App Engine, Memcache

Я мог бы сделать это вручную, но я хотел бы, чтобы тянуть в версии от app.yaml

Как я могу получить доступ к версии приложения из кода Python?

ответ

12

Переменная os.environ содержит ключ, называемый CURRENT_VERSION_ID, который вы можете использовать. Это значение состоит из version из app.yaml, объединенного вместе с периодом, и я подозреваю, что это api_version. Если я установил version - 42, он дал мне значение 42.1. У вас не должно быть проблем с извлечением номера версии в одиночку, но, возможно, не такая уж плохая идея сохранить api_version.

EDIT:

@Nick Джонсон отметил, что число справа от периода является несовершеннолетний версия, число которых увеличивается каждый раз, когда вы устанавливаете свой код. На сервере разработки это число всегда 1.

+0

спасибо, я собираюсь позвонить os.environ.get ('CURRENT_VERSION_ID', '') –

+3

Вторая часть версии - это идентификатор версии 'minor'. На сервере разработки он всегда 1, но в производстве он изменяется с каждым развертыванием. –

+0

@ Ник Джонсон, спасибо, что указали это. Это очень хорошо знать. –

Смежные вопросы