如何将属性从Cloud Scheduler传递到发布/订阅?

时间:2020-07-04 16:29:15

标签: google-cloud-functions google-cloud-pubsub google-cloud-scheduler

我正在尝试触发按以下时间表运行的Cloud Function:

Cloud Scheduler-> Cloud Pub / Sub-> Cloud Functions

我的云功能使用发布/订阅消息中的属性:

    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"
}

但是它不会在发布/订阅中创建属性。

1 个答案:

答案 0 :(得分:5)

今天(2020年7月),在Cloud Scheduler上要了解的重要事项:很少有参数可以通过控制台访问

如果要访问高级参数,请使用gcloud commandrest 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

注意,在控制台中,您只能定义有效负载,我的意思是PubSub消息中的data字段,等于命令行中的--message-body= < / p>