-1

我正在尝试学习如何将由云功能处理的任务排队。按照提供的示例代码https://cloud.google.com/tasks/docs/creating-http-target-tasks

我还在使用 Python 的示例云函数代码。云函数需要一些 args 或 JSON,如下所示:

{"message": "hello Ari"}

但是,当我尝试将任务的有效负载设置为字典时,它说它无法对字典进行编码,那么我该如何发送字符串以外的内容。我本质上是想为云函数发送键和值来解释:

{
"file": "image.png",
"user": "ari",
"process": "resize",
}

所以我想我的问题是,如何发送带有上下文的信息以及如何解释云功能端的有效负载

基本上,用户上传图像,图像存储在 GCS 中,创建任务以调整图像大小(或执行某些操作),云功能由任务队列触发,它读取存储桶信息以及用户是谁,确实作业,更新 firestore 中的文件元数据以向用户指示作业已完成。

4

1 回答 1

2

就这么简单。在创建任务的路由/函数中(参见上面的代码示例链接),将有效负载变量更改为如下所示。

payload = json.dumps({
    "message": "hello",
    "user": "ari"
})

然后在您的云函数或端点中使用它来将其传输回字典:

payload = request.get_data(as_text=True)
args = json.loads(payload)

message = args.get("message")
于 2019-10-07T03:05:52.897 回答