如何将属性从 Cloud Scheduler 传递到 Pub/Sub?

How to pass attributes from Cloud Scheduler to Pub/Sub?

我正在尝试触发按计划运行的云功能:

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

我的 Cloud Function 使用 Pub/Sub 消息中的属性:

    let messageTitle = null;
        try {
            messageTitle = message.attributes.messageTitle;
        } catch (e) {
            console.error('no title in pub/sub message', e);
        }

如何创建具有属性的调度程序?

我试过在调度程序 'Payload' 字段中输入:

{
  "data": "string",
  "attributes": {
    messageTitle: "TEST 3 title",
    messageBody: "TEST 3 body"
  },
  "messageId": "string",
  "publishTime": "string"
}

但它不会在 Pub/Sub 中创建属性。

今天(2​​020 年 7 月),关于 Cloud Scheduler 需要了解的一件重要事情:很少有参数可通过控制台访问

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