文档首页> > 快速入门> 如何发布主题消息

如何发布主题消息

分享
更新时间: 2019/07/08 12:07

在熟悉了SMN的基本概念之后,您可以通过消息通知服务的管理控制台进行基本主题订阅操作;同时您还可以直接在应用程序中进行RESTful API调用执行相应的操作。。

通过主题发布消息的流程图如图1所示。

图1 发布主题消息流程

操作场景

假设某公司定期举行展览会,需要邀请相关人员参加,此时消息内容不变,仅需更改日期。这种场景的特性是:用户发送的通知消息中,大部分内容是固定的,只有少数内容随着每次事件指标变化而变化。针对这种需求,用户可以创建一个消息模板,在模板中,用模板变量代替变化的内容,每次通知时,选择消息模板并设置模板变量值便可完成特定的消息通知。

步骤1 创建主题

  1. 登录管理控制台。
  2. 在管理控制台左上角单击图标,选择区域和项目。
  3. 选择“应用服务” > “消息通知服务”。

    进入消息通知服务页面。

  4. 在左侧导航栏,选择“主题管理” > “主题”。

    进入主题页面。

  5. 在主题页面,单击“创建主题”,开始创建主题。

    此时将显示“创建主题”对话框。

    图2 创建主题
  6. 在“主题名称”框中,输入主题名称,在“显示名”框中输入相关描述,如表1所示。
    表1 创建主题参数说明

    参数

    说明

    主题名称

    创建的主题名称,用户可自定义名称,规范如下:

    • 只能包含字母,数字,短横线(-)和下划线(_),且必须由大写字母、小写字母或数字开头。
    • 名称长度限制在1-255字符之间。
    • 主题名称为主题的唯一标识,一旦创建后不能再修改主题名称。

    显示名

    显示名,长度限制在192字节或64个中文字。

    说明:

    推送邮件消息时,若未设置主题的显示名,发件人呈现为“username@example.com”,若已设置主题的显示名,发件人则呈现为“显示名<username@example.com>”。

    标签

    标签由标签“键”和标签“值”组成,用于标识云资源,可对云资源进行分类和搜索。

    • 键的长度最大36字符,值的长度最大43字符。不能包含“=”、“*”、“<”、“>”、“\”、“,”、“|”、“/”,且首尾字符不能为空格。
    • 每个主题最多可创建10个标签。
  7. 单击“确定”,主题创建成功。新创建的主题将显示在主题列表中。

    主题创建成功后,系统会自动生成主题URN,主题URN是主题的唯一资源标识,不可修改。新创建的主题将显示在主题列表中。

  8. 单击主题名称,可查看主题详情(包含主题URN、显示名等)、主题订阅总数。
    图3 主题详情和主题订阅总数

步骤2 添加订阅

  1. 登录管理控制台。
  2. 在管理控制台左上角单击图标,选择区域和项目。
  3. 选择“应用服务” > “消息通知服务”。

    进入消息通知服务页面。

  4. 在左侧导航栏,选择“主题管理” >“订阅”。
  5. 在订阅页面。单击“添加订阅”,开始添加消息订阅。

    此时将显示“添加订阅”页面。

    图4 添加订阅
  6. 向指定主题添加订阅。

    单击“主题名称”输入框右侧的,在弹出的选择主题对话框中选择主题。

    在“协议”下拉框中选择订阅终端支持的协议,在“订阅终端”输入框中输入对应的订阅终端,填写说明如 表2所示。
    表2 添加订阅参数说明

    参数

    说明

    主题名称

    在弹出的对话框中选择的主题的名称。

    协议

    在下拉框中选择需要订阅终端支持的协议,提供的选项为“短信”、“邮件”、“HTTP”、“HTTPS”、“FunctionGraph(函数)”、“Functiongraph(工作流)”、“Application”以及“DMS”。

    订阅终端

    订阅的终端地址,短信、邮件、Application、HTTP以及HTTPS终端支持批量输入,批量添加时,每个终端地址占一行。最多可输入10个终端。

    • 选择“短信”终端,请输入有效手机号码。

      输入规则为[+] [国家码][手机号码]。国内手机号码可省略[+]或[+] [国家码]。

      例如:

      +8600000000000

      +8600000000001

    • 选择“邮件”终端,请输入有效电子邮件地址。

      例如:

      username@example.com

      username2@example.com

    • 选择“HTTP”或“HTTPS”终端,请输入公网网址。

      例如:

      http://example.com/notification/action

      http://example2.com/notification/action

    • 选择“FunctionGraph(函数)”终端,表示订阅终端是一个函数,单击输入框右侧的选择订阅终端,在“版本”的下拉框中选择可用版本。
    • 选择“Functiongraph(工作流)”终端,表示订阅终端是一组函数编排成的工作流,单击输入框右侧的选择订阅终端。
    • 选择“DMS”终端,表示订阅终端是一个消息队列,单击输入框右侧的选择订阅终端。选择DMS队列时,需要在队列策略中给SMN服务授权“ProduceMessages”权限,具体操作请参考《分布式消息服务用户指南》中的策略管理
    • 选择“Application”终端,表示订阅终端是平台应用的终端。

      您需在平台应用的应用详情中获取终端的URN,在输入框中输入终端URN。

  7. 单击“确定”。

    新增订阅将显示在页面下方的订阅列表中。

    说明:
    • 为了防止恶意攻击订阅终端,我们会对订阅终端进行流控保护,触发流控规则后,消息通知服务不再发送订阅确认消息,具体的保护规则请参见《消息通知服务用户指南》的附录“订阅确认流控说明”部分。
    • 消息通知服务不会校验订阅终端是否真实存在。
    • 由于token在48小时内有效,所以订阅确认的链接在48小时内有效。

