ApsaraVideo for VOD支援HTTP回調和Simple Message Queue (formerly MNS)回調兩種方式,本文為您介紹事件通知的事件類型、回調方式、回調配置、回調協議、回調內容公用參數等基本資料,以及回調判斷與重試和常見問題。
事件通知簡介
點播服務支援多個儲存地區 ,每個地區可以單獨配置事件通知的回調方式和回調地址。使用者可以上傳視頻到不同地區的儲存,視頻處理完成後,點播服務會根據儲存地區配置的回調方式和回調地址及時通知使用者。
回調body中,返回的URL均為HTTP地址,暫不支援HTTPS地址的返回,如有需要,可以參考事件通知常見問題中的方案解決。
回調方式
點播服務目前支援HTTP回調(相容HTTPS)、輕量訊息佇列(原MNS)回調兩種方式擷取事件通知:
HTTP回調(相容HTTPS):
HTTP回調是您被動接收ApsaraVideo for VOD服務事件通知的模式。您需要部署一個HTTP服務來接收回調訊息,並在ApsaraVideo for VOD服務中配置回調URL;當事件產生時,點播服務端會向該URL發起HTTP POST請求,事件通知內容將通過HTTP Body送達。
Simple Message Queue (formerly MNS)回調:
Simple Message Queue (formerly MNS)回調是您主動向ApsaraVideo for VOD服務拉取接收事件通知的模式。您需要授權點播服務訪問輕量訊息佇列(原MNS)並在Message Service中建立隊列或使用已有隊列,然後在ApsaraVideo for VOD服務中完成事件通知的配置;當事件產生時,點播服務會將回調內容寫入該隊列,您需要到Message Service中接收查看訊息。在Message Service控制台中建立隊列及接收訊息的詳細操作,請參見隊列操作。
HTTP回調與輕量訊息佇列(原MNS)回調對比
對比項 | HTTP回調 | 輕量訊息佇列(原MNS)回調(推薦) |
可靠性 | 若您的HTTP訊息接收服務存在異常(崩潰或重啟),則訊息可能會丟失。 | 更為可靠,只要配置正常,訊息回調幾乎都能成功。 |
安全性 | HTTP方式都可回調該地址,但可配合回調鑒權過濾非法請求,以增強安全性。 如何配置,請參見HTTP回調鑒權。 | 由於僅授權方能讀寫訊息佇列,安全性更高。 |
便捷性 | 接入更為方便,只需簡單部署訊息接收服務。 | 需要額外開通和配置Simple Message Queue (formerly MNS),並且需要開發和部署消費訊息的程式。 |
回調協議
回調內容公用參數
參數名稱 | 類型 | 描述 |
EventTime | String | 事件產生時間, 為UTC時間:yyyy-MM-ddTHH:mm:ssZ。 |
EventType | String | 事件類型。 |
VideoId | String | 視頻ID。 |
Status | String | 處理狀態,取值:
|
Extend | String | 在上傳或提交作業介面中,指定UserData;並且若裡麵包含Extend欄位,會在事件完成回調時透傳返回使用者自訂資料,最大長度512位元組。 |
回調判斷與重試
HTTP回調
點播服務發起HTTP回調時,若回調接收服務響應的HTTP狀態代碼為200即視為回調成功;響應狀態代碼不為200,或是回應時間超過5秒出現逾時,都視為回調失敗。點播服務會忽略響應的包體內容,僅以HTTP狀態代碼為準。
若由於配置異常(比如您的回調地址錯誤、訊息接收服務異常等),導致訊息回調失敗,點播服務會繼續重試回調2次,即總共最多回調3次;超過後會丟棄。
Simple Message Queue (formerly MNS)回調
點播服務發起Simple Message Queue (formerly MNS)回調時,只要訊息寫入Simple Message Queue (formerly MNS)成功即視為回調成功,否則為失敗。
若由於配置異常(比如未授權點播服務訪問、隊列地址不是公網或隊列名稱不對等),導致訊息寫入Simple Message Queue (formerly MNS)失敗,點播服務會繼續重試2次,即總共最多回調3次;超過後會丟棄。
點播服務在回調失敗後會間隔1秒再次發起重試,若總共3次回調仍失敗則會丟棄該訊息;如要確保可靠通知,建議使用Simple Message Queue (formerly MNS)回調,其可靠性更高,只要配置正常,幾乎能確保訊息回調成功。
回調配置
HTTP和MNS回調的配置流程有所差異,均支援通過ApsaraVideo for VOD控制台和API/SDK的方式配置。詳細的配置流程及使用限制請參見如何使用和如何使用。
事件類型
點播目前支援的事件通知類型如下:
事件類型 | 參考文檔 |
FileUploadComplete | |
ImageUploadComplete | |
StreamTranscodeComplete | |
TranscodeComplete | |
SnapshotComplete | |
DynamicImageComplete | |
AddLiveRecordVideoComplete | |
LiveRecordVideoComposeStart | |
UploadByURLComplete | |
UploadByURLComplete | |
CreateAuditComplete | |
VideoAnalysisComplete | |
UpdateMediaStorageClassComplete | |
RestoreMediaComplete | |
AttachedMediaUploadComplete | |
ProduceMediaComplete | |
DeleteMediaComplete | |
MediaBaseChangeComplete | |
SubmitMediaRefreshComplete |
常見問題
使用過程中遇到問題時(例如:如何從回調中擷取到HTTPS地址?如何?多回調地址?),請參見事件通知常見問題。