Контекст: - Мы используем GAE с Python3, поэтому пакет API GAE недоступен, поэтому мы используем пакеты google-cloud- * для взаимодействия с сервисами GAE
т.е.Google-облако-задачи для push-очередей, Google-облако-хранилище данных для хранилища данных.
Проблема: - Невозможно протестировать что-либо в среде разработки, поскольку пакеты google-cloud- * напрямую воздействуют на производственные службы. т.е., если я нажимаю задачу с помощью google-cloud-tasks, она помещается в производственную очередь, аналогично, если я создаю или обновляю объект из среды разработки, он будет обновлять объект в производственном хранилище данных.
Раньше с пакетами API GAE в локальной системе использовались локальные облачные задачи и хранилище данных для целей разработки.
Я рассматриваю это как большую и очень распространенную проблему, мне интересно, сталкивался ли кто-то еще с такой проблемой и нашел какое-либо решение для нее.
Да, проверил об этом у парней из службы поддержки Google Cloud, и в прошлый раз, когда я проверял, это не входило в их компетенцию.
Для Cloud Datastore вы можете следовать инструкциям на https://cloud.google.com/datastore/docs/tools/datastore-emulator, чтобы использовать локальный эмулятор вместо вашей производственной базы данных Datastore.
Как отмечено в https://cloud.google.com/tasks/docs/migrating, облачные задачи в настоящее время не поддерживаются в эмуляторе.
Известны ли вам какие-либо обновления по этому поводу? По-прежнему невозможно запустить какую-то копию облачных задач локально для целей модульного тестирования / локальной разработки?
Этот локальный эмулятор для облачных задач Google работал у меня.
pip install gcloud-tasks-emulator
gcloud-tasks-emulator start --port=9090
// Примечание -: по умолчанию команда gcloud-tasks-emulator не доступен глобально переключить установочный каталог.
/Users/{userName}/Library/Python/3.7/bin
./gcloud-tasks-emulator start --port=9090
Теперь мы можем добавить изменения кода для поддержки облачной задачи в локальном окружении.
import grpc
from google.cloud.tasks_v2 import CloudTasksClient
from google.cloud.tasks_v2.gapic.transports.cloud_tasks_grpc_transport import C
loudTasksGrpcTransport
client = CloudTasksClient(
transport=CloudTasksGrpcTransport
(channel=grpc.insecure_channel("127.0.0.1:9090"))
)
посетите эту ссылку для получения полной инструкции https://pypi.org/project/gcloud-tasks-emulator/
Я построил внутрипроцессный эмулятор для разработки на Python.
См. Также некоторые эмуляторы, которые запускаются в отдельном процессе на localhost: gcloud-задачи-эмулятор Potato London, упомянутый в ответе выше, и эмулятор облачных задач Аэрта ван де Хулсбека.
Как человек, использующий python2.7 App Engine в течение ~ 10 + лет, я тоже озадачен этим подходом - похоже, больше нет локальной разработки ...