Şu satırı dahil ederiz
<dependency><groupId>io.awspring.cloud</groupId><artifactId>spring-cloud-aws-starter-sns</artifactId><version>3.0.0-M33</version></dependency>
Örnek
Elimizde şöyle bir kod olsun
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
import software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain;
import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;
protected AwsCredentialsProvider getAwsCredentialsProvider() {
return AwsCredentialsProviderChain.builder()
.addCredentialsProvider(DefaultCredentialsProvider.create())
.build();
}createTopic metodu
Şöyle yaparız
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.CreateTopicRequest;
protected SnsClient snsClient() throws URISyntaxException {
return SnsClient.builder()
.region(Region.US_EAST_1)
.endpointOverride(new URI("http://localhost:4566"))
.credentialsProvider(getAwsCredentialsProvider())
.build();
}
protected String createTopic(String topicName) throws URISyntaxException {
var createTopicRequest = CreateTopicRequest.builder()
.name(topicName)
.build();
return snsClient().createTopic(createTopicRequest).topicArn();
}subscribe metodu
Şöyle yaparız
import software.amazon.awssdk.services.sns.model.SubscribeRequest;
protected SubscribeRequest createSubscribe(String topicName, String queueName)
throws URISyntaxException {
var topicArn = createTopic(topicName);
var queueUrl = createQueue(queueName);
var subscribeRequest = SubscribeRequest.builder()
.protocol("sqs")
.topicArn(topicArn)
.endpoint(queueUrl)
.build();
snsClient().subscribe(subscribeRequest);
return subscribeRequest;
}
Hiç yorum yok:
Yorum Gönder