亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

webhook 可以直接針對 GCP PubSub 嗎?

webhook 可以直接針對 GCP PubSub 嗎?

qq_遁去的一_1 2023-06-06 16:40:05
我們正在使用 webhooks 來監聽 Jira 問題事件。每當票證上發生活動時,JIRA API 都會通知在 Google Cloud Function 中運行的 HTTP 端點。在此 Cloud Functions 中,我們只是通過以下方式將請求原封不動地轉發到 Pub/Sub:def forward_to_pubsub(request):    publisher = pubsub_v1.PublisherClient()    topic_path = publisher.topic_path(project_id, topic_id)    # Request body contains user, project, issue basically everything we care about    jira_body = request.json    publisher.publish(topic_path, data=json.dumps(jira_body).encode('utf-8'))這似乎是一個不必要的跳躍。有沒有辦法將 Pub/Sub 配置為 HTTP webhook 的目標?無法從文檔中找出任何一種方式。
查看完整描述

2 回答

?
偶然的你

TA貢獻1841條經驗 獲得超3個贊

實際上可以使用 REST API 通過 HTTP 直接將消息發布到 Pub/Sub 主題。

要發布消息,請發送如下 POST 請求:

POST??https://pubsub.googleapis.com/v1/projects/PROJECT_ID/topics/TOPIC_ID:publish
Authorization:?Bearer?$(gcloud?auth?application-default?print-access-token)

替換以下內容:

  • PROJECT_ID:主題項目的項目ID

  • TOPIC_ID:主題ID

在請求正文中指定以下字段:

{

"messages": [

? {

? ? "attributes": {

? ? ? "KEY": "VALUE",

? ? ? ...

? ? },

? ? "data": MESSAGE_DATA,

? }

]

}

替換以下內容:

  • KEY:消息屬性的鍵

  • VALUE:消息屬性的鍵的值

  • MESSAGE_DATA:帶有消息數據的 base64 編碼字符串

如果請求成功,響應是一個帶有消息 ID 的 JSON 對象。以下示例是帶有消息 ID 的響應:

{??"messageIds":?[??
??"19916711285"
??]
}

發布消息后,Pub/Sub 服務會將消息 ID 返回給發布者。

還有一個REST API 參考和服務端點概述以及使用 Google REST API 時的常見說明,這應該會有所幫助。

請注意,發布請求必須確認 projects.topic.publish方法規范,因此仍需要從 JIRA webhook 通知進行轉換。


查看完整回答
反對 回復 2023-06-06
?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

不,這是不可能的。Pub/Sub 主題沒有相應的可用作 webhook 的 HTTP 端點。如果要從最終用戶應用程序觸發 Pub/Sub 主題,則需要在它們之間使用前端服務器:

http://img1.sycdn.imooc.com/647ef112000188fb06450472.jpg

查看完整回答
反對 回復 2023-06-06
  • 2 回答
  • 0 關注
  • 245 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號