本文為您介紹事件通知常見問題。
事件通知公用常見問題
如何從回調中擷取HTTPS的URL用於播放?
點播的HTTP回調和MNS回調,都不支援返回HTTPS的URL。如需要從回調中直接擷取到HTTPS的URL用於視頻播放,可參考下述步驟實現:
為網域名稱配置HTTPS安全性憑證。
配置方法可參考HTTPS安全加速設定,如已配置則可以跳過此步驟。
在接收回調的代碼中使用替換操作,以實現自行將HTTP的URL替換為HTTPS的URL。
例如Java中,可使用
replace
進行替換。
如何?多地址回調?
通過點播控制台或API/SDK方式(SetMessageCallback - 設定事件通知配置介面)配置回調時,是針對點播服務全域的配置,且只能回調到一個地址。如果您有多地址回調的使用情境,可參考下述方案實現:
方案一:在
UserData
中指定回調地址在調用介面上傳媒資檔案或發起ApsaraVideo for Media Processing任務時(例如CreateUploadVideo - 擷取音視頻上傳地址和憑證、SubmitTranscodeJobs - 提交媒體轉碼作業等介面),通過指定請求參數
UserData
中的MessageCallback欄位,來設定其他回調地址。詳細資料,請參見設定多地址回調。說明本方案僅支援HTTP回調方式。
本方案需要在已開啟全域的事件通知並配置相應的回調事件類型後才能使用,否則本方案設定的回調不生效。
方案二:區分應用設定獨立回調地址
使用多應用體系,可以為每個應用設定獨立的訊息回調方式和地址。詳細內容請參見多應用體系概述。
HTTP回調的常見問題
沒有收到HTTP回調該如何排查?
首先需要登入ApsaraVideo for VOD控制台 ,在點播控制台左側導覽列的組態管理,選擇 ,確認是否開啟回調功能,並且查看是否訂閱了所需要的回調。
執行下述樣本,查看是否有正常返回,如果沒有,則排查回調地址接收服務是否有問題。注意將
http://example.aliyundoc.com/processMessage
替換為您設定的HTTP回調地址。curl -l -i -H "Content-type: application/json" -X POST -d '{"VideoId":"videoId","EventType":"FileUploadComplete","Status":"success","Size":1439213}' http://example.aliyundoc.com/processMessage
回調逾時時間是多少?重試幾次?稍候再試多久?
HTTP回調逾時時間預設為5秒,最多重試3次,每次間隔1秒。
超過重試次數後,訊息會被丟棄嗎?這樣如何保證訊息不丟失?
如果您的接收服務異常,如崩潰、重啟、網路不可達等,超過重試次數訊息都會被丟棄。如果要保證訊息不丟失,推薦使用MNS回調。
HTTP回調支援302跳轉嗎?
HTTP回調只支援200響應,出於安全考慮,不支援302、301等。
收到多次重複回調是什麼原因?
HTTP回調只有收到200響應碼時才認為是成功,否則均認為失敗,並重試回調,最多嘗試三次。
HTTP鑒權有什麼作用?
HTTP鑒權是在回調過程增加特殊HTTP頭,供回調地址提供方進行校正(防止非阿里雲點播服務調用該介面,造成安全問題)。具體是否校正可由使用者自行判斷。
MNS回調的常見問題
MNS回調隊列中沒有訊息是什麼原因?
未授權點播服務訪問Message ServiceMNS、Endpoint不是公網或者隊列名稱不對會導致訊息投遞失敗。
訊息存活時間設定過小(建議使用3600 秒),訊息被消費前已經釋放。
訊息最大長度設定過小(建議使用預設值65536 Byte),可能會導致訊息投遞失敗。
MNS回調收到重複訊息是什麼原因?
訊息被消費後,變為短暫不可見,需要手動或調用介面刪除訊息,否則一段時間後訊息可以被再次消費。
MNS回調是否支援鑒權?
點播服務經過授權寫入使用者隊列,非經授權無操作許可權,安全性比較高,所以一般不需要鑒權。
MNS回調支援哪些地區?
如果視頻儲存在中國內地地區(如 華北2 ,華東2 ),投遞訊息到華東2(上海)地區之外的隊列存在較短時間的延遲,建議使用 華東2(上海) 地區的隊列。
如果視頻儲存在 新加坡地區 儲存,建議使用新加坡地區的訊息佇列。
如果視頻儲存在 法蘭克福地區 儲存,建議使用法蘭克福地區的訊息佇列。
是否能跨地區配置MNS隊列進行回調?
是否能跨地區配置MNS隊列進行回調,比如視頻儲存和處理在華東2(上海)或華北2(北京),但MNS隊列在華南1(深圳)。功能上是支援的,只是要考慮下網路延遲,可能訊息寫入會稍慢一些,建議盡量配置和儲存地址在同一地區,如華東2。