Создание новой очереди сообщений
Чтобы создать новую очередь сообщений:
-
В консоли управления выберите каталог, в котором будет создана очередь.
-
Откройте раздел Message Queue.
-
Нажмите кнопку Создать очередь.
-
Укажите имя очереди.
Имя может содержать строчные буквы латинского алфавита, цифры, дефисы и нижние подчеркивания. Имя очереди FIFO должно заканчиваться суффиксом
.fifo
. Длина имени не должна превышать 80 символов. -
Выберите тип очереди Стандартная или FIFO.
-
Укажите стандартный таймаут видимости, который будет применяться к сообщениям в очереди после чтения получателем.
-
Укажите срок хранения сообщений.
-
Укажите максимальный размер сообщения.
-
Укажите задержку доставки: время, в течение которого новое сообщение нельзя получить из очереди.
-
Укажите время ожидания при получении сообщения.
-
Чтобы перенаправлять недоставленные сообщения в очередь недоставленных сообщений (DLQ):
- Включите опцию Перенаправлять недоставленные сообщения.
- Укажите Очередь недоставленных сообщений.
- Задайте Максимальное количество попыток чтения.
-
Нажмите кнопку Создать.
Выполните в терминале команду:
aws sqs create-queue \
--queue-name sample-queue \
--endpoint https://message-queue.api.cloud.yandex.net/
Результат:
{
"QueueUrl": "https://message-queue.api.cloud.yandex.net/aoeaql9r10cd9cfue7v6/000000000000002n034r/sample-queue"
}
Terraform позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). Terraform и его провайдеры распространяются под лицензией Mozilla Public License.
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform или в зеркале.
При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.
Если у вас ещё нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы создать очередь сообщений:
-
Опишите в конфигурационном файле параметры очереди, которую необходимо создать:
name
— имя очереди.visibility_timeout_seconds
— таймаут видимости.receive_wait_time_seconds
— время ожидания поступления сообщений в очередь при использовании Long Polling. Возможные значения: от 0 до 20 секунд. Значение по умолчанию — 0 секунд.message_retention_seconds
— срок хранения сообщений в очереди в секундах.redrive_policy
— политика перенаправления сообщений в очередь Dead Letter Queue.deadLetterTargetArn
— ARN очереди DLQ, куда будут перенаправляться сообщения.maxReceiveCount
— количество попыток чтения сообщения из очереди до отправки его в DLQ.
fifo_queue
— указание, что создается очередь FIFO.content_based_deduplication
— включение дедупликации по содержимому в очередях FIFO.access_key
— идентификатор статического ключа доступа сервисного аккаунта для очереди. Если идентификатор не задан в конфигурации очереди, будет использоваться идентификатор из конфигурации провайдера.secret_key
— секретная часть статического ключа доступа. Если секретный ключ не задан в конфигурации очереди, будет использоваться ключ из конфигурации провайдера.
Пример конфигурационного файла для стандартной очереди:
provider "yandex" { token = "<OAuth или статический ключ сервисного аккаунта>" folder_id = "<идентификатор каталога>" zone = "ru-central1-a" } resource "yandex_message_queue" "example_queue" { name = "ymq-terraform-example" visibility_timeout_seconds = 600 receive_wait_time_seconds = 20 message_retention_seconds = 1209600 access_key = "<идентификатор статического ключа доступа>" secret_key = "<секретная часть статического ключа доступа>" }
Пример конфигурационного файла для очереди FIFO:
provider "yandex" { token = "<OAuth или статический ключ сервисного аккаунта>" folder_id = "<идентификатор каталога>" zone = "ru-central1-a" } resource "yandex_message_queue" "example-fifo-queue" { name = "ymq-terraform-example.fifo" visibility_timeout_seconds = 600 receive_wait_time_seconds = 20 message_retention_seconds = 1209600 fifo_queue = true access_key = "<идентификатор статического ключа доступа>" secret_key = "<секретная часть статического ключа доступа>" }
Пример конфигурационного файла для очереди c политикой перенаправления недоставленных сообщений в DLQ c именем
ymq_terraform_deadletter_example
:provider "yandex" { token = "<OAuth или статический ключ сервисного аккаунта>" folder_id = "<идентификатор каталога>" zone = "ru-central1-a" } resource "yandex_message_queue" "example_fifo_queue" { name = "ymq-terraform-example" visibility_timeout_seconds = 600 receive_wait_time_seconds = 20 message_retention_seconds = 1209600 redrive_policy = jsonencode({ deadLetterTargetArn = yandex_message_queue.example_deadletter_queue.arn maxReceiveCount = 3 }) access_key = "<идентификатор статического ключа доступа>" secret_key = "<секретная часть статического ключа доступа>" } resource "yandex_message_queue" "example_deadletter_queue" { name = "ymq_terraform_deadletter_example" access_key = "<идентификатор статического ключа доступа>" secret_key = "<секретная часть статического ключа доступа>" }
Более подробную информацию о ресурсах, которые вы можете создать с помощью Terraform, см. в документации провайдера.
-
Проверьте корректность конфигурационных файлов.
- В командной строке перейдите в папку, где вы создали конфигурационный файл.
- Выполните проверку с помощью команды:
terraform plan
Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Разверните облачные ресурсы.
- Если в конфигурации нет ошибок, выполните команду:
terraform apply
- Подтвердите создание ресурсов.
После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления. Удалить созданные ресурсы можно командой
terraform destroy
. - Если в конфигурации нет ошибок, выполните команду: