我的云功能有一个小问题,导致消息崩溃
函数执行耗时 242323 毫秒,完成状态为:'crash'
我的设置 设置了两个 GCP 项目,一个由 A 部门管理,我在 B 部门工作,我可以访问在 A 部门的 GCP 项目上设置的服务器。
部门 A GCP 项目位于我们的内部网络后面,我正在通过 VPC 连接器访问该项目上的服务器。
在我的 B 部门 GCP 项目中,我使用 Cloud Scheduler、Cloud Pub/Sub、Cloud Function 和 Cloud Storage。
Workflow Cloud Scheduler 每天向 pub/sub-topic 发布一次消息。Cloud Function 订阅 pub/sub-topic,当有新消息到达 pub/sub-topic 时,Cloud Function 将向 A 部门 GCP 服务器上的服务器发起 HTTP 请求。向服务器发出的请求会启动查询并返回以 .csv 文件形式存储在 CLoud Storage 中的数据。
我有几个我计划在早上运行的 URL,只是给我一个问题,因为它需要最长时间来执行,我执行的所有其他 URL 都以 OK 状态完成,并且文件存储在 Cloud Storage 中.
即使我的云函数设置为 540 秒,我遇到问题的这个特定 URL 总是在 242323 毫秒左右崩溃。
提到其他有效的 URL 都在 242323 毫秒标记之前完成。
查看日志我可以看到导致 Cloud Function 崩溃的麻烦 URL,消息是 ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))
我正在使用 python“请求”来发出 HTTP 请求。
在部门 A,我们在他们的 GCP 项目中使用了一个代理服务器,VPC-Connector 已经与之配对。
我们可以使用 cURL 从 Department B GCP 项目发出 HTTP 请求,使用 cURL 我们可以毫无问题地完成对我们在使用云函数时遇到问题的 URL 的请求。
问题是来自 Cloud Functions 的请求在 540 秒的 Cloud Functions 执行时间结束之前终止。我测试了代理,它有 15 分钟的超时时间,这对于 Cloud Function 来说绰绰有余。