Облачные функции не сохраняют состояние, но могут повторно использовать глобальное состояние из предыдущих вызовов. Это объясняется в подсказках и этих документах .
Использование глобального состояния с повторными попытками должно дать вам более надежную функцию:
from tenacity import retry, stop_after_attempt, wait_random
from firebase_admin import storage
@retry(stop=stop_after_attempt(3), wait=wait_random(min=1, max=2))
def get_bucket(storage):
return storage.bucket('my-firebase-bucket')
@retry(stop=stop_after_attempt(3), wait=wait_random(min=1, max=2))
def get_blob(bucket, path):
return bucket.get_blob(path)
bucket = get_bucket(storage)
def fn(request):
path = '/thing'
blob = get_blob(bucket, path)
# etc..