Локальная разработка с помощью Cloud Tasks и Cloud Datastore с GAE с Python3

Контекст: - Мы используем GAE с Python3, поэтому пакет API GAE недоступен, поэтому мы используем пакеты google-cloud- * для взаимодействия с сервисами GAE

т.е.Google-облако-задачи для push-очередей, Google-облако-хранилище данных для хранилища данных.

Проблема: - Невозможно протестировать что-либо в среде разработки, поскольку пакеты google-cloud- * напрямую воздействуют на производственные службы. т.е., если я нажимаю задачу с помощью google-cloud-tasks, она помещается в производственную очередь, аналогично, если я создаю или обновляю объект из среды разработки, он будет обновлять объект в производственном хранилище данных.

Раньше с пакетами API GAE в локальной системе использовались локальные облачные задачи и хранилище данных для целей разработки.

Я рассматриваю это как большую и очень распространенную проблему, мне интересно, сталкивался ли кто-то еще с такой проблемой и нашел какое-либо решение для нее.

Как человек, использующий python2.7 App Engine в течение ~ 10 + лет, я тоже озадачен этим подходом - похоже, больше нет локальной разработки ...

Kaan Soral 14.03.2020 13:21

Да, проверил об этом у парней из службы поддержки Google Cloud, и в прошлый раз, когда я проверял, это не входило в их компетенцию.

vinit payal 15.03.2020 08:46
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
6
2
1 452
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Для Cloud Datastore вы можете следовать инструкциям на https://cloud.google.com/datastore/docs/tools/datastore-emulator, чтобы использовать локальный эмулятор вместо вашей производственной базы данных Datastore.

Как отмечено в https://cloud.google.com/tasks/docs/migrating, облачные задачи в настоящее время не поддерживаются в эмуляторе.

Известны ли вам какие-либо обновления по этому поводу? По-прежнему невозможно запустить какую-то копию облачных задач локально для целей модульного тестирования / локальной разработки?

somada141 29.05.2019 03:37

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

Другие вопросы по теме