【发布时间】:2020-07-10 05:08:23
【问题描述】:
我部署了以下功能:
interface MessageData {
reviewId: string;
}
export const applyPreAssessRules = functions
.pubsub.topic("applyPreAssessRules")
.onPublish(async (message) => {
const { reviewId } = message.json as MessageData;
...
}
云平台GUI提供了一个测试功能的页面,但是我不知道如何格式化输入。
我尝试了几件事,包括:
{"reviewId": "LRuvmv14u7c47IRiravi"}
{"message": {"reviewId": "LRuvmv14u7c47IRiravi"}}
{"message": { "json": {"reviewId": "LRuvmv14u7c47IRiravi"}}}
我不断得到以下输出:
错误:函数执行失败。细节: 第一个参数必须是 string、Buffer、ArrayBuffer、Array 或 Array-like Object 类型之一。接收类型未定义
我错过了什么?
我已经使用 Firebase 部署了该功能。不知道会不会有影响...
【问题讨论】:
-
只是为了确认。该函数在 Firebase 中按预期工作,但在 GCP 中却没有?
-
函数本身运行良好。我想知道如何从 GCP 将有效的 JSON 有效负载传递给它,因为我们有这个测试 UI
-
有一些关于如何将 Cloud Functions 与 PubSub here 一起使用的示例。根据您收到的错误,我认为您应该使用
JSON.stringify(messageObject)。JSON.stringify()方法将对象转换为 JSON 字符串。 -
我认为你没有理解我的意思。我知道如何以编程方式调用 pubsub 函数。我想知道 GUI 的功能,所以我想我应该说 GUI 而不仅仅是 UI。我将编辑问题。
标签: google-cloud-platform google-cloud-functions google-cloud-pubsub