生活随笔
收集整理的這篇文章主要介紹了
关于Aws SNS的使用 小结
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 1. SNS概述
- 2. 代碼實(shí)現(xiàn)
- 3. SQS subscription
1. SNS概述
關(guān)于SNS的功能可以參考官網(wǎng)的介紹:SNS官方介紹
2. 代碼實(shí)現(xiàn)
官方提供了兩個(gè)版本的demo,下載源碼后可以很方便地找到example,至少大部分是可以的。
以下是總結(jié)使用javav2版本的SNS使用,AWS官網(wǎng)例子也有介紹,但是涉及到一些Client配置都是默認(rèn)配置所以主要對(duì)這些部分需要作出小結(jié)。
首先導(dǎo)入依賴:
<dependency><groupId>software.amazon.awssdk
</groupId><artifactId>sns
</artifactId>
</dependency>
<dependency><groupId>software.amazon.awssdk
</groupId><artifactId>regions
</artifactId>
</dependency>
發(fā)送notification功能(完整代碼):
public static Boolean
sendNotification(SnsClient snsClient
, String message
, String topicArn
, String subject
, Map
<String, String> attributesMap
) {final Map
<String, MessageAttributeValue> messageAttributes
= new HashMap<>();attributesMap
.forEach((key
, value
) -> messageAttributes
.put(key
, MessageAttributeValue
.builder().dataType("String").stringValue(value
).build()));PublishRequest request
= PublishRequest
.builder().message(message
).messageAttributes(messageAttributes
).topicArn(topicArn
).subject(subject
).build();PublishResponse result
= snsClient
.publish(request
);return result
.sdkHttpResponse().statusCode() == 200;}
注:關(guān)于詳細(xì)的參數(shù)列表可以參考:Request Parameters
3. SQS subscription
現(xiàn)在涉及到一個(gè)需求就是,通過(guò)send notification到SNS的topic,然后SNS會(huì)把message發(fā)到SQS,也就是說(shuō)Client直接從SQS的queue來(lái)取消息。
先進(jìn)入到Aws console,直接輸入Topic Name就可以創(chuàng)建了。
創(chuàng)建完成后點(diǎn)右下方的“Create subscription”,創(chuàng)建訂閱者。
在Protocal那里選擇SQS,并且Endpoint選擇對(duì)應(yīng)的queue的arn就可以了。
訂閱成功之后,Topic的Subscriptions如圖。
至此,只要通過(guò)#2的代碼發(fā)送notification到SNS,就能在SQS的queue poll messages了。
注:
關(guān)于MessageAttributeValue的配置如果不符合指定格式很容易導(dǎo)致異常,具體的參數(shù)配置參考:MessageAttributeValue Method Detail關(guān)于PublishRequest的具體參數(shù)配置參考:PublishRequest Method Summary
附:
3. 關(guān)于java1版本的SNS官網(wǎng)例子比較全,可以參考:Amazon Simple Notification Service
總結(jié)
以上是生活随笔為你收集整理的关于Aws SNS的使用 小结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。