

# Getting started with Amazon SQS
<a name="sqs-getting-started"></a>

This topic guides you through using the Amazon SQS console to create and manage **standard queues** and **FIFO queues**. You'll learn how to navigate the console, view queue attributes, and distinguish between queue types. Key tasks include sending, receiving, and configuring messages, adjusting parameters such as visibility timeout and message retention, and managing queue access through policies.

**Topics**
+ [Setting up](sqs-setting-up.md)
+ [Understanding the Amazon SQS console](sqs-configure-overview.md)
+ [Queue types](sqs-queue-types.md)
+ [Creating a standard queue](creating-sqs-standard-queues.md)
+ [Creating a FIFO queue](creating-sqs-fifo-queues.md)
+ [Common tasks](get-started.md)

# Setting up Amazon SQS
<a name="sqs-setting-up"></a>

Before you can use Amazon SQS for the first time, you must complete the following steps:

## Step 1: Create an AWS account and IAM user
<a name="sqs-creating-aws-account"></a>

To access any AWS service, you first need to create an [AWS account](https://aws.amazon.com/), an Amazon.com account that can use AWS products. You can use your AWS account to view your activity and usage reports and to manage authentication and access.

To avoid using your AWS account root user for Amazon SQS actions, it is a best practice to create an IAM user for each person who needs administrative access to Amazon SQS.

### Sign up for an AWS account
<a name="sign-up-for-aws"></a>

If you do not have an AWS account, complete the following steps to create one.

**To sign up for an AWS account**

1. Open [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup).

1. Follow the online instructions.

   Part of the sign-up procedure involves receiving a phone call or text message and entering a verification code on the phone keypad.

   When you sign up for an AWS account, an *AWS account root user* is created. The root user has access to all AWS services and resources in the account. As a security best practice, assign administrative access to a user, and use only the root user to perform [tasks that require root user access](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks).

AWS sends you a confirmation email after the sign-up process is complete. At any time, you can view your current account activity and manage your account by going to [https://aws.amazon.com/](https://aws.amazon.com/) and choosing **My Account**.

### Create a user with administrative access
<a name="create-an-admin"></a>

After you sign up for an AWS account, secure your AWS account root user, enable AWS IAM Identity Center, and create an administrative user so that you don't use the root user for everyday tasks.

**Secure your AWS account root user**

1.  Sign in to the [AWS Management Console](https://console.aws.amazon.com/) as the account owner by choosing **Root user** and entering your AWS account email address. On the next page, enter your password.

   For help signing in by using root user, see [Signing in as the root user](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial) in the *AWS Sign-In User Guide*.

1. Turn on multi-factor authentication (MFA) for your root user.

   For instructions, see [Enable a virtual MFA device for your AWS account root user (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html) in the *IAM User Guide*.

**Create a user with administrative access**

1. Enable IAM Identity Center.

   For instructions, see [Enabling AWS IAM Identity Center](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html) in the *AWS IAM Identity Center User Guide*.

1. In IAM Identity Center, grant administrative access to a user.

   For a tutorial about using the IAM Identity Center directory as your identity source, see [ Configure user access with the default IAM Identity Center directory](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html) in the *AWS IAM Identity Center User Guide*.

**Sign in as the user with administrative access**
+ To sign in with your IAM Identity Center user, use the sign-in URL that was sent to your email address when you created the IAM Identity Center user.

  For help signing in using an IAM Identity Center user, see [Signing in to the AWS access portal](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html) in the *AWS Sign-In User Guide*.

**Assign access to additional users**

1. In IAM Identity Center, create a permission set that follows the best practice of applying least-privilege permissions.

   For instructions, see [ Create a permission set](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html) in the *AWS IAM Identity Center User Guide*.

1. Assign users to a group, and then assign single sign-on access to the group.

   For instructions, see [ Add groups](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html) in the *AWS IAM Identity Center User Guide*.

## Step 2: Grant programmatic access
<a name="sqs-getting-access-key-id-secret-access-key"></a>

To use Amazon SQS actions (for example, using Java or through the AWS Command Line Interface), you need an access key ID and a secret access key.

**Note**  
The access key ID and secret access key are specific to AWS Identity and Access Management. Don't confuse them with credentials for other AWS services, such as Amazon EC2 key pairs.

Users need programmatic access if they want to interact with AWS outside of the AWS Management Console. The way to grant programmatic access depends on the type of user that's accessing AWS.

To grant users programmatic access, choose one of the following options.


****  

| Which user needs programmatic access? | To | By | 
| --- | --- | --- | 
| IAM | (Recommended) Use console credentials as temporary credentials to sign programmatic requests to the AWS CLI, AWS SDKs, or AWS APIs. |  Following the instructions for the interface that you want to use. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-setting-up.html)  | 
|  Workforce identity (Users managed in IAM Identity Center)  | Use temporary credentials to sign programmatic requests to the AWS CLI, AWS SDKs, or AWS APIs. |  Following the instructions for the interface that you want to use. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-setting-up.html)  | 
| IAM | Use temporary credentials to sign programmatic requests to the AWS CLI, AWS SDKs, or AWS APIs. | Following the instructions in [Using temporary credentials with AWS resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) in the IAM User Guide. | 
| IAM | (Not recommended)Use long-term credentials to sign programmatic requests to the AWS CLI, AWS SDKs, or AWS APIs. |  Following the instructions for the interface that you want to use. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-setting-up.html)  | 

## Step 3: Get ready to use the example code
<a name="sqs-get-ready-to-use-example-code"></a>

This guide includes examples that use the AWS SDK for Java. To run the example code, follow the set-up instructions in [Getting Started with AWS SDK for Java 2.0](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/). 

You can develop AWS applications in other programming languages, such as Go, JavaScript, Python and Ruby. For more information, see [Tools to Build on AWS](https://aws.amazon.com/developer/tools/#sdk).

**Note**  
You can explore Amazon SQS without writing code with tools such as the AWS Command Line Interface (AWS CLI) or Windows PowerShell. You can find AWS CLI examples in the [Amazon SQS section](https://docs.aws.amazon.com/cli/latest/reference/sqs/index.html) of the *AWS CLI Command Reference*. You can find Windows PowerShell examples in the Amazon Simple Queue Service section of the *[AWS Tools for PowerShell Cmdlet Reference](https://docs.aws.amazon.com/powershell/latest/reference/)*.

## Next steps
<a name="sqs-next-steps-setting-up"></a>

You are now ready for [Getting started](sqs-getting-started.md) with managing Amazon SQS queues and messages using the AWS Management Console. 

# Understanding the Amazon SQS console
<a name="sqs-configure-overview"></a>

When you open the Amazon SQS console, choose **Queues** from the navigation pane. The **Queues** page provides information about all of your queues in the active region.

Each queue entry provides essential information about the queue, including its type and key attributes. [Standard queues](standard-queues.md), optimized for maximum throughput and best-effort message ordering, are distinguished from [First-In-First-Out (FIFO)](sqs-fifo-queues.md) queues, which prioritize message ordering and uniqueness for applications requiring strict message sequencing.

![\[Queues page in the Amazon SQS console.\]](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/sqs-config-queue-list.png)


**Interactive elements and actions**

From the Queues page, you have multiple options for managing your queues:

1. **Quick Actions** – Adjacent to each queue name, a dropdown menu offers quick access to common actions such as sending messages, viewing or deleting messages, configuring triggers, and deleting the queue itself.

1. **Detailed View and Configuration** – Clicking on a queue name opens its Details page, where you can delve deeper into queue settings and configurations. Here, you can adjust parameters like message retention period, visibility timeout, and maximum message size to tailor the queue to your application's requirements.

![\[Queue details page in the Amazon SQS console.\]](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/queue-details-page.png)


**Region selection and resource tags**

Ensure you're in the correct AWS Region to access and manage your queues effectively. Additionally, consider utilizing resource tags to organize and categorize your queues, enabling better resource management, cost allocation, and access control within your AWS shared environment.

By leveraging the features and functionalities offered within the Amazon SQS console, you can efficiently manage your messaging infrastructure, optimize queue performance, and ensure reliable message delivery for your applications.

# Amazon SQS queue types
<a name="sqs-queue-types"></a>

Amazon SQS supports two types of queues: [**standard queues**](standard-queues.md) and [**FIFO**](sqs-fifo-queues.md) queues. Use the following table to determine which queue best fits your needs.


| Standard queues | FIFO queues | 
| --- | --- | 
|  **Unlimited throughput** – Standard queues support a very high, nearly unlimited number of API calls per second, per action ([https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html), [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html), or [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessage.html)). This high throughput makes them ideal for use cases that require processing large volumes of messages quickly, such as real-time data streaming or large-scale applications. While standard queues scale automatically with demand, it is essential to monitor usage patterns to ensure optimal performance, especially in regions with higher workloads. **At-least-once delivery** – Guaranteed at-least-once delivery, meaning that every message is delivered at least once, but in some cases, a message may be delivered more than once due to retries or network delays. You should design your application to handle potential duplicate messages by using idempotent operations, which ensure that processing the same message multiple times will not affect the system’s state. **Best-effort ordering** – Provides best-effort ordering, meaning that while Amazon SQS attempts to deliver messages in the order they were sent, it does not guarantee this. In some cases, messages may arrive out of order, especially under conditions of high throughput or failure recovery. For applications where the order of message processing is crucial, you should handle reordering logic within the application or use FIFO queues for strict ordering guarantees. **Durability and redundancy** – Standard queues ensure high durability by storing multiple copies of each message across multiple AWS Availability Zones. This ensures that messages are not lost, even in the event of infrastructure failures. **Visibility timeout** – Amazon SQS allows you to configure a visibility timeout to control how long a message stays hidden after being received, ensuring that other consumers do not process the message until it has been fully handled or the timeout expires.  | **High throughput** – When you use [batching](sqs-batch-api-actions.md), FIFO queues process up to 3,000 messages per second per API method ([https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessageBatch.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessageBatch.html), [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html), or [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessageBatch.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessageBatch.html)). This throughput relies on 300 API calls per second, with each API call handling a batch of 10 messages.By enabling high throughput mode, you can scale up to 30,000 transactions per second (TPS) with relaxed ordering within message groups. Without batching, FIFO queues support up to 300 API calls per second per API method (`SendMessage`, `ReceiveMessage`, or `DeleteMessage`). If you need more throughput, you can request a quota increase through the [AWS Support Center](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&limitType=service-code-sqs). To enable high-throughput mode, see [Enabling high throughput for FIFO queues in Amazon SQS](enable-high-throughput-fifo.md). **Exactly-once processing** – FIFO queues deliver each message once and keep it available until you process and delete it. By using features like [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html) or content-based deduplication, you prevent duplicate messages, even when retrying due to network issues or timeouts. **First-in-first-out delivery** – FIFO queues ensure that you receive messages in the order they are sent within each message group. By distributing messages across multiple groups, you can process them in parallel while still maintaining the order within each group.  | 
|  ![\[Standard queue message delivery.\]](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/sqs-what-is-sqs-standard-queue-diagram.png)  |  ![\[FIFO queue message delivery.\]](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/sqs-what-is-sqs-fifo-queue-diagram.png)  | 
| Use standard queues to send data between applications when throughput is crucial, for example:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-types.html) |  Use FIFO queues to send data between applications when the order of events is important, for example: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-types.html)  | 

# Implementing request-response systems in Amazon SQS
<a name="implementing-request-response-systems"></a>

When implementing a request-response or remote procedure call (RPC) system, keep the following best practices in mind:
+ **Create reply queues on start-up** – Instead of creating reply queues per message, create them on start-up, per producer. Use a correlation ID message attribute to map replies to requests efficiently.
+ **Avoid sharing reply queues among producers** – Ensure that each producer has its own reply queue. Sharing reply queues can result in a producer receiving response messages intended for another producer.

For more information about implementing the request-response pattern using the Temporary Queue Client, see [Request-response messaging pattern (virtual queues)](sqs-temporary-queues.md#request-reply-messaging-pattern).

# Creating an Amazon SQS standard queue and sending a message
<a name="creating-sqs-standard-queues"></a>

You can create a [standard queue](standard-queues.md) and send messages using the Amazon SQS console. This topic also emphasizes best practices, including avoiding sensitive information in queue names and utilizing managed server-side encryption.

## Creating a standard queue using the Amazon SQS console
<a name="step-create-standard-queue"></a>

**Important**  
On August 17, 2022, default server-side encryption (SSE) was applied to all Amazon SQS queues.  
Do not add personally identifiable information (PII) or other confidential or sensitive information in queue names. Queue names are accessible to many Amazon Web Services, including billing and CloudWatch logs. Queue names are not intended to be used for private or sensitive data.

**To create an Amazon SQS standard queue**

1. Open the Amazon SQS console at [https://console.aws.amazon.com/sqs/](https://console.aws.amazon.com/sqs/).

1. Choose **Create queue**.

1. For **Type**, the **Standard** queue type is set by default.
**Note**  
You can't change the queue type after you create the queue.

1.  Enter a **Name** for your queue.

1. (Optional) The console sets default values for the queue [configuration parameters](sqs-configure-queue-parameters.md). Under **Configuration**, you can set new values for the following parameters:

   1. For **Visibility timeout **, enter the duration and units. The range is from 0 seconds to 12 hours. The default value is 30 seconds.

   1. For **Message retention period**, enter the duration and units. The range is from 1 minute to 14 days. The default value is 4 days.

   1. For **Delivery delay**, enter the duration and units. The range is from 0 seconds to 15 minutes. The default value is 0 seconds.

   1. For **Maximum message size**, enter a value. The range is from 1 KiB to 1024 KiB. The default value is 1024 KiB.

   1. For **Receive message wait time**, enter a value. The range is from 0 to 20 seconds. The default value is 0 seconds, which sets [short polling](sqs-short-and-long-polling.md). Any non-zero value sets long polling.

1. (Optional) Define an **Access policy**. The [access policy](sqs-creating-custom-policies-access-policy-examples.md) defines the accounts, users, and roles that can access the queue. The access policy also defines the actions (such as [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html), [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html), or [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessage.html)) that the users can access. The default policy allows only the queue owner to send and receive messages.

   To define the access policy, do one of the following:
   + Choose **Basic** to configure who can send messages to the queue and who can receive messages from the queue. The console creates the policy based on your choices and displays the resulting access policy in the read-only JSON panel.
   + Choose **Advanced** to modify the JSON access policy directly. This allows you to specify a custom set of actions that each principal (account, user, or role) can perform.

1. For **Redrive allow policy**, choose **Enabled**. Select one of the following: **Allow all**, **By queue**, or **Deny all**. When choosing **By queue**, specify a list of up to 10 source queues by the Amazon Resource Name (ARN).

1. Amazon SQS provides managed server-side encryption by default. To choose an encryption key type, or to disable Amazon SQS managed server-side encryption, expand **Encryption**. For more on encryption key types, see [Configuring server-side encryption for a queue using SQS-managed encryption keys](sqs-configure-sqs-sse-queue.md) and [Configuring server-side encryption for a queue using the Amazon SQS console](sqs-configure-sse-existing-queue.md).
**Note**  
With SSE enabled, anonymous `SendMessage` and `ReceiveMessage` requests to the encrypted queue will be rejected. Amazon SQS security best practises recommend against using anonymous requests. If you wish to send anonymous requests to an Amazon SQS queue, make sure to disable SSE.

1. (Optional) To configure a [dead-letter queue](sqs-configure-dead-letter-queue.md) to receive undeliverable messages, expand **Dead-letter queue**.

1. (Optional) To add [tags](sqs-configure-tag-queue.md) to the queue, expand **Tags**.

1. Choose **Create queue**. Amazon SQS creates the queue and displays the queue's **Details** page.

Amazon SQS propagates information about the new queue across the system. Because Amazon SQS is a distributed system, you might experience a slight delay before the console displays the queue on the **Queues** page.

## Sending a message using a standard queue
<a name="sqs-send-messages"></a>

After your queue has been created, you can send a message to it.

1. From the left navigation pane, choose **Queues**. From the queue list, select the queue that you created.

1. From **Actions**, choose **Send and receive messages**.

   The console displays the **Send and receive messages** page.

1. In the **Message body**, enter the message text.

1. For a standard queue, you can enter a value for **Delivery delay** and choose the units. For example, enter `60` and choose **seconds**. For more information, see [Amazon SQS message timers](sqs-message-timers.md).

1. Choose **Send message**.

   When your message is sent, the console displays a success message. Choose **View details** to display information about the sent message.

# Creating an Amazon SQS FIFO queue and sending a message
<a name="creating-sqs-fifo-queues"></a>

You can create an Amazon SQS FIFO queue and send messages using the console. This topic explains how to set up queue parameters, including visibility timeout, message retention, and deduplication, while following security best practices such as avoiding sensitive information in queue names and enabling server-side encryption. It also covers defining access policies, configuring dead-letter queues, and sending messages with FIFO-specific attributes like message group ID and deduplication ID.

## Creating a FIFO queue using the Amazon SQS console
<a name="step-create-fifo-queue"></a>

You can use the Amazon SQS console to create [FIFO queues](sqs-fifo-queues.md). The console provides default values for all settings except for the queue name.

**Important**  
On August 17, 2022, default server-side encryption (SSE) was applied to all Amazon SQS queues.  
Do not add personally identifiable information (PII) or other confidential or sensitive information in queue names. Queue names are accessible to many Amazon Web Services, including billing and CloudWatch logs. Queue names are not intended to be used for private or sensitive data.

**To create an Amazon SQS FIFO queue**

1. Open the Amazon SQS console at [https://console.aws.amazon.com/sqs/](https://console.aws.amazon.com/sqs/).

1. Choose **Create queue**.

1. For **Type**, the **Standard** queue type is set by default. To create a FIFO queue, choose **FIFO**.
**Note**  
You can't change the queue type after you create the queue.

1.  Enter a **Name** for your queue.

   The name of a FIFO queue must end with the `.fifo` suffix. The suffix counts towards the 80-character queue name quota. To determine whether a queue is [FIFO](sqs-fifo-queues.md), you can check whether the queue name ends with the suffix.

1. (Optional) The console sets default values for the queue [configuration parameters](sqs-configure-queue-parameters.md). Under **Configuration**, you can set new values for the following parameters:

   1. For **Visibility timeout **, enter the duration and units. The range is from 0 seconds to 12 hours. The default value is 30 seconds.

   1. For **Message retention period**, enter the duration and units. The range is from 1 minute to 14 days. The default value is 4 days.

   1. For **Delivery delay**, enter the duration and units. The range is from 0 seconds to 15 minutes. The default value is 0 seconds.

   1. For **Maximum message size**, enter a value. The range is from 1 KiB to 1024 KiB. The default value is 1024 KiB.

   1. For **Receive message wait time**, enter a value. The range is from 0 to 20 seconds. The default value is 0 seconds, which sets [short polling](sqs-short-and-long-polling.md). Any non-zero value sets long polling.

   1. For a FIFO queue, choose **Content-based deduplication** to enable content-based deduplication. The default setting is disabled. 

   1. (Optional) For a FIFO queue to enable higher throughput for sending and receiving messages in the queue, choose **Enable high throughput FIFO**.

      Choosing this option changes the related options (**Deduplication scope** and **FIFO throughput limit**) to the required settings for enabling high throughput for FIFO queues. If you change any of the settings required for using high throughput FIFO, normal throughput is in effect for the queue, and deduplication occurs as specified. For more information, see [High throughput for FIFO queues in Amazon SQS](high-throughput-fifo.md) and [Amazon SQS message quotas](quotas-messages.md).

1. (Optional) Define an **Access policy**. The [access policy](sqs-creating-custom-policies-access-policy-examples.md) defines the accounts, users, and roles that can access the queue. The access policy also defines the actions (such as [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html), [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html), or [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessage.html)) that the users can access. The default policy allows only the queue owner to send and receive messages.

   To define the access policy, do one of the following:
   + Choose **Basic** to configure who can send messages to the queue and who can receive messages from the queue. The console creates the policy based on your choices and displays the resulting access policy in the read-only JSON panel.
   + Choose **Advanced** to modify the JSON access policy directly. This allows you to specify a custom set of actions that each principal (account, user, or role) can perform.

1. For **Redrive allow policy**, choose **Enabled**. Select one of the following: **Allow all**, **By queue**, or **Deny all**. When choosing **By queue**, specify a list of up to 10 source queues by the Amazon Resource Name (ARN).

1. Amazon SQS provides managed server-side encryption by default. To choose an encryption key type, or to disable Amazon SQS managed server-side encryption, expand **Encryption**. For more on encryption key types, see [Configuring server-side encryption for a queue using SQS-managed encryption keys](sqs-configure-sqs-sse-queue.md) and [Configuring server-side encryption for a queue using the Amazon SQS console](sqs-configure-sse-existing-queue.md).
**Note**  
With SSE enabled, anonymous `SendMessage` and `ReceiveMessage` requests to the encrypted queue will be rejected. Amazon SQS security best practises recommend against using anonymous requests. If you wish to send anonymous requests to an Amazon SQS queue, make sure to disable SSE.

1. (Optional) To configure a [dead-letter queue](sqs-configure-dead-letter-queue.md) to receive undeliverable messages, expand **Dead-letter queue**.

1. (Optional) To add [tags](sqs-configure-tag-queue.md) to the queue, expand **Tags**.

1. Choose **Create queue**. Amazon SQS creates the queue and displays the queue's **Details** page.

Amazon SQS propagates information about the new queue across the system. Because Amazon SQS is a distributed system, you might experience a slight delay before the console displays the queue on the **Queues** page.

After creating a queue, you can [send messages](creating-sqs-standard-queues.md#sqs-send-messages) to it, and [receive and delete messages](step-receive-delete-message.md). You can also [edit](sqs-configure-edit-queue.md) any of the queue configuration settings except the queue type.

## Sending a message using a FIFO queue
<a name="sqs-send-messages-fifo"></a>

After you create your queue, you can send a message to it.

1. From the left navigation pane, choose **Queues**. From the queue list, select the queue that you created.

1. From **Actions**, choose **Send and receive messages**.

   The console displays the **Send and receive messages** page.

1. In the **Message body**, enter the message text.

1. For a First-In-First-Out (FIFO) queue, enter a **Message group ID**. For more information, see [FIFO queue delivery logic in Amazon SQS](FIFO-queues-understanding-logic.md).

1. (Optional) For a FIFO queue, you can enter a **Message deduplication ID**. If you enabled content-based deduplication for the queue, the message deduplication ID isn't required. For more information, see [FIFO queue delivery logic in Amazon SQS](FIFO-queues-understanding-logic.md). 

1.  FIFO queues does not support timers on individual messages. For more information, see [Amazon SQS message timers](sqs-message-timers.md).

1. Choose **Send message**.

   When your message is sent, the console displays a success message. Choose **View details** to display information about the sent message.

# Common tasks for getting started with Amazon SQS
<a name="get-started"></a>

Once you've created a queue and learned how to send, receive, and delete messages, you might want to try the following:
+ Trigger a [Lambda function](sqs-configure-lambda-function-trigger.md) to process incoming messages automatically, enabling event-driven workflows without the need for continuous polling.
+ [Configure queues, including SSE and other features](sqs-configuring.md).
+ [Send a message with attributes](sqs-using-send-message-with-attributes.md).
+ [Send a message from a VPC](sqs-sending-messages-from-vpc.md).
+ Discover the [functionality](sqs-queue-types.md) and [architecture](welcome.md#sqs-basic-architecture) of Amazon SQS.
+ Discover [guidelines and caveats](sqs-best-practices.md) that will help you make the most of Amazon SQS.
+ Explore the Amazon SQS examples for an AWS SDK, such as the [AWS SDK for Java 2.x Developer Guide](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/).
+ Learn about [Amazon SQS AWS CLI commands](https://docs.aws.amazon.com/cli/latest/reference/sqs/).
+ Learn about [Amazon SQS API actions](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_Operations.html).
+ Learn how to interact with Amazon SQS programmatically. See [Working with APIs](sqs-making-api-requests-xml.md) and explore the [AWS Development Center](https://aws.amazon.com/developer/):
  + [Java](https://aws.amazon.com/java/)
  + [JavaScript](https://aws.amazon.com/javascript/)
  + [PHP](https://aws.amazon.com/php/)
  + [Python](https://aws.amazon.com/python/)
  + [Ruby](https://aws.amazon.com/ruby/)
  + [Windows & .NET](https://aws.amazon.com/net/)
+ Learn how to monitor [costs and resources](sqs-queue-tags.md).
+ Learn how to [protect your data](data-protection.md).
+ Learn more about the [Amazon SQS workflow](sqs-creating-custom-policies-process-workflow.md).