主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情! |
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作 |
文章目录
.extra-menu {背景颜色:#f3f3f3; .extra-menu .extra-menu-h {高度:36px; .extra-menu .extra-menu-h h3 { 显示:内嵌块; } .extra-menu ul a{ 文本装饰: 无; .extra-menu .menu-child { 文本缩进: 4em; .extra-menu .menu-child:before { 左: 4em } ; .extra-menu-h h3 { line-height: 36px; } .collapse-toggle { float: right; } 光标:用户选择:无。 显示:内联弯曲;对齐:中心; .collapse-toggle img {宽度:30%; .collapse-content { margin-bottom:0px ! 20px !重要;溢出:隐藏;最大高度:0;过渡:最大高度 0.3 秒缓出。 .collapse-content.expanded {max-height: 1000px; /* 设置足够大的值以允许内容完全展开 */ } .ph-id {position:relative; } jQuery(document).ready(function( $ ) { $('.collapse-toggle').on('click',function(){ var content = document.querySelector('.collapse -content'); content .classList.toggle('展开'); if (content.classList.contains('展开')) { $(this).find('div').text('折叠'); img').css('transform','rotate(180deg)'); } else { $(this).find('div').text('expand'); ).find('img').css ('变换','旋转(0度)');} }) })
Amazon SNS 是 AWS 推出的消息通知服务,包括发布/订阅、SMS 和移动推送功能。 这是一项完全托管的 Pub/Sub 服务,适用于 A2A 和 A2P 消息传递。 本文将主要介绍AWS SNS的主要功能和原理,以及创建教程。
< p id="1.什么是 Amazon SNS?"
1.什么是 Amazon SNS?
Amazon SNS(Amazon SNS) )是一个简单的通知服务,它在发布者和订阅者(也称为生产者和消费者)之间提供消息传递。 发布者通过向主题发送消息来与订阅者异步通信。 主题充当逻辑访问点和通信通道,允许客户订阅 Amazon SNS 主题并使用支持的终端节点类型接收已发布的消息。 这些终端节点包括 Amazon Data Firehose、SQS、AWS Lambda、HTTP、电子邮件、移动推送通知和短信 (SMS)。
Amazon SNS 目前每月提供 100 万个免费请求。 点击访问官方网站免费试用。
1. Amazon SNS 特性和功能
(1) 应用程序到应用程序消息传递
应用程序到应用程序消息传递使用 Amazon Data Firehose 传输流、Lambda 函数,支持Amazon SQS队列、HTTP等的多个订阅者。 /S 端点和 AWS 事件分支管道。
(2)应用程序和个人通知
应用程序和个人通知功能向订阅者提供用户通知,包括移动应用程序、手机号码和电子邮件地址。
(3) 标准和 FIFO 主题
FIFO 主题允许您保证消息的严格排序、定义消息组并防止消息重复。 您可以使用 FIFO 队列和标准队列来订阅 FIFO 主题。 如果发送消息的顺序和重复的可能性并不重要,我们建议使用标准主题。 所有支持的传输协议都可以订阅标准主题。
(4) 消息持久化
Amazon SNS 通过多种策略提供消息持久化。
已发布的消息存储在多个地理位置不同的位置。 服务器和数据中心之间。 如果订阅的终端节点不可用,Amazon SNS 会强制执行传输重试策略。 您可以创建死信队列来保存无法传递的消息,直到传递重试策略过期。
(5) 归档、重放和分析消息
Amazon SNS 提供多种归档消息的方法。 您可以将 Firehose 传输流订阅到 SNS 主题,以将通知发送到分析终端节点,例如 Amazon Simple Storage Service (Amazon S3) 存储桶和 Amazon Redshift 表。 此外,SNSFIFO 主题支持消息归档和重放。 允许主题所有者将消息保存(或存档)到主题,并允许订阅者检索(或播放)这些存档的消息。
(6) 消息属性
消息属性允许您在消息中提供以下信息。任何相关的元数据,以促进更灵活的信息处理。
(7)消息过滤
默认情况下,每个订阅者都会收到发布到该主题的所有消息。 如果您希望订阅者只接收部分消息,您可以为主题订阅分配过滤策略。 订阅者可以定义过滤策略的范围以启用基于负载或基于属性的过滤。
默认的过滤策略范围是消息属性。 如果接收到的消息的属性与过滤策略的属性匹配,则将消息发送到订阅端节点。 否则,该消息将被过滤。 当过滤策略的范围限定为消息正文时,过滤策略属性与负载匹配。
(8) 消息安全
服务器端加密使用 AWS KMS 提供的加密密钥来保护 Amazon SNS 主题中存储的消息内容。 您还可以在 Amazon SNS 和 Virtual Private Cloud (VPC) 之间建立私有连接以保护您的流量。
2. Amazon SNS 的工作原理
Amazon SNS 使用通知。有两种方式:应用程序到应用程序消息传递 (A2A) 和应用程序到个人消息传递 (A2P)。
A2A 功能可在分布式系统、微服务和事件驱动的无服务器应用程序(例如 Amazon Simple Queue Service (SQS)、Amazon Kinesis Data Firehose 和 AWS Lambda)之间实现高吞吐量、多对多消息传递。这成为可能。 其他 HTTPS 端点。
A2P 功能允许您通过短信、推送通知和电子邮件向客户发送消息。
(1) 发布/订阅
(2) 短信
(3) 移动推送
2.创建教程
AWS SNS 服务充当对多个端点进行分组的逻辑访问点和通信通道,例如 Amazon AWS Lambda、Amazon SQS、HTTP/S 或电子邮件地址。使用 AWS 管理控制台、适用于 Java 的 AWS 开发工具包或 AWS 可以非常轻松地为需要广播消息的多个服务(例如电子商务网站)创建主题。在使用适用于 .NET 的开发工具包时,请注意:创建主题时选择主题类型(标准或 FIFO),并且在主题创建过程中您无法随时更改主题类型或名称。其他配置选项是可选的,可以在稍后阶段再次编辑。 /p>
创建 AWS SNS 服务的步骤:
1. 登录 SNS 控制台
2. 执行以下操作之一:
如果您从未在 AWS 账户中创建过主题:请查看 SNS 主页上的说明。
如果您之前创建过主题,请在导航面板中选择主题。
>
3.在主题页面上,选择创建主题。
4. 在“创建主题”页面的“详细信息”部分中,执行以下操作:
在“类型”下选择主题类型(“标准”或“先进先出”)。
输入名称。 为了主题。 对于 FIFO 主题,将“.fifo”添加到名称末尾。
(可选)输入主题的显示名称。
注意:如果您订阅电子邮件终端节点,AWS SNS 主题的显示名称和发送电子邮件地址(例如,no-reply@sns.amazonaws.com)必须为 320 UTF- 必须不超过 8 个字符。 特点。 在设置 AWS SNS 主题的显示名称之前,我们建议您使用第三方编码工具检查发送地址的长度。
5. (可选)对于 FIFO 主题,您可以启用基于内容的消息重复数据删除。
6. (可选)展开加密部分并执行以下操作:
选择启用加密。 对于每种 KMS 类型,都会显示说明、账户 KMS ARN 和相关信息。 重要提示:如果您不是 KMS 所有者或您使用的账户没有“kms:ListAliases”和“kms:DescribeKey”权限,则您无法在 AWS SNS 控制台中查看与 KMS 相关的信息。 请务必获得 KMS 帐户所有者的批准。 获取相应的权限。
7. (可选)默认情况下,只有主题所有者可以发布或订阅主题。 要配置其他权限,请展开访问策略部分。
8. (可选)要配置 AWS SNS 如何重试失败的消息传输尝试,请展开传输重试策略 (HTTP/S) 部分。
9. (可选)配置 AWS SNS 如何将消息传输状态记录到 CloudWatch 并展开记录传输状态部分。
10.(可选)将元数据标签添加到主题,展开标签部分并输入键和值(如果需要)。选择添加标签。
11. 选择创建主题。
创建完成后,将显示主题已创建页面,并显示主题的名称、ARN(Amazon 资源名称)、(可选)显示名称,并且将显示主题所有者的 AWS 账户 ID。
例如,主题的 ARN 格式为:
arn:aws:sns:us-east-2:123456789012:MyTopic
3. 使用 AWS 开发工具包创建 AWS SNS 服务
以下代码示例演示如何使用 CreateTopic 。
1..NET
使用系统。
使用System.Threading.Tasks;
使用Amazon.SimpleNotificationService;
使用Amazon.SimpleNotificationService.Model;///
// / 以下是如何使用 Amazon Simple Notice Service
/// (Amazon SNS) 添加新 Amazon SNS 主题的示例。
///公共类CreateSNSTopic
{
公共静态异步任务Main()
{
string topicName = “ExampleSNSTopic”;IAmazonSimpleNotificationService client = new AmazonSimpleNotificationServiceClient();
var topicArn = wait CreateSNSTopicAsync(client, topicName);
Console.WriteLine($”New topic ARN: {topicArn}”);
}///
/// 使用指定主题创建一个新主题 Creates SNS 主题名称。
////// 用于创建新主题的初始化 SNS 客户端对象
///
/// 表示主题名称的字符串。
/// 创建的主题的 Amazon 资源名称 (ARN)。
公共静态异步任务 CreateSNSTopicAsync(IAmazonSimpleNotificationService 客户端,字符串 topicName)
{
var request = new CreateTopicRequest
{
Name = topicName,
};var response =等待client.CreateTopicAsync(request);
返回response.TopicArn;
}
}
2、C++
//!创建 Amazon SimpleNotice Service (Amazon SNS) 主题。
/*!
\param topicName:Amazon SNS 主题名称。
\param topicARNResult:返回主题的 Amazon 资源名称 (ARN) 的字符串。
\param clientConfiguration:AWS 客户端配置。
\return bool: 函数成功。
*/
bool AwsDoc::SNS::createTopic(const Aws: :String &topicName,
Aws::String &topicARNResult,
const Aws: :Client::ClientConfiguration &clientConfiguration) {
Aws::SNS::SNSClient snsClient(clientConfiguration);Aws::SNS::Model::CreateTopicRequest 请求;
request.SetName(topicName);const Aws::SNS::Model::CreateTopicOutcome 结果 = snsClient.CreateTopic(request);
if (outcome.IsSuccess()) {
topicARNResult = 结果.GetResult().GetTopicArn();
std::cout << 带有“Topic ARN '”的 Amazon SNS 主题 ” << topicName
<< ” << topicARNResult
< 已成功创建于. <“”。 ” << std::endl;}
else {
std::cerr << “主题创建错误” << topicName << “:” < <
result.GetError().GetMessage() << std::endl;
topicARNResult.clEar();
}返回结果.IsSuccess();
}
3. AWS CLI
以下 create-topic 示例创建一个名为 SNS 的主题 my-topic。
aws sns create-topic \
–name my-topic
输出:
{
"ResponseMetadata": {
"RequestId": "1469e8d7-1642-564e-b85d-a19b4b341f83"
},
"TopicArn": "arn:aws:sns:us- west-2:123456789012:my-topic”
}
4. Go V2
// SnsActions 封装 Amazon SimpleNotice Service (Amazon SNS) 操作。
// 用于示例。
type SnsActions struct {
SnsClient *sns.Client
}// CreateTopic 创建 Amazon具有指定名称的 SNS 主题。 您可以选择
//指定主题是否创建为FIFO主题以及是否使用基于内容的
//而不是基于ID的重复数据删除。
func (actor SnsActions) CreateTopic (topicName string, isFifoTopic bool, contentBasedDeduplication bool) (string, error) {
var topicArn string
topicAttributes := map[string]string{}
if isFifoTopic {
topicAttributes[“FifoTopic”] = “true”
}
if contentBasedDeduplication {
topicAttributes[“ContentBasedDeduplication”] = “true”
}
主题,错误 := actor; SnsClient.CreateTopic(context.TODO(), &sns.CreateTopicInput{
名称: aws.String(topicName),
属性: topicAttributes,
})
iferr != nil {
log.Printf(“无法创建主题 %v。原因是:%v\n”, topicName, err)
} else {
topicArn = *topic . TopicArn
}返回topicArn,错误
}
5. Java
导入 software.amazon.awssdk.regions.Region;
导入 software.amazon.awssdk.services.sns.SnsClient ;
导入software.amazon.awssdk.services.sns.model.CreateTopicRequest;
导入 software.amazon.awssdk.services.sns.model.CreateTopicResponse;
导入 software.amazon.awssdk services.sns.model 。 SnsException;/**
* 在运行此 Java V2 代码示例之前,请设置您的开发
* 环境,包括您的凭据。
*
* 欲了解更多信息,请参阅以下文档关于主题:
*
* https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
*/
public class CreateTopic {
public static void main(String[] args) {
final String use = “””用法:
其中:
topicName – 要创建的主题的名称(例如 mytopic)。“””;
if (args.length != 1) {
System.out.println(usage);
System.exit(1);
}String topicName = args[0];
System .out.println(“正在创建主题,名称为:” + topicName);
SnsClient snsClient = SnsClient.builder()
.region(Region.US_EAST_1)
.build() ;String arnVal = createSNSTopic(snsClient, topicName);
System.out.println(“主题 ARN 是 ” + arnVal);
snsClient.close();
}public static String createSNSTopic(SnsClient snsClient, String topicName) {
CreateTopicResponse 结果;
尝试{
CreateTopicRequest request = CreateTopicRequest.builder()
.name(topicName)
.build();result = snsClient.createTopic(request);
return result.topicArn();} catch (SnsException e) {
System.err.println(e.awsErrorDetails().errorMessage());
System.exit(1);
}
return "";
}
}
6. JavaScript
在单独的模块中创建客户端并将其导出。
import { SNSClient } from “@aws-sdk/client-sns”;
// 这里使用 `region` 属性可以指定 AWS 区域。 如果留空
// t该开发工具包默认为您在 AWS 设置中配置的区域。
export const snsClient = new SNSClient({});
导入SDK和客户端模块并调用API。
将 { CreateTopicCommand } 导入到“@aws-sdk/client-sns”;
将 { snsClient } 导入到“../libs/snsClient.js”;/**
* @param {string} topicName – 要创建的主题的名称。
*/
export const createTopic = async (topicName = “TOPIC_NAME”) => {
const response = wait snsClient.send(
new CreateTopicCommand({ Name: topicName }) ,
);
console.log(response);
// {
// '$metadata': {
// httpStatusCode: 200,
// requestId: '087b8ad2-4593-50c4-a496-d7e90b82cf3e',
//extendRequestId : 未定义ed,
// cfId: undefined,
// 尝试次数: 1,
//totalRetryDelay: 0
// },
// TopicArn: 'arn : aws:sns:us-east-1:xxxxxxxxxxxx:TOPIC_NAME'
// }
返回响应;
};
相关建议事项:
“如何免费获取 Amazon VPS” 如何获取 Amazon 免费 VPS 的教程”
“如何申请免费云服务器?” “
“如何激活亚马逊云存储服务?”
“使用亚马逊云技术创建网络文件教程”
p>
“如何获取亚马逊云存储服务” SSL证书》申请AWS SSL证书及使用方法》
这几篇文章你可能也喜欢:
- 介绍亚马逊云技术的双十一福利。 免费试用超级云产品,赢取秋冬暖心礼物。
- 如何使用 Amazon Comprehend 进行文本分析和见解
- 亚马逊卖家精灵每月要花多少钱?(亚马逊精品店能赚多少钱?)
- 如何通过Amazon S3同步思源笔记
- AWS EKS 和 ECS 之间的区别是什么?
本文由主机参考刊发,转载请注明:什么是 Amazon SNS 服务创建教程? https://zhujicankao.com/128473.html
评论前必须登录!
注册