如何将属性从 Cloud Scheduler 传递到 Pub/Sub?
Posted
技术标签:
【中文标题】如何将属性从 Cloud Scheduler 传递到 Pub/Sub?【英文标题】:How to pass attributes from Cloud Scheduler to Pub/Sub? 【发布时间】:2020-10-25 03:17:08 【问题描述】:我正在尝试触发按计划运行的云函数:
Cloud Scheduler -> Cloud Pub/Sub -> Cloud Functions
My Cloud Function 使用 Pub/Sub 消息中的属性:
let messageTitle = null;
try
messageTitle = message.attributes.messageTitle;
catch (e)
console.error('no title in pub/sub message', e);
如何创建具有属性的调度程序?
我已尝试在调度程序“有效负载”字段中输入此内容:
"data": "string",
"attributes":
messageTitle: "TEST 3 title",
messageBody: "TEST 3 body"
,
"messageId": "string",
"publishTime": "string"
但它不会在 Pub/Sub 中创建属性。
【问题讨论】:
【参考方案1】:今天(2020 年 7 月),关于 Cloud Scheduler 的重要信息:很少有参数可以通过控制台访问。
如果要访问高级参数,请使用gcloud command 或rest API
现在您可以访问重试策略和 PubSub 消息的属性。
gcloud scheduler jobs create pubsub --message-body=my_body \
--attributes=att1=val1,att2=val2 --topic=topicName \
--schedule="0 0 * * *" --time-zone=UTC mySchedulerName
注意,在控制台中,你只能定义payload,我是指PubSub消息中的data
字段,等于命令行中的--message-body=
【讨论】:
太棒了!没有意识到调度程序控制台没有所有功能,谢谢。以上是关于如何将属性从 Cloud Scheduler 传递到 Pub/Sub?的主要内容,如果未能解决你的问题,请参考以下文章
如何将参数从 Dart 传递到用 Typescript 编写的 Cloud 函数,它还给了我错误代码 UNAUTHENTICATED
如果我的 Google Cloud Scheduler 作业失败,如何发送电子邮件提醒?
Cloud Scheduler 调用的 GCP Cloud Run 应用的当前最大超时是多少
验证来自 Google Cloud Scheduler 的 HTTP 请求