Documentation Index
Fetch the complete documentation index at: https://docs.streamnative.io/llms.txt
Use this file to discover all available pages before exploring further.
This connector is available as a built-in connector on StreamNative Cloud.

Quick start
Prerequisites
The prerequisites for connecting an AWS SQS source connector to external systems include:- Create SQS in AWS.
- Create the AWS User and create
AccessKey(Please recordAccessKeyandSecretAccessKey). - Assign the following permissions to the AWS User:
- sqs:CreateQueue
- sqs:DeleteMessage
- sqs:ChangeMessageVisibility
- sqs:GetQueueUrl
- sqs:GetQueueAttributes
- sqs:ReceiveMessage
1. Create a connector
The following command shows how to use pulsarctl to create abuiltin connector. If you want to create a non-builtin connector,
you need to replace --source-type sqs with --archive /path/to/pulsar-io-sqs.nar. You can find the button to download the nar package at the beginning of the document.
If you are a StreamNative Cloud user, you need set up your environment first.
--source-config is the minimum necessary configuration for starting this connector, and it is a JSON string. You need to substitute the relevant parameters with your own.
If you want to configure more parameters, see Configuration Properties for reference.
You can also choose to use a variety of other tools to create a connector:
- pulsar-admin: The command arguments for
pulsar-adminare similar to those ofpulsarctl. You can find an example for StreamNative Cloud Doc. - RestAPI: You can find an example for StreamNative Cloud Doc.
- Terraform: You can find an example for StreamNative Cloud Doc.
- Function Mesh: The docker image can be found at the beginning of the document.
2. Send messages to AWS SQS
You can use the following simple code to send messages to AWS SQS.3. Show data using Pulsar client
If your connector is created on StreamNative Cloud, you need to authenticate your clients. See Build applications using Pulsar clients for more information.
Configuration Properties
Before using the AWS SQS source connector, you need to configure it. This table outlines the properties and the Descriptions of an AWS SQS source connector.| Name | Type | Required | Sensitive | Default | Description |
|---|---|---|---|---|---|
awsRegion | String | true | false | ” ” (empty string) | Supported AWS region. For example, us-west-1, us-west-2. |
queueName | String | true | false | ” ” (empty string) | The name of the SQS queue that messages should be read from or written to. |
awsCredentialPluginName | String | false | false | ” ” (empty string) | The fully-qualified class name of implementation of AwsCredentialProviderPlugin. For more information, see [Configure AwsCredentialProviderPlugin](###Configure AwsCredentialProviderPlugin). |
awsCredentialPluginParam | String | false | true | ” ” (empty string) | The JSON parameter to initialize awsCredentialsProviderPlugin. For more information, see [Configure AwsCredentialProviderPlugin](###Configure AwsCredentialProviderPlugin). |
awsEndpoint | String | false | false | ” ” (empty string) | AWS SQS end-point URL. You can find it at AWS SQS Service endpoints. |
batchSizeOfOnceReceive | int | false | false | 1 | The maximum number of messages that are pulled from SQS at one time. By default, it is set to 1. The value ranges from 1 to 10. |
numberOfConsumers | int | false | false | 1 | The expected numbers of consumers. You can scale consumers horizontally to achieve high throughput. By default, it is set to 1. The value ranges from 1 to 50. |
sourceQueueSize | int | false | false | 10000 | The size of the queue that holds the messages received from SQS. By default, it is set to 10000. The value cannot smaller than 1. |
sourceQueueOfferTimeoutMs | long | false | false | 1000 | The maximum time in milliseconds to wait while offering a received SQS message to the source queue before failing it back to SQS. Set it to 0 to fail immediately when the queue is full. |
ackFailRetryMaxAttempts | int | false | false | 3 | The maximum number of attempts for asynchronous SQS ack/fail operations, including the initial request. |
ackFailRetryInitialDelayMs | long | false | false | 500 | The initial backoff delay in milliseconds before retrying an asynchronous SQS ack/fail operation. Each subsequent retry doubles this delay. |
receiveRetryInitialDelayMs | long | false | false | 100 | The initial backoff delay in milliseconds before retrying an SQS receive call after a failure. |
receiveRetryMaxDelayMs | long | false | false | 5000 | The maximum backoff delay in milliseconds used when retrying SQS receive calls. |
receiveRetryBackoffMultiplier | double | false | false | 2.0 | The multiplier applied to the receive retry delay after each failed SQS receive call. |
The
batchSizeOfOnceReceive and numberOfConsumers options are available for SQS source 2.8.4.3+, 2.9.4.1+, and 2.10.1.13+. The sourceQueueOfferTimeoutMs, ackFailRetryMaxAttempts, ackFailRetryInitialDelayMs, and receive retry settings are connector-level source options and do not require additional Pulsar Functions runtime knobs. For details about how to test AWS SQS source performance, see Performance Test on AWS SQS Source Connector.numberOfConsumers and sourceQueueSize, and set sourceQueueOfferTimeoutMs so the source fails messages back to SQS instead of blocking receive threads indefinitely.
Configure AwsCredentialProviderPlugin
AWS SQS source connector allows you to use three ways to connect to AWS SQS by configuringawsCredentialPluginName.
-
Leave
awsCredentialPluginNameempty to get the connector authenticated by passingaccessKeyandsecretKeyinawsCredentialPluginParam. -
Set
awsCredentialPluginNametoorg.apache.pulsar.io.aws.AwsDefaultProviderChainPluginto use the default AWS provider chain. With this option, you don’t need to configureawsCredentialPluginParam. For more information, see AWS documentation. -
Set
awsCredentialPluginNametoorg.apache.pulsar.io.aws.STSAssumeRoleProviderPluginto use the default AWS provider chain, and you need to configureroleArnandroleSessionNmaeinawsCredentialPluginParam. For more information, see AWS documentation.

































