Cloud Notifications 常见问题解答

常见问题

什么是 Oracle Cloud Infrastructure Notifications 服务?

Oracle Cloud Infrastructure Notifications 是一个完全托管的发布-订阅服务,可用于大规模地向大量订阅端点推送消息。Notifications 支持基于推送将通知传递到电子邮件、PagerDuty、Functions、HTTPS、Slack 和 SMS 端点,并提供对 Oracle Cloud Infrastructure Monitoring 和 Service Connector Hub 的一体化支持。

该服务适用于什么场景?

Notifications 的常见使用场景是支持 Monitoring 发送消息,以及支持 Service Connector Hub 发送应用预警。例如,您可以配置 Oracle Cloud Infrastructure Monitoring 告警,向某个主题发送通知。如果您通过电子邮件或 PagerDuty 订阅了该主题,那么当云基础设施中出现相关的异常情况时,您就会立即收到通知。另外,您还可以采用电子邮件协议集成的实施方案,让 Notifications 替您的服务向指定的订阅用户发送消息。对于密码重置、日历提醒甚至购物车提醒等其它用例,Notifications 还支持各种主流协议和第三方集成,从而提供解耦服务的灵活性。

Oracle Cloud Infrastructure Notifications 是如何工作的?

Notifications 使用发布-订阅框架,该框架将消息的发布者与消息的订阅者解耦开来。您可以使用主题和订阅来设置用于发布消息的通信渠道。主题是用于将消息传达给订阅的渠道。订阅是某个受支持协议的端点。在向某个主题发布一条消息后,通知服务会将该消息发送给该主题的所有订阅。

如何着手使用 Notifications?

您可以通过控制台(浏览器式界面)、REST API 或 CLI 访问 Notifications 服务。有关可用 SDK 的列表,请参阅软件开发工具包和命令行界面

Notifications 与 Oracle Cloud Infrastructure 中提供的其它消息传递服务有何不同?

Oracle Cloud Infrastructure 提供以下消息传递服务来传递事件:

  • 流处理
  • Notifications

这两种服务尽管存在一些相似之处,但它们适用于不同的使用场景:

  • Notifications 的常见使用场景是向已注册和关注的订阅用户发送通知,用于反应式编程。该服务使用“推送”模式发送通知,能够消除定期轮询更新的开销。
  • Streaming 的常见使用场景是摄取大量连续数据,并让其立即可供使用。Streaming 服务有助于摄取、保留和快速重播流数据。与 Notifications 不同的是,Streaming 允许重复播放存储的数据。

主要概念

什么是主题?

主题是用于将消息传达给订阅的渠道。

什么是订阅?

订阅是主题的端点。发布的消息将发送至特定主题的每个订阅。目前支持以下订阅协议:

  • 电子邮件:将消息发送到指定的电子邮件地址。
  • HTTPS (PagerDuty):将消息发送到 PagerDuty。
  • HTTPS (Webhook):将消息发送到 HTTPS 端点。
  • Slack:将消息发送到 Slack 频道
  • Oracle Functions:调用 Oracle Function
  • SMS:将消息发送到支持 SMS 的电话号码

什么是消息?

发布到主题的内容。每条消息将至少向每个订阅传送一次。以电子邮件形式发送的每条消息必须包含用于退订相关主题的链接。

特性与功能

Notifications 支持哪些特性?

  • 多端点集成和消息传递协议支持(例如电子邮件和 PagerDuty)
  • 可通过完全托管的服务进行扩展,以确保消息的持久性
  • 通过智能重试逻辑确保至少成功传送一次
  • 为 Identity and Access Management 提供安全支持
  • 订阅管理

该服务目前支持哪些通知协议?

Notifications 支持电子邮件、PagerDuty、Functions、HTTPS、Slack 和 SMS。

Notifications 支持哪些 API 操作?可以在哪里找到相关文档?

该服务支持以下操作,此处提供了更多说明文档:

  • 使用以下 API 操作管理主题:
