Google Cloud Functions Python 请求失败

问题描述 投票:0回答:1

我正在实现一个用 Python 编写的 Google Cloud Function,目前我正在使用

firebase emulators:start --debug
在本地模拟器上以调试模式进行测试。我需要发送多个 https 请求才能从网页获取内容,但是我的代码在几次请求后似乎失败了,我不明白为什么。这是产生错误的一段代码:

import requests 

for i in range(100):
    requests.get("https://apple.com")

这不会明显崩溃,但是我得到以下调试输出:

functions: Failed to load function definition from source: FirebaseError: User code failed to load. Cannot determine backend specification {"metadata":{"emulator":{"name":"functions"},"message":"Failed to load function definition from source: FirebaseError: User code failed to load. Cannot determine backend specification"}}
127.0.0.1 - - [16/Jan/2024 06:19:04] "GET /__/quitquitquit HTTP/1.1" 200 -

/bin/sh: line 1: 64676 Terminated: 15          python3.11 "/Users/myname/Desktop/foldername/functions/venv/lib/python3.11/site-packages/firebase_functions/private/serving.py

我还得到以下信息:

[2024-01-16T06:19:35.161Z] Jan 15, 2024 10:19:35 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
INFO: Detected non-HTTP/2 connection.
 {"metadata":{"emulator":{"name":"firestore"},"message":"Jan 15, 2024 10:19:35 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead\nINFO: Detected non-HTTP/2 connection.\n"}}

通常我的程序在 5-10 个请求后停止工作,并且它似乎不依赖于我发出请求的 url,因此它不是来自速率限制。据我所知,所有请求都会返回,状态代码为 200。

任何人都知道可能导致此问题的原因,我将不胜感激。如果您还需要更多信息,请告诉我。旁注:我相信我的功能和 firebase 环境设置正确,因为其他一切都按预期工作。

python firebase python-requests google-cloud-functions
1个回答
0
投票

在请求之间添加睡眠:

使用 time 在查询之间创建短暂的延迟。使用 sleep() 以避免过早发送请求。这可以帮助防止模拟器过载。

import requests
import time

for i in range(100):
    requests.get("https://apple.com")
    time.sleep(1)
© www.soinside.com 2019 - 2024. All rights reserved.