Amazon SQS Component
Send, receive and manage messages within an Amazon (AWS) SQS queue
Component key: aws-sqs
Description
Amazon SQS is a message queueing service from Amazon Web Services. The Amazon SQS component allows you to send and receive messages within an Amazon SQS queue.
Using Amazon SQS as a FIFO queue for instance executions
If you have a workflow that requires requests to be processed in a specific order, or a workflow that requires you to process only one record at a time, you can leverage the Amazon SQS component along with an SQS FIFO queue to ensure that the requests are processed sequentially.
See Using a FIFO Queue to Ensure In-Order Processing for more information.
Connections
AWS SQS Access Key and Secret
An AWS IAM access key pair is required to interact with Amazon SQS. Make sure that the key pair you generate in AWS has proper permissions to the SQS resources you want to access. Read more about SQS IAM policies in the AWS docs.
Input | Notes | Example |
---|---|---|
Input Access Key ID string / Required accessKeyId | Notes An AWS IAM Access Key ID | Example AKIAIOSFODNN7EXAMPLE |
Input Secret Access Key password / Required secretAccessKey | Notes An AWS IAM Secret Access Key | Example wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY |
AWS Role ARN
To enable the IAM role authentication begin by logging into the AWS Console and navigate to Identity and Access Management (IAM).
To create an ARN user and generate credentials:
- Navigate to Users and select Create User.
- Provide a User name and check the box providing them user access to the AWS Management Console if needed.
- Once completed with the User creation, copy the ARN provided in the summary for a later step.
- To obtain the ARN for an existing User, click on the designated username from the Users page and the ARN will be provided in the summary section.
- From the summary section, select Create access key
- Select Third-party service as the access key type and select next.
- Set a description and select create access key.
- Copy the Access Key and Secret access key and enter those into the connection configuration of your integration along with the ARN.
To create and assign a user a role:
- Navigate to Roles and select Create Role.
- Select Custom Trust Policy for the Trusted entity types
- Copy the following statement into the statement console. Making sure to replace the ARN with the user's actual ARN from the previous section
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "ARN"
},
"Action": "sts:AssumeRole"
}
]
}
- When adding permissions provide the AmazonSQSFullAccess permission
- Complete remaining steps and select Create Role
Input | Notes | Example |
---|---|---|
Input Access Key ID string / Required accessKeyId | Notes An AWS IAM Access Key ID | Example AKIAIOSFODNN7EXAMPLE |
Input Role ARN string / Required roleARN | Notes An AWS IAM Role ARN | Example arn:aws:iam::OtherAccount-ID:role/assumed-role-name |
Input Secret Access Key password / Required secretAccessKey | Notes An AWS IAM Secret Access Key | Example wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY |
Data Sources
Select Queues
Select an SQS queue from a list | key: selectQueue | type: picklist
Input | Notes | Example |
---|---|---|
Input Connection connection awsConnection | Notes | Example |
Input AWS Region string awsRegion | Notes AWS provides services in multiple regions, like us-west-2 or eu-west-1. | Example us-east-1 |
Input Dynamic Access Key ID string dynamicAccessKeyId | Notes Use this input to authenticate with AWS if you are using a dynamically-generated access key. Otherwise, use the connection to enter a static access key ID. | Example |
Input Dynamic Secret Access Key password dynamicSecretAccessKey | Notes Use this input to authenticate with AWS if you are using a dynamically-generated secret access key. Otherwise, use the connection to enter a static secret access key. | Example |
Input Dynamic Session Token password dynamicSessionToken | Notes Use this input to authenticate with AWS if you are using a OPTIONAL dynamically-generated session token. | Example |
Actions
Create Queue
Create an Amazon SQS Queue | key: createQueue
Input | Default | Notes | Example |
---|---|---|---|
Input Connection connection awsConnection | Default | Notes | Example |
Input AWS Region string awsRegion | Default | Notes AWS provides services in multiple regions, like us-west-2 or eu-west-1. | Example us-east-1 |
Input Content Based Deduplication boolean contentBasedDeduplication | Default false | Notes This flag enables Content Based Deduplication on a FIFO queue. Once you create a FIFO queue you cannot change the value of this input. | Example |
Input Dynamic Access Key ID string dynamicAccessKeyId | Default | Notes Use this input to authenticate with AWS if you are using a dynamically-generated access key. Otherwise, use the connection to enter a static access key ID. | Example |
Input Dynamic Secret Access Key password dynamicSecretAccessKey | Default | Notes Use this input to authenticate with AWS if you are using a dynamically-generated secret access key. Otherwise, use the connection to enter a static secret access key. | Example |
Input Dynamic Session Token password dynamicSessionToken | Default | Notes Use this input to authenticate with AWS if you are using a OPTIONAL dynamically-generated session token. | Example |
Input FIFO Queue boolean / Required isFifo | Default false | Notes This flag enables the creation of a FIFO Queue. Once you create a FIFO queue you cannot change it to a standard queue. | Example |
Input Name string / Required name | Default | Notes The name of a new queue. Can only include alphanumeric characters, hyphens, or underscores and must be 1 to 80 characters in length. FIFO queues must end with the .fifo suffix. | Example my-example-queue |
Input Tags string Key Value List tags | Default | Notes The list of tags you want to tag your AWS SQS queue with. | Example |
{
"data": {
"$metadata": {
"httpStatusCode": 200,
"requestId": "00000000-0000-0000-0000-000000000000",
"attempts": 1,
"totalRetryDelay": 0
},
"QueueUrl": "https://sqs.us-east-1.amazonaws.com/012345678900/my-example-queue"
}
}
Delete Message
Delete a message from an Amazon SQS Queue | key: deleteMessage
Input | Notes | Example |
---|---|---|
Input Connection connection awsConnection | Notes | Example |
Input AWS Region string awsRegion | Notes AWS provides services in multiple regions, like us-west-2 or eu-west-1. | Example us-east-1 |
Input Dynamic Access Key ID string dynamicAccessKeyId | Notes Use this input to authenticate with AWS if you are using a dynamically-generated access key. Otherwise, use the connection to enter a static access key ID. | Example |
Input Dynamic Secret Access Key password dynamicSecretAccessKey | Notes Use this input to authenticate with AWS if you are using a dynamically-generated secret access key. Otherwise, use the connection to enter a static secret access key. | Example |
Input Dynamic Session Token password dynamicSessionToken | Notes Use this input to authenticate with AWS if you are using a OPTIONAL dynamically-generated session token. | Example |
Input Receipt Handle string / Required receiptHandle | Notes Every time you receive a message from a queue, you receive a receipt handle for that message. This handle is associated with the action of receiving the message, not with the message itself. | Example AQEBwLpNvpxWR+nqO4frM8rWABCI4dbqTwo7 |
Input Queue URL string / Required url | Notes You require the queue URL to send, receive, and delete queue messages. A queue URL is constructed in the following format: https://{REGION_ENDPOINT}/queue.|api-domain|/{YOUR_ACCOUNT_NUMBER}/{YOUR_QUEUE_NAME} | Example https://sqs.us-east-1.amazonaws.com/012345678900/my-example-queue |
Delete Queue
Delete an Amazon SQS Queue | key: deleteQueue
Input | Notes | Example |
---|---|---|
Input Connection connection awsConnection | Notes | Example |
Input AWS Region string awsRegion | Notes AWS provides services in multiple regions, like us-west-2 or eu-west-1. | Example us-east-1 |
Input Dynamic Access Key ID string dynamicAccessKeyId | Notes Use this input to authenticate with AWS if you are using a dynamically-generated access key. Otherwise, use the connection to enter a static access key ID. | Example |
Input Dynamic Secret Access Key password dynamicSecretAccessKey | Notes Use this input to authenticate with AWS if you are using a dynamically-generated secret access key. Otherwise, use the connection to enter a static secret access key. | Example |
Input Dynamic Session Token password dynamicSessionToken | Notes Use this input to authenticate with AWS if you are using a OPTIONAL dynamically-generated session token. | Example |
Input Queue URL string / Required url | Notes You require the queue URL to send, receive, and delete queue messages. A queue URL is constructed in the following format: https://{REGION_ENDPOINT}/queue.|api-domain|/{YOUR_ACCOUNT_NUMBER}/{YOUR_QUEUE_NAME} | Example https://sqs.us-east-1.amazonaws.com/012345678900/my-example-queue |
{
"data": {
"$metadata": {
"httpStatusCode": 200,
"requestId": "00000000-0000-0000-0000-000000000000",
"attempts": 1,
"totalRetryDelay": 0
}
}
}
Get a Queue's URL
Get the URL of an Amazon SQS Queue given its name | key: getQueueUrl
Input | Notes | Example |
---|---|---|
Input Connection connection awsConnection | Notes | Example |
Input AWS Region string awsRegion | Notes AWS provides services in multiple regions, like us-west-2 or eu-west-1. | Example us-east-1 |
Input Dynamic Access Key ID string dynamicAccessKeyId | Notes Use this input to authenticate with AWS if you are using a dynamically-generated access key. Otherwise, use the connection to enter a static access key ID. | Example |
Input Dynamic Secret Access Key password dynamicSecretAccessKey | Notes Use this input to authenticate with AWS if you are using a dynamically-generated secret access key. Otherwise, use the connection to enter a static secret access key. | Example |
Input Dynamic Session Token password dynamicSessionToken | Notes Use this input to authenticate with AWS if you are using a OPTIONAL dynamically-generated session token. | Example |
Input Name string / Required name | Notes The name of a new queue. Can only include alphanumeric characters, hyphens, or underscores and must be 1 to 80 characters in length. FIFO queues must end with the .fifo suffix. | Example my-example-queue |
{
"data": {
"$metadata": {
"httpStatusCode": 200,
"requestId": "00000000-0000-0000-0000-000000000000",
"attempts": 1,
"totalRetryDelay": 0
},
"QueueUrl": "https://sqs.us-east-1.amazonaws.com/012345678900/my-example-queue"
}
}
List Queues
Fetch a list of Amazon SQS Queues | key: listQueues
Input | Notes | Example |
---|---|---|
Input Connection connection awsConnection | Notes | Example |
Input AWS Region string awsRegion | Notes AWS provides services in multiple regions, like us-west-2 or eu-west-1. | Example us-east-1 |
Input Dynamic Access Key ID string dynamicAccessKeyId | Notes Use this input to authenticate with AWS if you are using a dynamically-generated access key. Otherwise, use the connection to enter a static access key ID. | Example |
Input Dynamic Secret Access Key password dynamicSecretAccessKey | Notes Use this input to authenticate with AWS if you are using a dynamically-generated secret access key. Otherwise, use the connection to enter a static secret access key. | Example |
Input Dynamic Session Token password dynamicSessionToken | Notes Use this input to authenticate with AWS if you are using a OPTIONAL dynamically-generated session token. | Example |
Input Queue Prefix string prefix | Notes Provide an integer value for the maximum amount of items that will be returned. Provide a value from 1 to 50. | Example 20 |
{
"data": {
"$metadata": {
"httpStatusCode": 200,
"requestId": "00000000-0000-0000-0000-000000000000",
"attempts": 1,
"totalRetryDelay": 0
},
"QueueUrls": [
"https://sqs.us-east-1.amazonaws.com/012345678900/my-example-queue",
"https://sqs.us-east-1.amazonaws.com/012345678900/my-second-queue"
]
}
}
Receive Messages
Receive messages from an Amazon SQS Queue | key: receiveMessages
Input | Notes | Example |
---|---|---|
Input Connection connection awsConnection | Notes | Example |
Input AWS Region string awsRegion | Notes AWS provides services in multiple regions, like us-west-2 or eu-west-1. | Example us-east-1 |
Input Dynamic Access Key ID string dynamicAccessKeyId | Notes Use this input to authenticate with AWS if you are using a dynamically-generated access key. Otherwise, use the connection to enter a static access key ID. | Example |
Input Dynamic Secret Access Key password dynamicSecretAccessKey | Notes Use this input to authenticate with AWS if you are using a dynamically-generated secret access key. Otherwise, use the connection to enter a static secret access key. | Example |
Input Dynamic Session Token password dynamicSessionToken | Notes Use this input to authenticate with AWS if you are using a OPTIONAL dynamically-generated session token. | Example |
Input Max Messages string maxNumber | Notes Provide a number for the max amount of values to be returned. | Example 5 |
Input Queue URL string / Required url | Notes You require the queue URL to send, receive, and delete queue messages. A queue URL is constructed in the following format: https://{REGION_ENDPOINT}/queue.|api-domain|/{YOUR_ACCOUNT_NUMBER}/{YOUR_QUEUE_NAME} | Example https://sqs.us-east-1.amazonaws.com/012345678900/my-example-queue |
Input Wait Time (seconds) string waitTime | Notes The duration (in seconds) for which the call waits for a message to arrive in the queue before returning. If a message is available, the call returns sooner than WaitTimeSeconds. If no messages are available and the wait time expires, the call returns successfully with an empty list of messages. | Example 10 |
Receive Messages can behave differently depending on what kind of queue you are trying to poll. If you are using a non-FIFO queue, this action may return false blank responses. SNS FIFO is intended for customer use cases where it is critical to maintain the consistency in processing messages across multiple independent services in a strictly ordered manner. If you are polling a FIFO queue you are guaranteed to receive the maximum amount of messages you specify (up to 10) per request. Refer to the AWS docs for information on migrating to a FIFO queue
{
"data": {
"$metadata": {
"httpStatusCode": 200,
"requestId": "00000000-0000-0000-0000-000000000000",
"attempts": 1,
"totalRetryDelay": 0
},
"Messages": [
{
"MessageId": "00000000-00000000-00000000-00000000",
"ReceiptHandle": "Example Receipt Handle",
"MD5OfBody": "e909509655c5154f008e0ee43ed655b2",
"Body": "My Test Message",
"Attributes": {
"SenderId": "EXAMPLE5OBBA2B7URDN4G",
"ApproximateFirstReceiveTimestamp": "1646857534190",
"ApproximateReceiveCount": "3",
"SentTimestamp": "1646857528982"
},
"MessageAttributes": {
"exampleKey1": {
"StringValue": "exampleValue",
"DataType": "String"
},
"exampleKey2": {
"StringValue": "exampleValue2",
"DataType": "String"
}
}
}
]
}
}
Send Message
Send a message to an Amazon SQS Queue | key: sendMessage
Input | Notes | Example |
---|---|---|
Input Attributes string Key Value List attributes | Notes Amazon SQS lets you include structured metadata (such as timestamps, geospatial data, signatures, and identifiers) with messages using message attributes. Each message can have up to 10 attributes. | Example |
Input Connection connection awsConnection | Notes | Example |
Input AWS Region string awsRegion | Notes AWS provides services in multiple regions, like us-west-2 or eu-west-1. | Example us-east-1 |
Input Delay Seconds data delaySeconds | Notes Provide a number of optional seconds to delay sending a message. | Example 0 |
Input Dynamic Access Key ID string dynamicAccessKeyId | Notes Use this input to authenticate with AWS if you are using a dynamically-generated access key. Otherwise, use the connection to enter a static access key ID. | Example |
Input Dynamic Secret Access Key password dynamicSecretAccessKey | Notes Use this input to authenticate with AWS if you are using a dynamically-generated secret access key. Otherwise, use the connection to enter a static secret access key. | Example |
Input Dynamic Session Token password dynamicSessionToken | Notes Use this input to authenticate with AWS if you are using a OPTIONAL dynamically-generated session token. | Example |
Input Message string / Required message | Notes Provide a string containing the message you would like to send. | Example Example Message |
Input Message deduplication ID string messageDeduplicationId | Notes The message deduplication ID is the token used for deduplication of sent messages. If a message with a particular message deduplication ID is sent successfully, any messages sent with the same message deduplication ID are accepted successfully but aren't delivered during the 5-minute deduplication interval. | Example myExampleDeduplicationId |
Input Message Group Id string messageGroupId | Notes The message group ID is the tag that specifies that a message belongs to a specific message group. Messages that belong to the same message group are always processed one by one, in a strict order relative to the message group (however, messages that belong to different message groups might be processed out of order). | Example myExampleMessageGroup |
Input Queue URL string / Required url | Notes You require the queue URL to send, receive, and delete queue messages. A queue URL is constructed in the following format: https://{REGION_ENDPOINT}/queue.|api-domain|/{YOUR_ACCOUNT_NUMBER}/{YOUR_QUEUE_NAME} | Example https://sqs.us-east-1.amazonaws.com/012345678900/my-example-queue |
{
"data": {
"$metadata": {
"httpStatusCode": 200,
"requestId": "00000000-0000-0000-0000-000000000000",
"attempts": 1,
"totalRetryDelay": 0
},
"MD5OfMessageBody": "05e891701cde4c383b66f46a7b9a808c",
"MD5OfMessageAttributes": "23adb2d3b76c04a687f9a5fcfb6086bb",
"MessageId": "00000000-00000000-00000000-00000000"
}
}