如何将属性从 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 请求

GCP Cloud Scheduler 为 HTTP 目标类型抛出错误

如何通过 Cloud Build 访问 GSM 机密并传递给 Cloud Function