Configuring AWS SQS for Martini
Amazon Web Services (AWS) Simple Queue Service (SQS) offers a reliable, highly scalable hosted queue for storing messages as they travel between applications or microservices. Integrating AWS SQS with Martini allows developers to seamlessly connect their applications within the AWS ecosystem, enabling efficient message processing with minimal coding. Martini utilizes the AWS SQS SDK to poll and retrieve messages from queues, facilitating smooth communication between services.
Endpoint Definitions
Endpoint Type
aws-sqs-listener
Endpoint Configuration
Below are the configurations available for an AWS SQS listener endpoint in Martini:
Name | Required | Description |
---|---|---|
queueName |
Yes | The name of the AWS SQS queue to be polled. |
pollTimeInSeconds |
No | The interval in seconds between polling requests. Defaults to 10. A higher value can reduce AWS costs. |
maxNumberOfMessage |
No | The maximum number of messages to poll in a single request. Defaults to 10. |
awsCredentialOption |
Yes | Credential option for AWS authentication. DEFAULT utilizes the AWS credential provider chain. BASIC requires specifying awsAccessKeyId , awsSecretKey , and awsSessionToken in the endpoint properties. |
awsAccessKeyId |
No | Required if awsCredentialOption is set to BASIC . Specifies the AWS Access Key ID. |
awsSecretKey |
No | Required if awsCredentialOption is set to BASIC . Specifies the AWS Secret Access Key. |
awsSessionToken |
No | Required if awsCredentialOption is set to BASIC . Specifies the AWS Session Token. Can be left empty. |
messageAttributes |
Yes | A comma-separated list of message attributes to fetch during polling. |
Endpoint Specific Properties
These properties are specific to messages retrieved from AWS SQS:
Name | Type | Description |
---|---|---|
body |
String | The body of the AWS SQS message. |
message |
Object | The AWS SQS message object, containing all details of the message. |
messageAttributes |
Array | An array of key-value pairs representing the message attributes. |
messageId |
String | The unique identifier of the AWS SQS message. |
queueName |
String | The name of the AWS SQS queue being polled. |
receiptHandle |
String | The receipt handle of the AWS SQS message, used for message deletion or change visibility. |
Usage and Testing
This section guides you through the setup and testing of an AWS SQS Endpoint within Martini, including creating a new package and endpoint, and verifying message receipt.
1. Setup an AWS SQS Queue in AWS Console
Before integrating AWS SQS with Martini, create and configure your SQS queue in the AWS Console. Ensure you have the correct permissions and settings for your application's requirements.
2. Create a New Package and AWS SQS Endpoint
Without a graphical interface for this setup, you'll define your endpoint configuration in XML. This XML snippet defines an AWS SQS listener endpoint, specifying necessary credentials and configurations:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
Ensure you replace [YourAWSAccessKeyId]
, [YourAWSSecretKey]
, and [YourAWSSessionToken]
with your actual AWS credentials. If you prefer to use the default AWS credential provider chain, replace the BASIC
credential option with DEFAULT
and omit the AWS credential properties.
Alternatively, you can upload a pre-configured package, such as new-package.zip
, which follows the same configuration principles outlined above.
3. Start the Endpoint
After defining your AWS SQS listener endpoint, start it within Martini. Verify that it's operational and ready to receive messages.
4. Send a Message to the Queue
Utilize the AWS Console to send a test message to your SQS queue. This step is crucial for validating the endpoint's ability to receive messages.
5. Verify Message Receipt
Upon sending a message, monitor Martini to confirm that it successfully receives the message. The receipt of the message will be indicated through the logging of different properties associated with the message, demonstrating the endpoint's operational status.