Cloud Task 需要 'Bytes' 类型的负载,我该如何发送字典?
Cloud Task expects payload of type 'Bytes', how do I send a dictionary?
我正在尝试学习如何对由云函数处理的任务进行排队。按照提供的示例代码 https://cloud.google.com/tasks/docs/creating-http-target-tasks
我也在使用 Python 的示例云函数代码。云函数需要一些参数或 JSON,如下所示:
{"message": "hello Ari"}
但是,当我尝试将任务的有效负载设置为字典时,它说它无法对字典进行编码,那么我该如何发送字符串以外的内容。我本质上是想发送键和值供云函数解释:
{
"file": "image.png",
"user": "ari",
"process": "resize",
}
所以我想我的问题是,如何发送带有上下文的信息以及如何在云函数端解释有效负载
基本上用户上传一张图片,图片存储在 GCS 中,创建一个任务来调整图片大小(或做一些事情),云功能由任务队列触发,它读取存储桶信息和谁用户正在执行作业,更新 firestore 中的文件元数据以向用户指示作业已完成。
原来如此简单。在创建任务的 route/function 中(参见上面的 link 代码示例),将 payload 变量更改为如下所示。
payload = json.dumps({
"message": "hello",
"user": "ari"
})
然后在您的云函数或端点中使用它来将其传回字典中:
payload = request.get_data(as_text=True)
args = json.loads(payload)
message = args.get("message")
我正在尝试学习如何对由云函数处理的任务进行排队。按照提供的示例代码 https://cloud.google.com/tasks/docs/creating-http-target-tasks
我也在使用 Python 的示例云函数代码。云函数需要一些参数或 JSON,如下所示:
{"message": "hello Ari"}
但是,当我尝试将任务的有效负载设置为字典时,它说它无法对字典进行编码,那么我该如何发送字符串以外的内容。我本质上是想发送键和值供云函数解释:
{
"file": "image.png",
"user": "ari",
"process": "resize",
}
所以我想我的问题是,如何发送带有上下文的信息以及如何在云函数端解释有效负载
基本上用户上传一张图片,图片存储在 GCS 中,创建一个任务来调整图片大小(或做一些事情),云功能由任务队列触发,它读取存储桶信息和谁用户正在执行作业,更新 firestore 中的文件元数据以向用户指示作业已完成。
原来如此简单。在创建任务的 route/function 中(参见上面的 link 代码示例),将 payload 变量更改为如下所示。
payload = json.dumps({
"message": "hello",
"user": "ari"
})
然后在您的云函数或端点中使用它来将其传回字典中:
payload = request.get_data(as_text=True)
args = json.loads(payload)
message = args.get("message")