本文为您介绍MNS回调事件通知的回调机制、使用流程等信息。
背景信息
阿里云消息服务MNS(Message Service)是一种高效、可靠、安全、便捷、可弹性扩展的分布式消息服务。MNS提供了队列模型,支持多个生产者和消费者并发访问同一个队列,并能确保某条消息在取出之后的特定时间段内,无法被其他消费者获得。消息被消费后一段时间内不可见,需要用户主动删除,否则该消息会被再次消费。视频点播服务VOD支持通过消息服务MNS来接收点播的回调信息。更多有关消息服务MNS的详细介绍,请参见什么是消息服务MNS。
MNS回调机制
您需要在消息服务MNS中创建队列,并在视频点播中配置相应回调。
当事件产生时,视频点播服务会将事件通知内容写入到消息服务MNS的消息队列中。
只要视频点播服务将消息写入MNS队列成功即视为回调成功,否则视为回调失败。若因配置错误(未授权点播服务访问MNS、Endpoint不是公网、队列名称不正确等原因)导致写入消息失败,视频点播服务会继续重试回调2次,即总共最多回调3次,3次回调都失败则会丢弃该消息。详细的回调判断与重试逻辑请参见回调判断与重试。
回调成功后,您需要主动在消息服务中去接收消息,从接收的消息中查看事件通知的内容。而仅当消息被接收消费后,您才能删除该消息。当消息被消费后一段时间内不可见,需要您主动删除,否则该消息会被再次消费。
MNS回调使用方法
前提条件
您已经注册了阿里云账号并完成账号实名认证。注册地址请参见阿里云官网。注册指引请参见注册阿里云账号。实名认证指引请参见个人实名认证或企业实名认证。
您已经开通了视频点播服务。开通步骤请参见开通视频点播服务。
您已经开通了消息服务MNS。开通步骤请参见开通消息服务MNS并授权。
使用限制
视频点播服务支持多个存储地域,各存储地域之间事件通知的配置是相互独立的,即每个地域可以单独配置事件通知的回调方式和回调地址。您可以上传视频到不同地域的存储中,当视频处理(如上传、转码等)完成后,视频点播服务会根据存储地域配置的回调及时通知您,并将内容推送到您的MNS服务的队列中。
推荐您按下述建议配置MNS消息队列的回调地域:
如果视频保存在中国内地地域(如华北2、华东2等),建议使用华东2(上海)地域的队列,推送消息到非华东2(上海)地域的队列会存在较短时间的延迟。
如果视频保存在其他地域(如新加坡、日本等),建议创建或使用相应地域的消息队列。
例如:视频存储地域为新加坡,则应创建或使用新加坡地域的消息队列。
使用流程
授权视频点播服务VOD访问消息服务MNS。
可通过以下两种方式进行授权:
方式一:直接授予VOD对您云资源相应的访问权限,包含OSS、MNS、CDN以及KMS的部分权限。
方式二:给VOD服务的用户、用户组或角色授予消息服务(MNS)的访问权限。
将系统策略中的AliyunMNSFullAccess(管理消息服务(MNS)的权限)或AliyunMNSReadOnlyAccess(管理消息服务(MNS)的权限)添加至授权策略中,详细操作请参见创建RAM用户并授权。
在消息服务MNS中创建队列。
在视频点播服务中配置MNS回调方式的事件通知。
在视频点播服务中配置回调的队列、按需选择配置相应类型的事件通知,视频点播支持的事件通知类型及各事件通知含义请参见事件列表。
视频点播支持通过控制台或API/SDK的方式配置事件通知,具体配置方法如下:
控制台方式
登录视频点播控制台,在左侧导航栏选择 ,进入回调设置页面,配置回调的区域及队列并勾选需要回调的事件。详细操作请参见回调设置。
说明控制台方式设置的回调为针对视频点播服务全局的配置。
勾选视频AI处理完成后,所有的AI事件如AIMediaAuditComplete、AIMediaDNAComplete、AIVideoTagComplete等完成后都会触发通知。
API/SDK方式
调用SetMessageCallback - 设置事件通知配置接口,请求参数
CallbackType
指定为MNS
,并配置EventTypeList
(回调事件类型)、MnsEndpoint
(消息队列公网Endpoint)、MnsQueueName
(消息队列名称)等其他参数。
触发回调事件。
完成事件通知配置后,您可以在视频点播服务中执行上传媒资文件(音/视频或图片),发起媒体处理(转码、截图等)等操作来触发相应的回调事件产生。
在消息服务MNS中查看消息。
可选:在消息服务MNS中删除消息。
SDK示例
消息服务MNS提供了多种语言的SDK供您使用,当回调配置完成后,您可以通过如下代码进行消费消息:
相关文档
有关HTTP回调与MNS回调的对比,请参见HTTP回调与MNS回调对比。
使用过程中遇到问题时,请参见事件通知常见问题。
- 本页导读 (1)