@Experimental(value=SOURCE_SINK) public final class SnsIO extends java.lang.Object
PTransforms 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()