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 还支持各种主流协议和第三方集成,从而提供解耦服务的灵活性。
Notifications 使用发布-订阅框架,该框架将消息的发布者与消息的订阅者解耦开来。您可以使用主题和订阅来设置用于发布消息的通信渠道。主题是用于将消息传达给订阅的渠道。订阅是某个受支持协议的端点。在向某个主题发布一条消息后,通知服务会将该消息发送给该主题的所有订阅。
您可以通过控制台(浏览器式界面)、REST API 或 CLI 访问 Notifications 服务。有关可用 SDK 的列表,请参阅软件开发工具包和命令行界面。
Oracle Cloud Infrastructure 提供以下消息传递服务来传递事件:
这两种服务尽管存在一些相似之处,但它们适用于不同的使用场景:
主题是用于将消息传达给订阅的渠道。
订阅是主题的端点。发布的消息将发送至特定主题的每个订阅。目前支持以下订阅协议:
发布到主题的内容。每条消息将至少向每个订阅传送一次。以电子邮件形式发送的每条消息必须包含用于退订相关主题的链接。
Notifications 支持电子邮件、PagerDuty、Functions、HTTPS、Slack 和 SMS。
该服务支持以下操作,此处提供了更多说明文档:
操作 | 说明 |
---|---|
createTopic | 在指定隔间中创建主题。 |
getTopic | 获取指定主题的配置信息。 |
listTopics | 列出指定隔间中的主题。 |
updateTopic | 更新指定主题的配置。 |
deleteTopic | 删除指定主题。 |
操作 | 说明 |
---|---|
createSubscription | 为指定主题创建订阅。 |
deleteSubscription | 删除指定的订阅。 |
listSubscriptions | 列出指定隔间或主题中的订阅。 |
getSubscription | 获取指定订阅的配置信息。 |
updateSubscription | 更新指定订阅的配置。 |
getConfirmSubscription | 获取指定订阅的确认详情。 |
resendSubscriptionConfirmation | 重新发送指定订阅的确认详情。 |
getSubscription | 获取指定订阅的退订详情。 |
操作 | 说明 |
---|---|
publishMessage | 将消息发布到指定主题。 |
发布到特定 Notifications 主题的所有消息都将在相应区域中持久存在。消息发布到特定主题后,系统在向消息发布者发送确认之前,会将该消息同步复制到相同区域内的三个可用性域中。
如果订阅者的端点没有确认收到消息,那么该服务目前最长会在向特定主题发布消息后两小时内保留该消息,并在此保留时段内尝试重新传递消息。
可以。Notifications 会丢弃已达到最长保留时间(即两小时)的消息,无论该消息是否已成功传递。
Notifications 至少会向订阅端点传递一次消息。在这种实施方式下,可能会偶尔重复传递消息,因此建议让接收器处理任何重复通知。
您可以配置 Notifications,使其将消息发送到一个主题的多个端点。例如,您可以将某个 Oracle Cloud Infrastructure Monitoring 告警同时发送到特定的电子邮件地址和/或 PagerDuty 端点。
Notifications 将按发布者向主题发布消息的顺序来传送消息。但是,由于网络分区的性质、互联网连接的稳定性以及瞬时失败等因素,Notifications 可能不按此顺序传送消息。
目前,该服务会将发布到某个主题的所有消息全部传送给该主题的所有订阅端点。订阅用户无法选择性地订阅部分消息。
您无法删除已发布到某个 Notifications 主题的消息。
您可以通过 PublishMessage API 操作将主题作为参数传递给消息,以此更改消息的主题行。您目前无法更改 Notifications 发送的电子邮件的默认发件人姓名。
指标名称 | 说明 |
---|---|
已发布消息数 | 发布到 Notifications 的消息数量。 |
已传递消息数 | 成功传递的消息数量。 |
传递失败消息数 | 传递失败的消息数量。 |
已发布消息大小(字节) | 已发布消息的总字节数。 |
已传递消息大小(字节) | 成功传递的消息的总字节数。 |
传递失败消息大小(字节) | 传递失败的消息的总字节数。 |
您可以通过 Monitoring 服务配置 NumberOfNotificationFailed 指标告警。如需了解更多信息,请点击此处。
发布操作会成功,但是由于没有任何订阅关注该消息,该消息会被丢弃。
如果订阅者的端点没有确认收到消息,那么该服务目前最长会在向特定主题发布消息后两小时内保留该消息,并在此保留时段内尝试重新传递消息。
如果没有收到来自订阅端点的确认,那么 Notifications 会在最长两小时内持续尝试重新传递消息。端点脱机时便可能发生这种情况。例如,PagerDuty 服务可能处于脱机状态。
默认情况下,只有 Oracle Cloud Infrastructure 租户的管理员有权创建主题。但是,租户管理员可通过授权和实施策略来允许其他用户组创建主题。有关详细信息,请参阅策略快速入门。有关针对不同的服务编写策略的具体说明,请参阅策略参考。有关如何利用常用策略为用户组提供 Notifications 访问权限的信息,请参阅允许用户组管理主题、允许用户组管理主题订阅,以及允许用户组向主题发布消息。
默认情况下,只有主题所有者有权向主题发布消息,但是该角色可以向其他 Oracle Cloud Infrastructure 用户提供此授权。请参阅允许用户组向主题发布消息。
主题所有者可通过明确授权来允许多个用户或租户向主题发布消息。默认情况下,只有主题所有者有权向主题发布消息。如需调整策略,请参阅允许用户组向主题发布消息。
租户管理员或主题所有者有权为主题添加订阅用户。有关更多信息,请参阅通知策略和管理订阅。
主题所有者可以向订阅用户授予主题的订阅权限。有关更多信息,请参阅通知发布的常用策略。
对于电子邮件,订阅用户在被添加到订阅清单后将收到订阅确认 URL。有关订阅确认和重新发送确认详情的更多帮助信息,请点击此处。
为了避免订阅端点收到垃圾消息,并确保仅将消息传递到有效的已注册端点,Notifications 将要求订阅用户明确表示订阅该主题。
Notifications 通过集成 Oracle Cloud Infrastructure Identity and Access Management (IAM) 服务来实现身份验证,请点击此处了解更多信息。
订阅用户可以通过以下方式退订 Notifications 主题:
项目 | 大小 |
---|---|
每个请求的消息大小 | 64 Kb |
协议 | 每分钟向单个端点发送的消息数 |
---|---|
电子邮件 | 60 |
HTTPS (PagerDuty) | 10 |
Notifications 采用简单、直观的定价模式。客户将按消息传递量付费。对于 HTTPS,每月每百万次消息传送的费用是 0.60 美元。对于电子邮件消息,每月每千封电子邮件传递的费用是 0.02 美元。对于短信,客户按短信数支付,具体取决于目的地国家/地区。
Notifications 免费向 Oracle Cloud Infrastructure 客户提供快速入门套餐。客户每月可以免费将 100 万条消息传递到 HTTPS 端点,以及发送 1000 封电子邮件。
如果没有收到来自订阅端点的确认,那么 Notifications 会在最长两小时内持续尝试重新传递消息。端点脱机时便可能发生这种情况。例如,PagerDuty 服务可能处于脱机状态。
注:为免疑义,本网页所用以下术语专指以下含义: