Как отметил Серджио Франко, можно использовать облачные функции для доступа к хранилищу данных и обновления сущностей. Все еще необходимо развернуть функцию, но, поскольку все это можно сделать из консоли, это значительно проще и быстрее, чем добавлять новый код в проект и развертывать весь проект.
Важно помнить, что вы ' Будет оцениваться каждый раз, когда выполняется функция, независимо от ее размера. Подробнее здесь
- Выберите «Создать функцию»
- Дайте функции описательное имя (это будет легче чтобы узнать, что он делает позже)
- Выберите 128 МБ (плата будет взиматься в зависимости от распределения памяти)
- Выберите HTTP в качестве триггера
- Поскольку целью этой функции является Чтобы обновить хранилище данных, я думаю, что лучше оставить галочку «Разрешить неаутентифицированные вызовы»
- Выберите «встроенный редактор»
- Выберите Python 3.7 в качестве среды выполнения (так как примеры ниже будут в Python)
- Добавьте приведенный ниже код на вкладке «needs.txt»:
# Function dependencies, for example:
# package>=version
google-cloud-datastore==1.8.0
from io import StringIO
from google.cloud import datastore
datastore_client = datastore.Client()
def update_books(request):
buffer = StringIO()
query = datastore_client.query(kind='Book')
query.add_filter('author', '=', 'Terry Pratchett')
data = query.fetch()
for book in data:
book['rating'] = '5 stars'
client.put(book)
buffer.write('Updated book {}'.format(book['title']))
return buffer.getvalue()
- Нажмите «Переменные среды, сеть и многое другое»
- В сети выберите «Разрешить внутренний трафик» c только "
- Нажмите" Создать "
- Дождитесь развертывания функции
- Go на вкладке" Тестирование "
- Нажмите" Тестовая функция "
Все, что возвращается функцией, будет напечатано в разделе" Вывод "страницы.
Все, что вызвано print
, будет отправлено в журналы
Вы можете получить доступ ко всем свойствам сущностей, как если бы это был дикт.
Источники:
облачные функции python для доступа к хранилищу данных
https://googleapis.dev/python/datastore/latest/entities.html
https://cloud.google.com/functions/docs/quickstart-python