Amazon Simple Queue Service (SQS)
Amazon SQS is fully managed message queuing for micro-services, distributed systems, and server-less applications. It lets you send, store, and receive messages between software components at any volume, without losing messages or requiring other services to be available.
SQS integration
Description
<
sqsIntegration>
- command for integration with Amazon SQS
Required parameters:
- alias - unique name of the integration (e.g., "MY_SQS")
- enabled – a boolean flag to enable/disable integration (can be “true” or “false”)
- region - specifies the AWS region for SQS (e.g., "us-west-2")
- endpoint - specifies the endpoint or URL for the SQS
- accessKeyId - specifies a unique identifier for authentication. (e.g., "DEFAULT_ACCESS_ KEY")
- secretAccessKey - specifies secret key for authentication. (e.g., "DEFAULT_SECRET_ KEY")
<sqsIntegration>
<sqs alias="MY_SQS" enabled="true">
<region>us-west-2</region>
<endpoint>http://localhost:4566</endpoint>
<accessKeyId>DEFAULT_ACCESS_KEY</accessKeyId>
<secretAccessKey>DEFAULT_SECRET_KEY</secretAccessKey>
</sqs>
</sqsIntegration>
SQS command
Description
<sqs> – command which is responsible for sending the SQS queries in testing scenarios
Required parameters:
- comment
- alias - unique name of the integration
- commands: send or receive (only one can be selected)
Optional parameters:
- condition - the condition according to which this test step will or won't be executed
- threshold - parameter, where the maximum execution time of the command is defined (milliseconds), if the execution time is exceeded, the step will be defined as failed
Send command
x
<sqs comment="Check ability to create queue and send first text message and json file" alias="SQS_0">
<send queue="queue1" delaySeconds="5" messageDeduplicationId="1" messageGroupId="1">
<value>Hello World!</value>
</send>
<send queue="queue1" delaySeconds="5">
<file>body_5.json</file>
</send>
</sqs>
The send command is used to send a message to SQS. The command has arguments:
- [required] queue - refers to a specific queue within SQS which represents the destination for the message (e.g., “queue1”)
- [optional] delaySeconds - sets a delay of 5 seconds before the message becomes available for processing (e.g., “5”, min value is “1”)
- [optional] messageDeduplicationId - unique identifier for message deduplication. It helps to ensure that only one copy of a particular message is processed, even if it is sent multiple times (e.g., “1”)
- [optional] messageGroupId - used for message grouping within a queue. It allows related messages to be grouped and ensures that they are processed in the correct order (e.g., “1”)
- value - contains the actual content or payload of the message being sent
- file - specifies the file containing the body or content of the message being sent
Receive command
<sqs comment="Check ability to receive messages" alias="SQS_0">
<receive queue="queue1">
<file>expected_10.json</file>
</receive>
<receive queue="queue1" receiveRequestAttemptId="1" maxNumberOfMessages="1" visibilityTimeout="1" waitTimeSeconds="1">
<value>
[ "Hello World!" ]
</value>
</receive>
</sqs>
The receive command is used to receive a message from SQS. The command has arguments:
- [required] queue - specifies the queue from which a message is being received. It indicates the source queue from which the message will be retrieved for processing (e.g., “queue1”)
- [optional] receiveRequestAttemptId - indicates the request attempt ID associated with the receive operation. It is a unique identifier that helps track and identify the specific attempt made to receive a message from the queue (e.g., “1”)
- [optional] maxNumberOfMessages - specifies the maximum number of messages to be received in a single receive operation (e.g., ”1”, min value is “1”)
- [optional] visibilityTimeout - specifies the duration during which the message is invisible to other consumers after it has been received by one consumer (e.g., “1”, min value is “1”)
- [optional] waitTimeSeconds - specifies the maximum amount of time to wait for a message to become available in the queue if no messages are currently present (e.g., ”1”, min value is “1”)
- file - specifies the file name that contains the expected content of the received message
- value - contains the actual content or payload of the received message