步骤3 创建模板

  1. 登录管理控制台。
  2. 在管理控制台左上角单击图标,选择区域和项目。
  3. 选择“应用服务” > “消息通知服务”。

    进入消息通知服务页面。

  4. 在左侧导航栏,选择“主题管理” >“消息模板”。
  5. 在消息模板页面。单击“创建消息模板”,开始创建消息模板。

    此时将显示“创建消息模板”页面。

    图5 创建消息模板
  6. 在“模板名称”框中,输入模板名称,选择所使用的“协议”,在“模板内容”框中输入模板内容,参数说明如表3所示。
    表3 创建消息模板参数说明

    参数

    说明

    模板名称

    创建的模板名称,用户可自定义名称,规范如下:

    • 只能包含字母,数字,短横线(-)和下划线(_),只能以字母或数字开头。
    • 名称长度限制在1-64字节之间。
    • 一旦创建后不能再修改。

    协议

    设置选择该模板推送消息时的接收终端类型,模板一旦选定不能再修改。

    取值范围为:Default、短信、HTTP、HTTPS、FunctionGraph(函数)、Functiongraph(工作流)、DMS和邮件。

    协议默认为“Default”。如果用户不选择协议,则使用默认值。

    模板内容

    用户可自定义模板内容。

    请以{tag}作为占位符创建模板,在使用该模板发送消息时,{tag}可以被替换成具体内容。tag只能包含大写字母、小写字母、数字、-、_和.,且必须由大写字母、小写字母或数字开头。长度最长21个字符。

    模板内容具体规则如下:

    • 模板内容仅支持纯文本格式。
    • 模板内容不能为空。
    • 模板内容大小至多为256KB。
    • 模板内容中允许最多90个(不重复的)标签和256个(计算重复的)标签。
    • 发送消息时,每个标签允许的值大小为1KB.
    例如使用以下信息创建模板
    • 模板名称:“tem_001”
    • 协议:“Default”
    • 模板内容:“The Arts and Crafts Exposition will be held from {startdate} through {enddate}. We sincerely invite you to join us. ”

  7. 单击“确定”。

    新创建的模板会显示在页面下方模板列表中。

步骤4 发布模板消息

  1. 登录管理控制台。
  2. 在管理控制台左上角单击图标,选择区域和项目。
  3. 选择“应用服务” > “消息通知服务”。

    进入消息通知服务页面。

  4. 在左侧导航栏,选择“主题管理” > “主题”。

    进入主题页面。

  5. 在主题列表中,选择您要向其发布消息的主题,在右侧“操作”栏单击“发布消息”。
  6. 在弹出的发布消息对话框中,主题名称为已选择的需要发布消息的主题名称,不可修改。其它参数根据界面提示填写。

    此处“消息类型”选择“模板消息”,“消息内容”可以手动输入模板消息,也可以通过工具自动生成模板格式的消息。消息内容不能为空且大小不超过256KB。

    • 手动输入模板格式的消息,模板格式规范请参见《消息通知服务用户指南》的附录“模板格式消息说明”部分。
    • 通过工具自动生成模板格式的消息,请参见步骤7~10
  7. 单击“生成模板消息”。
  8. 在弹出的对话框中选择模板“tem_001”并在“Variables”页签中设置“Value”。
    系统自动将设置的值替换,其他内容则与模板内容保持一致。此处选择的模板名称下只有Default协议的模板,则该主题下所有已确认的订阅终端地址均可收到该模板消息。如 图6所示。
    图6 生成消息模板
  9. 选择“预览”页签,单击“替换后的模板内容”,预览模板消息。
    该条模板消息的消息内容为“The Arts and Crafts Exposition will be held from February 10 through February 21. We sincerely invite you to join us. ”,如 图7所示。
    图7 预览模板消息
  10. 单击“确定”。
    生成的消息内容显示模板名称和所有{tag}标签。如 图8所示。
    图8 模板消息范例
  11. 单击“确定”。

    消息将推送至不同的订阅终端。各个终端接收到的消息内容说明请参考《消息通知服务用户指南》的附录“不同协议消息说明”部分。

步骤5 接收模板消息

在订阅主题时,选择不同的订阅协议,订阅终端接收到的信息是不一样的。
  • 邮件协议

    订阅终端为邮箱。

    接收到的消息包含消息内容和取消订阅的链接。如图9所示。

    图9 邮件消息
  • HTTP/HTTPS协议

    订阅终端为公网网址。关于接收到的消息,详情请参见《消息通知服务用户指南》附录“HTTP(S)终端节点使用样例”部分。

  • 短信协议

    订阅终端为手机。

    接收到的消息只包含消息内容,如图10所示。

    图10 短信消息
  • FunctionGraph(函数)协议

    订阅终端是一个函数。查看接收消息,请参见《函数服务用户指南》中的使用SMN触发器

  • 选择FunctionGraph(工作流)协议

    订阅终端是一组函数编排成的工作流。关于接收消息的具体内容请参见《函数工作流用户指南》。

  • 选择DMS协议

    订阅终端是消息队列。

    消息队列中不会显示消息的具体内容。您可进入分布式消息服务管理控制台,在相应的消息队列查看“消息数”,如图图11所示,主题消息发布后,消息数会递增。

    图11 接收消息

如果您喜欢这篇文档,您还可以:

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区