@Experimental(value=SOURCE_SINK) public final class SnsIO extends java.lang.Object
PTransform
s for writing to SNS.
Example usage:
PCollection<String> data = ...;
data.apply(SnsIO.<String>write()
.withPublishRequestFn(m -> PublishRequest.builder().topicArn("topicArn").message(m).build())
.withTopicArn("topicArn")
.withRetryConfiguration(
SnsIO.RetryConfiguration.create(
4, org.joda.time.Duration.standardSeconds(10)))
.withSnsClientProvider(new BasicSnsClientProvider(awsCredentialsProvider, region));
As a client, you need to provide at least the following things:
By default, the output PublishResponse
contains only the SNS messageId, all other
fields are null. If you need to include the full SdkHttpResponse
and AwsResponseMetadata
, you can call SnsIO.Write.withFullPublishResponse()
. If you need the HTTP
status code only but no headers, you can use SnsIO.Write.withFullPublishResponseWithoutHeaders()
.
Example usage:
PCollection<String> data = ...;
data.apply(SnsIO.<String>writeAsync()
.withElementCoder(StringUtf8Coder.of())
.withPublishRequestFn(createPublishRequestFn())
.withSnsClientProvider(new BasicSnsClientProvider(awsCredentialsProvider, region));
PCollection<String> data = ...;
PCollection<SnsResponse<String>> responses = data.apply(SnsIO.<String>writeAsync()
.withElementCoder(StringUtf8Coder.of())
.withPublishRequestFn(createPublishRequestFn())
* .withSnsClientProvider(new BasicSnsClientProvider(awsCredentialsProvider, region));
As a client, you need to provide at least the following things:
Modifier and Type | Class and Description |
---|---|
static class |
SnsIO.RetryConfiguration
A POJO encapsulating a configuration for retry behavior when issuing requests to SNS.
|
protected static class |
SnsIO.SnsWriteException
Exception class for SNS write exceptions.
|
static class |
SnsIO.Write<T>
Implementation of
write() . |
static class |
SnsIO.WriteAsync<T>
Implementation of
writeAsync() . |
Constructor and Description |
---|
SnsIO() |
Modifier and Type | Method and Description |
---|---|
static <T> SnsIO.Write<T> |
write() |
static <T> SnsIO.WriteAsync<T> |
writeAsync() |
public static <T> SnsIO.Write<T> write()
public static <T> SnsIO.WriteAsync<T> writeAsync()