Я тестирую фоновую функцию, которая подсчитывает количество созданных документов, в которых указано c поле, но я получаю эту ошибку.
Я понял, что у меня 2 миллиона вызовов в месяц (включая фоновые и HTTP-вызовы проекта из-за этого , и у меня всего 24 тыс. Транзакций, потому что я тестирую) надежность результатов с транзакциями и from google.cloud.firestore_v1 import Increment
.
Из небольшого количества данных я получил неправильный подсчет с подходом приращения. Например, из 15 проектов функция получает 14, а также с 500 функция подсчитывает мне на одну меньше, но с большим количеством данных, у меня были худшие результаты (большая разница), поэтому я надеялся, что этого не произойдет с транзакциями. Однако теперь я не могу проверить эту ошибку, как это могло произойти? Спасибо за ваше время. Это ошибка:
Error: quota exceeded (Quota exceeded for quota group 'DNSResolutionsNonbillable' and limit 'DNS resolutions per day' of service 'cloudfunctions.googleapis.com' for consumer 'project_number:xxxx'.); to increase quotas, enable billing in your project at https://console.cloud.google.com/billing?project=xxxxx. Function cannot be executed.
Это функция, которая просто уменьшает число при удалении документа:
def increase_total_documents(data,context):
""" Triggered by a creation to a Firestore document.
Args:
data (dict): The event payload.
context (google.cloud.functions.Context): Metadata for the event.
"""
trigger_resource = context.resource
print('Function triggered by change to: %s' % trigger_resource)
value = data["value"]
field = value["fields"]["FIELD"]["stringValue"]
if field == "xfield":
doc_ref = FIRESTORE_CLIENT.document('metadata/path')
result = doc_ref.set({"count":Increment(1)},merge=True)
number = result.transform_results[0].integer_value
mensaje = "Number increased {}".format(number)
print(mensaje)
return mensaje