操作 说明
createTopic 在指定隔间中创建主题。
getTopic 获取指定主题的配置信息。
listTopics 列出指定隔间中的主题。
updateTopic 更新指定主题的配置。
deleteTopic 删除指定主题。
  • 使用以下 API 操作管理订阅:
操作 说明
createSubscription 为指定主题创建订阅。
deleteSubscription 删除指定的订阅。
listSubscriptions 列出指定隔间或主题中的订阅。
getSubscription 获取指定订阅的配置信息。
updateSubscription 更新指定订阅的配置。
getConfirmSubscription 获取指定订阅的确认详情。
resendSubscriptionConfirmation 重新发送指定订阅的确认详情。
getSubscription 获取指定订阅的退订详情。
  • 使用以下 API 操作发布消息:
操作 说明
publishMessage 将消息发布到指定主题。

消息发布到某个主题后的持久性如何?

发布到特定 Notifications 主题的所有消息都将在相应区域中持久存在。消息发布到特定主题后,系统在向消息发布者发送确认之前,会将该消息同步复制到相同区域内的三个可用性域中。

Notifications 是否会保留消息?

如果订阅者的端点没有确认收到消息,那么该服务目前最长会在向特定主题发布消息后两小时内保留该消息,并在此保留时段内尝试重新传递消息。

Notifications 是否会丢弃已达到最长保留时间的消息?

可以。Notifications 会丢弃已达到最长保留时间(即两小时)的消息,无论该消息是否已成功传递。

接收器会收到多少次通知?

Notifications 至少会向订阅端点传递一次消息。在这种实施方式下,可能会偶尔重复传递消息,因此建议让接收器处理任何重复通知。

是否可以通过一个主题向多个端点发布相同消息?

您可以配置 Notifications,使其将消息发送到一个主题的多个端点。例如,您可以将某个 Oracle Cloud Infrastructure Monitoring 告警同时发送到特定的电子邮件地址和/或 PagerDuty 端点。

消息的传递顺序是否与发布至主题的顺序完全一致?

Notifications 将按发布者向主题发布消息的顺序来传送消息。但是,由于网络分区的性质、互联网连接的稳定性以及瞬时失败等因素,Notifications 可能不按此顺序传送消息。

订阅用户是否可以选择只接收发布至某个主题的部分消息?

目前,该服务会将发布到某个主题的所有消息全部传送给该主题的所有订阅端点。订阅用户无法选择性地订阅部分消息。

是否可以删除已发布到某个主题的消息?

您无法删除已发布到某个 Notifications 主题的消息。

是否可以更改 Notifications 发送的电子邮件的主题和发件人姓名?

您可以通过 PublishMessage API 操作将主题作为参数传递给消息,以此更改消息的主题行。您目前无法更改 Notifications 发送的电子邮件的默认发件人姓名。

操作与故障排除

我可以使用哪些指标来监视 Notifications?

  • 您可以使用以下主要指标:
指标名称 说明
已发布消息数 发布到 Notifications 的消息数量。
已传递消息数 成功传递的消息数量。
传递失败消息数 传递失败的消息数量。
已发布消息大小(字节) 已发布消息的总字节数。
已传递消息大小(字节) 成功传递的消息的总字节数。
传递失败消息大小(字节) 传递失败的消息的总字节数。

如何了解传递失败的通知?

您可以通过 Monitoring 服务配置 NumberOfNotificationFailed 指标告警。如需了解更多信息,请点击此处

如果将消息发布到没有任何订阅的主题,会怎样?

发布操作会成功,但是由于没有任何订阅关注该消息,该消息会被丢弃。

Notifications 是否会保留消息?

如果订阅者的端点没有确认收到消息,那么该服务目前最长会在向特定主题发布消息后两小时内保留该消息,并在此保留时段内尝试重新传递消息。

如果消息无法送达订阅用户,会怎样?

如果没有收到来自订阅端点的确认,那么 Notifications 会在最长两小时内持续尝试重新传递消息。端点脱机时便可能发生这种情况。例如,PagerDuty 服务可能处于脱机状态。

安全

谁可以创建主题?

