我正在测试一个后台函数,该函数计算特定字段中创建的文档数,但我遇到了这个错误。
据我所知,我每月有200万次调用(包括项目的后台调用和HTTP调用,因此我只有24 k。我使用事务是因为我正在用事务和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
除了调用限制外,云功能还限制了在未启用计费时将解析的外部地址的数量。就像错误消息告诉你的那样,你需要在项目中启用计费来提高配额。