Как настроить memcached для Django 3.0 на App Engine?
Итак, у меня есть приложение Django 3.0, которое я хочу развернуть на App Engine. Я хочу использовать Memcached для кэширования данных, которые были извлечены из BQ для моего приложения Django. На данный момент я настроил Django's views.py следующим образом:
from google.appengine.api import memcache
def index(request):
cached_data = memcache.get('cached_data')
if not cached_data:
# Syntax to pull data here
memcache.add(key='cached_data', value='pulled_data', time=3600)
Моя app.yaml также включает
app_engine_apis: true
Однако после развертывания приложения с помощью gcloud app deploy и открытия веб-приложения я получаю 500 Server Error. Я полагаю, что эта ошибка связана с Memcached, но я не уверен, что именно я упускаю.
Дополнительное примечание: Я не устанавливал никаких CACHES в моем settings.py, поскольку ни один из них не был упомянут на сайте GCP. Я использовал это во время разработки локально:
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.PyMemcacheCache',
'LOCATION': '127.0.0.1:11211',
}
}
Но затем я удалил его прямо перед развертыванием на App Engine.
Я пробовал следовать этому SO Answer, но у меня ничего не получилось.
Я бы не советовал использовать этот вариант, поскольку он предполагает использование среды Python2 Google App Engine. Python2 очень устарел и в настоящее время больше не поддерживается сообществом.
Лучшим вариантом будет использование среды исполнения Python3 и вместо Memcache использование Firestore для хранения данных. Firestore - это база данных документов NoSQL, созданная для автоматического масштабирования, высокой производительности и простоты разработки приложений.