【发布时间】:2021-11-19 09:50:52
【问题描述】:
使用 python 请求库向 Qualtrics API 发出请求时,我偶尔会遇到上述错误。
简而言之,我在 Google Cloud 上有一个 Google Cloud 功能,当 csv 文件放置在特定的云存储桶上时会触发该功能。该功能将在 Qualtrics 上创建 Qualtrics 分发列表,上传联系人,然后下载分发链接。 每天,三个文件都会上传到 Cloud Storage,每个文件用于不同的调查,因此将启动三个 Google Cloud 实例。
我对这些问题的不满是:
- 这种情况并不经常发生,实际上工作流程在过去一年中正常运行
- 它似乎与已处理的文件无关:当函数崩溃并且我通过将 same csv 重新上传到存储桶中手动重新启动它时,它会顺利运行
问题开始于我们将第三个每日 csv 添加到进程时,并且往往在同时处理两个文件时发生。由于这些原因,我的嫌疑人是:
- 我的速率受到 Qualtrics 的限制(但我希望 Qualtrics 提供更明确的信息)
- 在处理两个文件时,请求会以某种方式“交叉”。我不确定 requests.request 是否隐式打开与 API 的会话。在这种情况下,问题可能是由于同时处理两个 csv 的多个会话同时打开而产生的
正如我所说,错误似乎是在没有模式的情况下发生的,并且它发生在我向 API 发出请求的代码的任何部分,所以我不确定共享大量代码是否有帮助,但总的来说,请求是以非常标准的方式执行的:
requests.request("POST", requestUrl, data=requestPayload, headers=headers)
requests.request("GET", requestUrl, headers=headers)
等等
即:我没有使用任何特定的自定义选项
【问题讨论】:
-
嘿,从你的问题我了解到你正在使用云函数与 Qualtrics 的 API 进行交互,特别是根据三个文件制作分发列表,其中包含然后上传的联系人。如果有什么我误解了,请告诉我。就 Cloud Functions 而言,当涉及到出口消息时,它将充当任何其他客户端(它在 G.Cloud 内部有所不同,因为它是内部的),所以我想知道您如何与 Qualtrics 交互,就好像问题可能不在 Qualtrics,知道这将有助于找到根本原因。
-
是的,您对架构的看法是正确的。在运行期间,云函数将执行各种操作(创建联系人列表、解析 csv 等),然后它将循环遍历 csv 并在 qualtrics 上一一上传联系人。这个阶段是我通常得到错误的地方,对于单个联系人来说,这似乎是随机发生的。上传是通过
https://fra1.qualtrics.com/API/v3/mailinglists/{mailinglistid}/contacts上的 POST 请求完成的。该请求包括一个包含客户信息的 json 有效负载。
标签: python python-requests google-cloud-functions qualtrics