默认情况下,只有 Oracle Cloud Infrastructure 租户的管理员有权创建主题。但是,租户管理员可通过授权和实施策略来允许其他用户组创建主题。有关详细信息,请参阅策略快速入门。有关针对不同的服务编写策略的具体说明,请参阅策略参考。有关如何利用常用策略为用户组提供 Notifications 访问权限的信息,请参阅允许用户组管理主题允许用户组管理主题订阅,以及允许用户组向主题发布消息

谁可以向主题发布消息?

默认情况下,只有主题所有者有权向主题发布消息,但是该角色可以向其他 Oracle Cloud Infrastructure 用户提供此授权。请参阅允许用户组向主题发布消息

多个发布者是否可以向同一个主题发布消息?

主题所有者可通过明确授权来允许多个用户或租户向主题发布消息。默认情况下,只有主题所有者有权向主题发布消息。如需调整策略,请参阅允许用户组向主题发布消息

谁可以订阅主题?

租户管理员或主题所有者有权为主题添加订阅用户。有关更多信息,请参阅通知策略管理订阅

主题所有者如何向订阅用户授权?

主题所有者可以向订阅用户授予主题的订阅权限。有关更多信息,请参阅通知发布的常用策略

谁可以确认或拒绝订阅?

对于电子邮件,订阅用户在被添加到订阅清单后将收到订阅确认 URL。有关订阅确认和重新发送确认详情的更多帮助信息,请点击此处

Notifications 如何确保发布者无法向订阅端点发送垃圾消息,并且仅将消息发送给已注册和关注的有效订阅用户?

为了避免订阅端点收到垃圾消息,并确保仅将消息传递到有效的已注册端点,Notifications 将要求订阅用户明确表示订阅该主题。

  1. 租户管理员或主题所有者添加端点用户后,Notifications 即会向该订阅用户发送确认消息。
  2. 订阅用户在端点收到确认消息后,需要发送有效回复来确认订阅请求。只有经过这样的确认流程后,Notifications 才会认为订阅请求有效。如果端点没有提供回复,那么该服务就不会向该端点发送任何通知。

Notifications 如何对 API 调用进行身份验证?

Notifications 通过集成 Oracle Cloud Infrastructure Identity and Access Management (IAM) 服务来实现身份验证,请点击此处了解更多信息。

订阅用户如何退订消息?

订阅用户可以通过以下方式退订 Notifications 主题:

  • 通过控制台或使用 DeleteSubscription API 操作
  • 通过 Notifications 发送的电子邮件正文中的“退订”选项(仅适用于电子邮件订阅用户)

限制和局限

Notifications 服务有哪些限制?

  • 请注意,Notifications 限额是在区域级设置的。
资源 月度通用储值 即用即付或促销
主题 每个租户 50 个(激活或创建*) 联系我们
订阅 每个主题 10 个(激活或待用*)
每个租户 100 个(待用*)
联系我们
要获得更多主题/订阅,请联系我们提高限额。
  • 其它限制如下:
请求限制
项目 大小
每个请求的消息大小 64 Kb
消息传递速率限制
协议 每分钟向单个端点发送的消息数
电子邮件 60
HTTPS (PagerDuty) 10

Notifications 如何计费?

Notifications 采用简单、直观的定价模式。客户将按消息传递量付费。对于 HTTPS,每月每百万次消息传送的费用是 0.60 美元。对于电子邮件消息,每月每千封电子邮件传递的费用是 0.02 美元。对于短信,客户按短信数支付,具体取决于目的地国家/地区。

Notifications 是否提供免费套餐?

Notifications 免费向 Oracle Cloud Infrastructure 客户提供快速入门套餐。客户每月可以免费将 100 万条消息传递到 HTTPS 端点,以及发送 1000 封电子邮件。

后续步骤

如果没有收到来自订阅端点的确认,那么 Notifications 会在最长两小时内持续尝试重新传递消息。端点脱机时便可能发生这种情况。例如,PagerDuty 服务可能处于脱机状态。

注:为免疑义,本网页所用以下术语专指以下含义:

  1. Oracle专指Oracle境外公司而非甲骨文中国。
  2. 相关Cloud或云术语均指代Oracle境外公司提供的云技术或其解决方案。