教程简介
- Tag: Amazon SNS
- 难度:初级
- 时间:30 分钟
- 费用:亚马逊云科技免费套餐配额
- 前提条件:
- 上次更新时间:2025 年 8 月 6 日
- 相关行业:通用
- 相关产品:Amazon SNS
教程目标
完成本教程后,您将能够:
- 理解 Amazon SNS 的“发布/订阅”模型。
- 成功创建一个 SNS 主题(Topic)作为消息中心。
- 将您的电子邮件地址作为订阅者(Subscriber)添加到主题中。
- 发布一条测试消息,并成功在您的邮箱中收到通知。
架构概览
我们将构建一个非常经典且强大的发布/订阅模型。任何应用或服务(发布者)都可以向我们的 SNS 主题发送消息,而所有订阅了这个主题的端点(比如我们的邮箱)都会收到这条消息。
准备工作
- 一个亚马逊云科技账户:本教程所有操作的前提。
- 一个可以接收邮件的电子邮箱:用于接收最终的通知。
第一步:创建您的 SNS 主题
全部打开“主题”是消息的中心枢纽,所有的消息都将发送到这里。
登录您的 AWS 管理控制台。在顶部的搜索框中输入 SNS 并回车,进入 Simple Notification Service 服务控制台。
- 在 SNS 控制台的左侧导航栏中,点击“主题 (Topics)”。
- 然后点击“创建主题 (Create topic)”按钮。
- 类型 (Type):在“标准 (Standard)”和“FIFO”之间,选择“标准 (Standard)”。对于大多数通知场景,标准主题提供了高吞吐量和最佳的性能。
- 名称 (Name):为您的主题取一个有意义的名称,例如 my-first-notification-topic。
- 保持其他设置默认,滚动到页面底部,点击“创建主题”。
页面会自动跳转到您刚刚创建的主题的详情页面。至此,您的消息中心已经建立完毕!
第二步:创建订阅
全部打开现在我们需要告诉 SNS 主题,当有消息来时,应该把消息发送到哪里。
在您的主题详情页面,您会看到一个“订阅 (Subscriptions)”标签页。下方有一个“创建订阅 (Create subscription)”按钮,点击它。
- 主题 ARN:这个字段会自动填充,无需修改。
- 协议 (Protocol):这里是 SNS 的强大之处,它支持多种通知方式。点击下拉菜单,选择“电子邮件 (Email)”。
- 端点 (Endpoint):在此输入您准备用来接收通知的电子邮件地址。请务必输入正确。
点击右下角的“创建订阅”按钮。
第三步:确认订阅(关键步骤)
全部打开为了防止垃圾邮件,SNS 需要确认您确实是该邮箱的所有者。
打开您刚刚填写的邮箱的收件箱。您会收到一封来自“AWS Notifications”的邮件,主题通常是 “AWS Notification - Subscription Confirmation”。
打开这封邮件,在邮件正文中,找到并点击“Confirm subscription”链接。
- 点击链接后,您的浏览器会打开一个显示“Subscription confirmed!”的页面。
- 现在,回到 AWS 控制台的订阅列表页面,刷新一下。您会看到该订阅的状态从“待确认 (Pending confirmation)”变为了“已确认 (Confirmed)”。
第四步:发布您的第一条测试消息
全部打开万事俱备,只欠东风。让我们来发送一条消息,看看效果如何!
- 在左侧导航栏回到“主题 (Topics)”列表,点击我们创建的 my-first-notification-topic。
- 在主题详情页的右上角,找到并点击“发布消息 (Publish message)”按钮。
- 主题 (Subject):输入邮件的标题,例如 Greetings from AWS。
- 消息正文 (Message body):输入您想发送的内容,例如 恭喜!您的第一个SNS通知系统已成功运行!
滚动到底部,点击“发布消息”。
第五步:在邮箱中验证通知
全部打开立刻检查您的邮箱收件箱!您应该已经收到了一封标题为“Greetings from AWS”的新邮件,内容正是您刚刚发布的信息。
总结
全部打开- 集成 CloudWatch 告警:当您的服务器CPU过高时,自动向这个 SNS 主题发消息,通知运维人员。
- 集成 Lambda 函数:当有新用户在您的应用注册时,调用 Lambda 函数向这个 SNS 主题发消息,发送欢迎邮件。
- 尝试其他协议:除了邮件,您还可以尝试使用 SMS(短信)或 SQS(消息队列)作为订阅端点。
恭喜您!您已经成功地搭建了一个功能完备的邮件通知系统。虽然这个例子很简单,但它为您打开了一扇通往自动化和事件驱动架构的大门。
接下来,您可以探索:
清理资源
全部打开- 在您的 SNS 主题详情页面,选中您创建的订阅,点击“删除”。
- 回到“主题”列表,选中您的主题,点击“删除”。
为了保持您的账户整洁,您可以删除本次教程创建的资源。