Sqs 2 60: Насос Waterstry SQS 2-60 погружной скважинный 0,75кВт

alexxlab | 08.09.1985 | 0 | Разное

Содержание

Вопросы и ответы по Amazon SQS | Сервис очередей сообщений | AWS

Обзор

Вопрос. Каковы преимущества Amazon SQS в сравнении с коммерческими системами управления очередями сообщений или системами собственной разработки?

Amazon SQS предоставляет ряд преимуществ. При создании собственного программного обеспечения для управления очередями сообщений или использовании коммерческих систем управления очередями сообщений, а также систем с открытым исходным кодом потребуется довольно много времени на предварительную разработку и настройку. 

При таких альтернативных вариантах нужно выделять ресурсы на текущее обслуживание оборудования и администрирование системы. Сложность настройки этих систем и управления ими усугубляется необходимостью организации избыточного хранения, чтобы гарантировать отсутствие потерь сообщений в случае аппаратного сбоя.

Сервис Amazon SQS, напротив, не требует администрирования и нуждается лишь в минимальной настройке. Amazon SQS работает в гораздо большем масштабе, обрабатывая миллиарды сообщений в день. Объем трафика, отправляемого в Amazon SQS, можно изменять в сторону увеличения или уменьшения без дополнительной настройки. Amazon SQS также обеспечивает чрезвычайно высокую надежность хранения сообщений, которая по достоинству будет оценена как вами, так и всеми заинтересованными сторонами.

Вопрос. Чем отличается Amazon SQS от Amazon Simple Notification Service (SNS)?

Сервис Amazon SNS позволяет отправлять срочные сообщения множеству подписчиков посредством технологии push, которая устраняет необходимость в периодических проверках или опросах на предмет обновлений. Сервис очередей сообщений Amazon SQS используется распределенными приложениями для обмена сообщениями по принципу опроса и может разделять компоненты отправки и приема. 

Вопрос. Чем отличаются сервисы Amazon SQS и Amazon MQ?

Если обмен сообщениями уже используется в существующих приложениях и эту систему требуется быстро и просто перенести в облако, рекомендуем использовать сервис Amazon MQ. Сервис поддерживает стандартные отраслевые API и протоколы, что позволяет перейти с любого стандартного брокера сообщений на Amazon MQ, не переписывая код приложении в части обмена сообщениями. Если речь идет о разработке в облаке приложений с нуля, рекомендуем использовать Amazon SQS и Amazon SNS. Amazon SQS и SNS – это компактные и полностью управляемые сервисы очередей и тем сообщений со встроенным масштабированием и простыми удобными API. 

Вопрос. Обеспечивает ли Amazon SQS упорядочение сообщений?

Да. В очередях FIFO, работающих по принципу «первым получено – первым отправлено», сохраняется точный порядок отправки и получения сообщений. При использовании очередей FIFO добавлять информацию, служащую для упорядочения сообщений, не требуется. Дополнительную информацию см. в разделе FIFO Queue Logic Руководства по Amazon SQS для разработчиков.

Стандартные очереди работают по алгоритму FIFO со свободным выходом, что предполагает попытку сохранить порядок сообщений. Однако в силу того, что стандартные очереди разработаны для обеспечения значительной масштабируемости с использованием широко распределенной архитектуры, получение сообщений точно в порядке их отправки не гарантируется.

Вопрос. Гарантирует ли сервис Amazon SQS доставку сообщений?

Стандартные очереди обеспечивают доставку сообщений по принципу «хотя бы один раз», то есть каждое сообщение доставляется по крайней мере один раз.

Очереди FIFO обеспечивают строго однократную обработку сообщений: каждое сообщение доставляется один раз и остается доступным до тех пор, пока получатель не обработает и не удалит его. Дублирующие записи в очереди не появляются.

Вопрос. Чем Amazon SQS отличается от Amazon Kinesis Streams?

Amazon SQS предлагает надежные размещенные очереди с широкими возможностями масштабирования для хранения сообщений во время их передачи между приложениями или микросервисами. Сервис позволяет передавать данные между компонентами распределенного приложения и разделять эти компоненты. Amazon SQS предоставляет типовые структурные элементы промежуточной обработки, такие как очереди необрабатываемых сообщений и возможность управления удалением сообщений. Он также предоставляет стандартные API веб-сервиса и возможность использования с любым языком программирования, для которого обеспечена поддержка AWS SDK. В Amazon SQS поддерживаются как стандартные очереди, так и очереди FIFO.

Amazon Kinesis Streams позволяет организовать обработку потоков больших данных в режиме реального времени и обеспечивает возможность считывать и воспроизводить записи в различных приложениях Amazon Kinesis. Клиентская библиотека Amazon Kinesis (KCL) обеспечивает доставку всех записей с заданным ключом секции к одному и тому же обработчику записей, что упрощает процесс создания различных приложений, считывающих данные из одного потока Amazon Kinesis (например, приложения для подсчета, объединения и фильтрации).

Дополнительную информацию см. в документации по Amazon Kinesis.

Вопрос. Использует ли Amazon сервис Amazon SQS при создании своих приложений?

Да. Разработчики Amazon используют Amazon SQS для различных приложений, ежедневно обрабатывающих большое количество сообщений. Основные бизнес-процессы, лежащие в основе веб-сайта Amazon.com и AWS, используют Amazon SQS.

Оплата

Вопрос. Сколько стоит использование сервиса Amazon SQS?

Вы платите только за то, чем пользуетесь, без минимальной платы.

Стоимость Amazon SQS рассчитывается по количеству запросов, к чему добавляется плата за передачу данных из сервиса Amazon SQS (за исключением передачи данных в инстансы Amazon Elastic Compute Cloud (EC2) или функции AWS Lambda в пределах одного региона). Подробный расчет стоимости в зависимости от типа очереди и региона см. на странице цен на Amazon SQS.

Вопрос. Какой объем ресурсов предоставляется в рамках уровня бесплатного пользования Amazon SQS?

В рамках уровня бесплатного пользования Amazon SQS ежемесячно предоставляется возможность передавать 1 миллион запросов бесплатно.

Многие небольшие приложения могут полностью работать в рамках уровня бесплатного пользования. Однако при этом может начисляться плата за передачу данных. Дополнительную информацию см. на странице цен на Amazon SQS.

Уровень бесплатного пользования предоставляется на ежемесячной основе. Неиспользованные ресурсы на следующий месяц не переносятся.

Вопрос. Плата начисляется за все запросы Amazon SQS?

Да, плата начисляется за все запросы, выходящие за пределы уровня бесплатного пользования. За все запросы Amazon SQS начисляется плата, при этом они тарифицируются по единому тарифу.

Вопрос. Отличается ли стоимость пакетных операций Amazon SQS от стоимости других запросов?

Стоимость пакетных операций (SendMessageBatch, DeleteMessageBatch и ChangeMessageVisibilityBatch) не отличается от стоимости других запросов Amazon SQS. Группируя сообщения в пакеты, можно уменьшить расходы на Amazon SQS.

Вопрос. Каков принцип начисления платы за использование сервиса Amazon SQS?

Для начала работы с сервисом Amazon SQS не требуется предоплата.

В конце месяца с кредитной карты клиента автоматически снимается сумма за использование сервиса по итогам месяца.

На сайте Amazon Web Services можно в любое время ознакомиться с начислениями за текущий расчетный период.

  1. Нужно войти в аккаунт AWS.
  2. В разделе Ваш аккаунт для веб-служб выберите пункт История аккаунта.

Вопрос. Как отслеживать расходы, связанные с очередями Amazon SQS, и управлять ими?

Используя теги распределения расходов, можно пометить очереди и затем отслеживать их для управления ресурсами и расходами. Тег – это метка метаданных, состоящая из пары ключ-значение. К примеру, можно пометить тегами очереди по центру затрат, впоследствии распределить их по категориям и отслеживать свои расходы на основании этих центров.

Дополнительную информацию см. в разделе Tagging Your Amazon SQS Queues Руководства по Amazon SQS для разработчиков. Дополнительную информацию об использовании для ресурсов AWS тегов распределения расходов см. в разделе Использование тегов распределения затрат Руководства пользователя по управлению счетами и затратами на AWS.

Вопрос. Ваши цены указаны с учетом налогов?

Если не указано иное, представленные цены не включают применимые налоги и сборы, в том числе НДС и применимый налог с продаж.

Для клиентов с платежным адресом в Японии использование AWS в любом регионе облагается потребительским налогом Японии. Подробнее см. в разделе Вопросы и ответы по потребительскому налогу на Amazon Web Services.

Функциональные возможности и интерфейсы

Вопрос. Можно ли использовать Amazon SQS с другими сервисами AWS?

Да. Приложения можно сделать более гибкими и масштабируемыми, используя сервис Amazon SQS совместно с вычислительными сервисами, такими как Amazon EC2, Amazon Elastic Container Service (ECS) и AWS Lambda, а также с сервисами хранения и баз данных, такими как Amazon Simple Storage Service (Amazon S3) и Amazon DynamoDB.

Вопрос. Как взаимодействовать с сервисом Amazon SQS?

Доступ к Amazon SQS можно получить из Консоли управления AWS, с помощью которой проще создавать очереди Amazon SQS и отправлять сообщения.

Сервис Amazon SQS также поддерживает API веб-сервисов. Кроме того, он интегрирован с пакетами SDK AWS, что позволяет работать с необходимыми языками программирования.

Вопрос. Кто может выполнять операции с очередями сообщений?

Выполнять операции с очередью сообщений Amazon SQS может только владелец аккаунта AWS (или аккаунт AWS, которому владелец аккаунта делегировал соответствующие права).

Вопрос. Можно ли с сервисом Amazon SQS использовать Java Message Service (JMS)?

Да. Можно использовать все преимущества масштабируемости, экономичности и высокой доступности сервиса Amazon SQS без необходимости самостоятельно организовывать работу кластера JMS. 

Amazon предоставляет библиотеку Amazon SQS Java Messaging Library, в которой реализована спецификация JMS 1. 1 с использованием Amazon SQS в качестве поставщика JMS. Дополнительную информацию см. в разделе Использование JMS с Amazon SQS Руководства по Amazon SQS для разработчиков.

Вопрос. Как сервис Amazon SQS определяет сообщения?

Все сообщения обладают уникальными в глобальной области определения идентификаторами, которые Amazon SQS возвращает после доставки сообщения в очередь сообщений. Идентификатор не требуется для выполнения каких-либо дальнейших действий с сообщением, но он полезен для отслеживания получения конкретного сообщения в очереди сообщений.

При получении сообщения из очереди сообщений в ответе содержится дескриптор получения, который необходимо указать при удалении сообщения.

Дополнительную информацию см. в разделе Идентификаторы очередей и сообщений Руководства по Amazon SQS для разработчиков.

Вопрос. Что происходит с необработанными сообщениями в Amazon SQS?

Amazon SQS позволяет использовать API или консоль для настройки очередей необрабатываемых сообщений, которые получают сообщения из других исходящих очередей. При настройке очереди необрабатываемых сообщений вам необходимо предоставить соответствующие разрешения на ее перезапуск с помощью политики RedriveAllowPolicy.

Политика RedriveAllowPolicy содержит параметры для предоставления разрешения на перезапуск очереди необрабатываемых сообщений. Она определяет, какие исходные очереди могут указывать очереди необрабатываемых сообщений в виде объекта JSON.

Если преобразовать очередь в очередь необрабатываемых сообщений, сообщения в нее будут поступать только по истечении максимального количества попыток обработки. Очереди необрабатываемых сообщений позволяют изолировать сообщения, которые не удалось обработать, для последующего анализа.

Дополнительную информацию см. в разделе Использование очередей необрабатываемых сообщений в руководстве разработчика Amazon SQS.

Вопрос. Что такое тайм-аут видимости?

Тайм-аут видимости – это период времени, в течение которого сервис Amazon SQS не дает другим компонентам, получающим сообщения, получать и обрабатывать сообщения.

Дополнительную информацию см. в разделе Тайм-аут видимости Руководства по Amazon SQS для разработчиков.

Вопрос. Поддерживает ли Amazon SQS метаданные сообщений?

Да. Сообщение Amazon SQS может содержать до 10 атрибутов метаданных. Атрибуты сообщения можно использовать для отделения тела сообщения от метаданных, описывающих его. Это позволяет обрабатывать и сохранять информацию быстрее и эффективнее, поскольку приложениям не нужно проверять сообщение целиком, чтобы понять, как его обработать.

Атрибуты сообщений Amazon SQS представляют собой триады «имя-тип-значение». Поддерживаются следующие типы данных: строка, бинарные данные и число (включая целое число, число с плавающей запятой и число двойной точности). Дополнительную информацию см. в разделе Использование атрибутов сообщений Amazon SQS Руководства по Amazon SQS для разработчиков.

Вопрос. Как определить время ожидания в очереди?

Чтобы определить время ожидания в очереди, можно запросить при получении сообщения атрибут SentTimestamp. Разность текущего времени и данного значения является временем ожидания в очереди.

Вопрос. Каково обычное время задержки для Amazon SQS?

Порядок обычного времени задержки для запросов API SendMessage, ReceiveMessage и DeleteMessage измеряется в десятках или нескольких сотнях миллисекунд.

Вопрос. Какое значение имеет атрибут SenderId сообщения при анонимном доступе?

Когда идентификатор аккаунта AWS недоступен (например, при отправке сообщения анонимным пользователем), Amazon SQS указывает вместо него IP-адрес.

Вопрос. Что такое длинные опросы Amazon SQS?

Длинные опросы Amazon SQS – это один из способов извлечения сообщений из очередей Amazon SQS. Если ответ на обычные короткие опросы возвращается сразу же, даже когда опрашиваемая очередь пуста, то ответ на длинные опросы не возвращается до тех пор, пока сообщение не окажется в очереди либо не будет превышен период ожидания длинного запроса.

Длинные опросы позволяют легко и без лишних затрат извлекать сообщения из очереди Amazon SQS, как только они станут доступны. Использование длинных опросов может уменьшить стоимость пользования сервисом SQS за счет сокращения числа пустых ответов. Дополнительную информацию см. в разделе Длинные опросы Amazon SQS Руководства по Amazon SQS для разработчиков.

Вопрос. Взимается ли дополнительная плата при использовании длинных опросов Amazon SQS?

Нет. Вызовы ReceiveMessage длинных опросов тарифицируются точно так же, как вызовы ReceiveMessage коротких опросов.

Вопрос. Когда следует использовать длинные опросы Amazon SQS, а когда короткие?

В большинстве случаев использовать длинные опросы Amazon SQS предпочтительнее, чем короткие. Длинные опросы позволяют получателям принимать сообщения из очереди по мере их поступления в очередь, уменьшая количество возвращенных пустых ответов ReceiveMessageResponse.

В большинстве примеров использования длинные опросы Amazon SQS позволяют повысить производительность и снизить затраты. Тем не менее, если приложение требует немедленного ответа на вызов ReceiveMessage, воспользоваться преимуществами длинных опросов, скорее всего, получится только после внесения некоторых изменений в приложение.

Например, если в приложении есть отдельный поток, опрашивающий несколько очередей, замена коротких опросов на длинные вряд ли возможна, поскольку поток будет ожидать истечения периода длинного опроса при обращении к каждой пустой очереди и откладывать обработку очередей, содержащих сообщения.

В таком приложении рекомендуется использовать один поток для обработки только одной очереди, что позволяет приложению пользоваться всеми преимуществами, предоставляемыми длинным опросом Amazon SQS.

Вопрос. Какое значение периода ожидания длинных опросов следует использовать?

В общем случае период ожидания для длинных опросов не рекомендуется устанавливать более 20 секунд. Поскольку большее значение периода ожидания длинного опроса уменьшает количество возвращаемых пустых ответов ReceiveMessageResponse, попробуйте установить максимально возможное значение для периода ожидания длинного опроса.

Если максимальное 20-секундное значение не подходит для вашего приложения (см. пример в предыдущем вопросе), установите для длинного опроса более короткое время ожидания, вплоть до одной секунды.

Все AWS SDK по умолчанию работают с 20-секундным периодом ожидания длинных опросов. Если для доступа к Amazon SQS не используется AWS SDK или если для AWS SDK уже установлено меньшее время ожидания, возможно, потребуется изменить настройки клиента Amazon SQS, чтобы использовать более длинные опросы или использовать длинные опросы с меньшим временем ожидания.

Вопрос. Что такое AmazonSQSBufferedAsyncClient для Java?

AmazonSQSBufferedAsyncClient для Java обеспечивает реализацию интерфейса AmazonSQSAsyncClient и добавляет несколько важных возможностей.

  • Автоматическое пакетирование нескольких запросов SendMessage, DeleteMessage или ChangeMessageVisibility без внесения каких-либо необходимых изменений в приложение.
  • Предварительная загрузка сообщений в локальный буфер, которая позволяет приложению немедленно начать обработку сообщений из Amazon SQS, не дожидаясь извлечения сообщений.

Совместное использование автоматического пакетирования и предварительной загрузки увеличивает пропускную способность и уменьшает задержку, вносимую приложением, одновременно снижая затраты из-за уменьшения количества запросов Amazon SQS. Дополнительную информацию см. в разделе Буферизация на стороне клиента и создание пакетов запросов Руководства по Amazon SQS для разработчиков.

Вопрос. Где можно загрузить клиент AmazonSQSBufferedAsyncClient для Java?

Клиент AmazonSQSBufferedAsyncClient можно загрузить в составе AWS SDK для Java.

Вопрос. Потребуется ли внесение изменений в приложение при использовании клиента AmazonSQSBufferedAsyncClient для Java?

Нет. Клиент AmazonSQSBufferedAsyncClient для Java реализован в виде быстрой замены существующего клиента AmazonSQSAsyncClient.

Если обновить приложение для использования последней версии AWS SDK и изменить устройство своего клиента, чтобы он использовал клиент AmazonSQSBufferedAsyncClient для Java вместо клиента AmazonSQSAsyncClient, то приложение получит дополнительные преимущества автоматического пакетирования и предварительной загрузки.

Вопрос. Как подписать очереди сообщений Amazon SQS для получения оповещений из тем Amazon SNS?

  1. В консоли Amazon SQS выберите очередь Amazon SQS.
  2. В разделе Queue Actions из раскрывающегося списка выбрать Subscribe Queue to SNS Topic.
  3. В диалоговом окне подписки выбрать тему из раскрывающегося списка Choose a Topic и нажать кнопку Subscribe.

Дополнительную информацию см. в разделе Подписка очереди на тему Amazon SNS Руководства по Amazon SQS для разработчиков.

Вопрос. Можно ли удалить все сообщения в очереди, не удаляя саму очередь?

Да. Все сообщения в очереди Amazon SQS можно удалить с помощью операции PurgeQueue.

При очищении очереди будут удалены все сообщения, которые были отправлены в нее ранее. Поскольку сама очередь сообщений и ее атрибуты остаются, перенастраивать очередь сообщений не требуется, можно продолжить ее использование.

Чтобы удалить только определенные сообщения, используйте операции DeleteMessage или DeleteMessageBatch.

Более подробные сведения см. в учебном пособии Удаление сообщений из очереди Amazon SQS.

Скважинные насосы в Казани | Погружные скважинные насосы Казань

Лучшие цены

Помощь в подборе

Оборудование сертифицировано

Оперативная поставка

Монтаж и ПНР

Доставка на объект

После бурения скважины, определения ее дебета, статического и динамического уровня предстоит задача по подбору скважинного насоса. Основными характеристиками скважинного насоса является: диаметр в дюймах, производительность, высота подъема воды, напряжение 220/380В. Неразрывно с подбором насоса необходимо выбрать систему его управления (автоматика), которая может работать по разным принципам (наполнение резервуара/ поддержание давления/ поддержание расхода воды). Вы можете подобрать скважинный насос, обратившись в наш офис в Казани.

Отправьте заявку на профессиональный подбор оборудования для вашего объекта

11 893 ₽

Насос скважинный WT Pumps SP 1809, выносной конденсаторный блок

Заказать

Подробнее

13 514 ₽

Насос скважинный WT Pumps SP-1023 с двигателем OPT 150 3x380B SUMOTO

Заказать

Подробнее

14 343 ₽

Насос погружной скважинный Водомет 55/35 ок Джилекс

Заказать

Подробнее

14 663 ₽

Насос скважинный 3,5″ 3ST 2-50 MINI Waterstry, 0,37 кВт, 1х230 В 50 Гц

Заказать

Подробнее

15 552 ₽

Насос скважинный с двигателем Speroni SPS 1809 1х220 В 0,55 кВт

Заказать

Подробнее

15 857 ₽

Насос скважинный 3″ Waterstry 3ST 1- 60 0,37 кВт, 1 х 230 В, 50 Гц

Заказать

Подробнее

15 954 ₽

Насос скважинный 3ST 2- 70 MINI 3,5″, Waterstry, 0,55 кВт, 1х230 В 50 Гц

Заказать

Подробнее

17 405 ₽

Насос скважинный 3″ Waterstry 3ST 2- 50 0,75 кВт, 1 х 230 В, 50 Гц

Заказать

Подробнее

18 344 ₽

Насос погружной скважинный Водомет 55/50 Джилекс

Заказать

Подробнее

18 438 ₽

Насос скважинный 3″ Waterstry 3ST 1- 85 0,55 кВт, 1 х 230 В, 50 Гц

Заказать

Подробнее

19 302 ₽

Насос скважинный 4″ Waterstry STS 0720 1×220 В 0.

75 кВт

Заказать

Подробнее

19 570 ₽

Насос скважинный 3″ Waterstry 3ST 3- 50 0,75 кВт, 1 х 230 В, 50 Гц

Заказать

Подробнее

20 120 ₽

Насос скважинный 3″ Waterstry 3ST 2- 70 0,75 кВт, 1 х 230 В, 50 Гц

Заказать

Подробнее

20 758 ₽

Насос скважинный Waterstry 3″ 3ST 1-105, 0,75 кВт 1 х 230 В 50 Гц

Заказать

Подробнее

21 523 ₽

Насос погружной скважинный Водомет 40/75 Джилекс

Заказать

Подробнее

21 552 ₽

Насос скважинный 4″ Waterstry STS 0513 1х220 В 0.37 кВт

Заказать

Подробнее

22 224 ₽

Насос погружной скважинный Водомет 55/75 Джилекс

Заказать

Подробнее

22 230 ₽

Насос скважинный 4″ Waterstry SPS 0514 1х220 В 0,37 кВт

Заказать

Подробнее

22 301 ₽

Насос скважинный 4″ Waterstry STS 0526 1х220 В 0,75 кВт

Заказать

Подробнее

22 381 ₽

Насос скважинный 3″ Waterstry 3ST 3- 65 0,92 кВт, 1 х 230 В, 50 Гц

Заказать

Подробнее

22 488 ₽

Насос погружной скважинный 3″ Waterstry SQS 2- 90, 1,10 кВт, 1 х 230 В, 50 Гц с кабелем 1,5 м

Заказать

Подробнее

22 825 ₽

Насос скважинный 3″ Waterstry 3ST 2- 85 1,1 кВт, 1 х 230 В, 50 Гц

Заказать

Подробнее

22 883 ₽

Насос скважинный 4″ Waterstry STS 0730 1×220 В 1.

1 кВт

Заказать

23 795 ₽

Насос скважинный 4″ Waterstry SPS 0518 1х220 В 0,55 кВт

Заказать

Подробнее

24 604 ₽

Насос скважинный 3″ Waterstry 3ST 3- 75 1,1 кВт, 1 х 230 В, 50 Гц

Заказать

24 904 ₽

Насос скважинный 4″ Waterstry SPS 1023 3х380 В 1,1 кВт

Заказать

25 282 ₽

Насос скважинный 4″ Waterstry SPS 0521 1х220 В 0,55 кВт

Заказать

25 343 ₽

Насос скважинный 3″ Waterstry 3ST 2-100 1,1 кВт, 1 х 230 В, 50 Гц

Заказать

26 467 ₽

Насос скважинный 4″ Waterstry SPS 1018 1х220 В 0,75 кВт

Заказать

Подробнее

26 865 ₽

Насос погружной скважинный Водомет 55/90 Джилекс

Заказать

27 961 ₽

Насос скважинный 3″ Waterstry 3ST 3-90 1,5 кВт, 1 х 230 В, 50 Гц

Заказать

29 088 ₽

Насос скважинный 3″ Waterstry 3ST 2-120 1,5 кВт, 1 х 230 В, 50 Гц

Заказать

29 225 ₽

Насос скважинный с двигателем Speroni SPS 0521 1х220 В 0,55 кВт

Заказать

32 101 ₽

Насос скважинный с двигателем Speroni SPS 1023 1х220 В 1,1 кВт

Заказать

33 561 ₽

Насос скважинный 4″ Waterstry SPS 1809 1×220 В 0,55 кВт

Заказать

33 660 ₽

Насос скважинный 4″ Waterstry STS 1311 1х220 В 0,75 кВт

Заказать

34 766 ₽

Насос скважинный 4″ Waterstry STS 0715 1×220 В 0.

55 кВт

Заказать

Подробнее

34 998 ₽

Насос погружной скважинный Водомет 110/110 Джилекс

Заказать

35 062 ₽

Насос скважинный 3″ Waterstry 3ST 3-75 Н, 1,1 кВт, 1х230 В 50 Гц с кабелем 60м/1,50мм2

Заказать

35 222 ₽

Насос скважинный 4″ Waterstry STS 1014 1х220 В 0,75 кВт

Заказать

36 968 ₽

Насос скважинный с двигателем Speroni SPS 1028 1х220 В 1,5 кВт

Заказать

37 306 ₽

Насос скважинный 4″ Waterstry SPS 1009 1х220 В 0,37 кВт

Заказать

37 409 ₽

Насос скважинный 4″ Waterstry STS 2512 1х220 В 1,1 кВт

Заказать

38 025 ₽

Насос скважинный 4″ Waterstry STS 1316 1х220 В 1,1 кВт

Заказать

38 025 ₽

Насос скважинный 4″ Waterstry STS 1814 1х220 В 1,1 кВт

Заказать

38 819 ₽

Насос скважинный 4″ Waterstry SPS 1809 1х220 В 0,55 кВт

Заказать

39 881 ₽

Насос скважинный 4″ Waterstry STS 1020 1×220 В 1,1 кВт

Заказать

42 911 ₽

Насос скважинный 4″ Waterstry SPS 1013 1х220 В 0,55 кВт

Заказать

43 641 ₽

Насос скважинный 4″ Waterstry SPS 1812 1х220 В 0,75 кВт

Заказать

43 704 ₽

Насос скважинный 4″ Waterstry STS 1321 1х220 В 1,5 кВт

Заказать

43 704 ₽

Насос скважинный 4″ Waterstry STS 1818 1х220 В 1,5 кВт

Заказать

43 741 ₽

Насос скважинный 3″ Waterstry 3ST 2-100 Н, 1,1 кВт, 1х230 В 50 Гц с кабелем 85м, 2,00мм2

Заказать

45 198 ₽

Насос скважинный 4″ Waterstry SPS 1815 3х380 В 1,1 кВт

Заказать

48 134 ₽

Насос скважинный 4″ Waterstry SPS 1818 3х380 В 1,1 кВт

Заказать

48 693 ₽

Насос скважинный 4″ Waterstry SPS 1815 1×220 В 1,1 кВт

Заказать

48 875 ₽

Насос скважинный 3″ Waterstry 3ST 3-90 Н, 1,5 кВт, 1х230 В 50 Гц с кабелем 80м/2,50мм2

Заказать

50 908 ₽

Насос скважинный 4″ Waterstry SPS 2517 3х380 В 1,5 кВт

Заказать

51 626 ₽

Насос скважинный 4″ Waterstry SPS 1818 1х220 В 1,1 кВт

Заказать

54 514 ₽

Насос скважинный с двигателем Speroni SPS 1028 3х380 В 1,5 кВт

Заказать

54 791 ₽

Насос скважинный 4″ Waterstry SPS 2517 1х220 В 1,5 кВт

Заказать

55 228 ₽

Насос скважинный 3″ Waterstry 3ST 2-120 Н, 1,5 кВт, 1х230 В 50 Гц с кабелем 100м/2,50мм2

Заказать

57 010 ₽

Насос скважинный 4″ Waterstry SPS 1023 1х220 В 1,1 кВт

Заказать

58 729 ₽

Насос скважинный Speroni 4″ SPM 70-21 2,00 HP 1,50 кВт

Заказать

58 776 ₽

Насос скважинный 4″ Waterstry SPS 1825 3х380 В 1,5 кВт

Заказать

59 050 ₽

Насос скважинный 4″ Waterstry SPS 1822 1×220 В 1,5 кВт

Заказать

62 658 ₽

Насос скважинный 4″ Waterstry SPS 1825 1х220 В 1,5 кВт

Заказать

62 934 ₽

Насос скважинный 4″ Waterstry SPS 2521 1х220 В 2,2 кВ

Заказать

67 295 ₽

Насос скважинный 4″ Waterstry SPS 2525 1х220 В 2,2 кВт

Заказать

70 701 ₽

Насос скважинный 4″ Waterstry SPS 1829 1×220 В 2,2 кВт

Заказать

74 958 ₽

Насосная часть SPS-2544 (4.

0 кВт) Speroni

Заказать

75 022 ₽

Насос скважинный 4″ Waterstry SPS 1833 3х380 В 2,2 кВт

Заказать

76 584 ₽

Насос скважинный 4″ Waterstry SPS 1833 1х220 В 2,2 кВт

Заказать

102 342 ₽

Насос скважинный 4″ Waterstry SPS 4018 3х380 В 3,0 кВт

Заказать

112 754 ₽

Насос скважинный 4″ Waterstry SPS 2544 3х380 В 4,0 кВт

Заказать

116 250 ₽

Насос скважинный 4″ Waterstry SPS 7013 3х380 В 4,0 кВт

Заказать

120 322 ₽

Насос скважинный 4″ Waterstry SPS 4021 3х380 В 4,0 кВт

Заказать

131 984 ₽

Насос скважинный 4″ Waterstry SPS 4025 3х380 В 4,0 кВт

Заказать

138 330 ₽

Насос скважинный 4″ Waterstry SPS 7018 3х380 В 5,5 кВт

Заказать

157 699 ₽

Насос скважинный 4″ Waterstry SPS 4030 3х380 В 5,5 кВт

Заказать

179 088 ₽

Насос скважинный 4″ Waterstry SPS 7025 3х380 В 7,5 кВт

Заказать

195 331 ₽

Насосная часть SPS-150-19 (18.

5 кВт) Speroni

Заказать

239 223 ₽

Насосная часть SPS-90-31 (18.5 кВт) Speroni

Заказать

271 744 ₽

Насосная часть SPS-150-26 (22.0 кВт) Speroni

Заказать

Amazon SQS vs RabbitMQ / Хабр

Введение

Любой прогресс и оптимизация приветствуется кем угодно. Сегодня хотелось бы поговорить про прекрасную вещь, значительно облегчающую жизнь – очереди. Внедрение best practices в этом вопросе не только улучшают производительность приложения, но и успешно готовят ваше приложение к архитектуре «в стиле» Cloud Computing. Тем более, что не использовать уже готовые решения от провайдеров облачных технологий просто глупо.

В этой статье мы рассмотрим Amazon Web Services с точки зрения проектирования архитектуры средних и больших веб приложений.

Рассмотрим схему такого приложения:


Примерами такой организации могут быть различного рода агрегаторы: новости, курсы валют, котировки бирж и т. д.

External data providers генерируют поток сообщений, которые, проходя постобработку, сохраняются в базе.
Пользователи через web-tier делают выборку информации из базы по определённым критериям (фильтры, группировка, сортировка), а затем опциональная обработка выборок (различные статистические функции).

Amazon старается определить наиболее типовые компоненты приложений, затем автоматизирует и предоставляет компонент-сервис. Сейчас таких сервисов уже более двух десятков и с полным списком можно ознакомиться на сайте AWS: http://aws.amazon.com/products/. На хабре уже была статья с описанием ряда популярных сервисов: Популярно об Amazon Web Services. Привлекательно это в первую очередь тем, что отпадает необходимость в самостоятельной установке и конфигурации, а так же более высокой надёжностью и сдельной оплатой

И если использовать AWS, то схема проекта будет выглядеть так:

Несомненно, этот подход востребован и у него есть свой рынок. Но часто возникают вопросы о финансовой составляющей:

  1. Сколько можно сэкономить, используя AWS?
  2. Можно ли самостоятельно реализовать сервис с теми же свойствами, но за меньшие деньги?
  3. Где та грань, которая разделяет AWS от своего аналога?

Далее мы постараемся ответить на эти вопросы.

1. Обзор аналогов

Для сравнения будем рассматривать следующие компоненты:

  • Message-oriented middleware – RabbitMQ
  • Аналог вышеуказанного сервиса от AWS, который называется SQS

Сервис SQS оплачивается из расчета количества запросов к API + трафик
Рассмотрим каждый сервис подробнее.

1.1. SQS

Amazon SQS – это сервис позволяющий создавать и работать с очередями сообщений. Стандартный цикл работы с готовой очередью SQS следующий:

  1. Producer для отправки сообщения в очередь должен знать её URL. Затем, используя команду SendMessage, добавляет сообщение.
  2. Consumer получает сообщение используя команду ReceiveMessag.
  3. Как только сообщение будет получено, оно будет заблокировано для повторного получения на некоторое время.
  4. После успешной обработки сообщения Consumer использует команду DeleteMessage для удаления сообщения из очереди. Если во время обработки произошла ошибка или не была вызвана команда DeleteMessage, то по истечению таймаута сообщение вернётся обратно в очередь.

Таким образом, в среднем для отправки и обработки одного сообщения необходимо 3 вызова API.

Используя SQS, вы платите за количество вызовов API + трафик между регионами. Стоимость 10к вызовов составляет 0.01$, т.е. в среднем за 10к сообщений (х3 вызова API) вы платите 0.03$. Расценки в других регионах вы можете посмотреть тут.

Существует большое количество вариантов организации сервиса отправки сообщений:

  • RabbitMQ
  • ActiveMQ
  • ZMQ
  • OpenMQ
  • ejabbered (XMPP)

Каждый вариант имеет свои плюсы и минусы. Мы выберем RabbitMQ, как одну из самых популярных реализацию протокола AMQP.

1.2. RabbitMQ

1.2.1. Схема деплоймента

Сервер с установленным RabbitMQ и настройками по умолчанию выдаёт очень хорошую производительность. Но такой вариант деплоймента нас не устраивает, т.к. в случае падения этого узла мы можем получить сразу ряд проблем:

  1. Потеря важных данных в сообщениях;
  2. «Скапливание» информации на Producer-ах, что может привести к перегрузке Consumer-ов после восстановления работы очереди;
  3. Остановка работы всего приложения на время решения проблемы.

В тестировании будем использовать 2 узла в режиме active-active с репликацией очередей между узлами. В рамках RabbitMQ это называется mirrored queues.

Для каждой такой очереди определяется мастер и набор слейвов, где хранится копия очереди. В случае падения мастер-узла, один из слейвов выбирается мастером.

Что бы создать такую очередь задаётся параметр «x-ha-policy» при декларировании, который указывает, где должны храниться копии очереди. Возможны 2 значения параметра

  • all: копии очереди будут хранится на всех узлах кластера. При добавлении нового узла в кластер, на нём будет создана копия;
  • nodes: копии будут созданы только на узлах, заданных параметром «x-ha-policy-params».

Детальнее о mirrored queues можно почитать тут: http://www.rabbitmq.com/ha.html.

1.2.2. Техника замера производительности

Ранее мы рассмотрели, как будет организовано тестовое окружение. Теперь давайте рассмотрим, что и как мы будем мерять.
Для всех измерений использовались m1.small инстансы (AWS).

Будем проводить ряд замеров:
Скорость отправки сообщений до определённого значения, потом скорость получения – тем самым мы проверим деградацию производительности с увеличением очереди.

1. Скорость отправки сообщений до определённого значения, потом скорость получения – тем самым мы проверим деградацию производительности с увеличением очереди.
2. Одновременная отправка и получение сообщений из одной очереди.
3. Одновременная отправка и получение сообщений из разных очередей.
4. Асимметричная нагрузка на очередь:

  • a. Отправляют в очередь в 10 раз больше потоков, чем принимают;
  • b. Получают из очереди в 10 раз больше потоков, чем отправляют.

5. Отправка и получение сообщений разных размеров:

  • a. 16 байт;
  • b. 1 килобайт;
  • c. 64 килобайта (max for SQS).

Все тесты кроме первого будут проводиться в 3 этапа:

  1. Прогрев 2 секунды;
  2. Прогон теста 15 секунд;
  3. Очистка очереди.

Подтверждение и получение сообщений (Message Acknowledgement)

Это свойство используется для подтверждения доставки и обработки сообщения. Существует два режима работы:

  • Auto acknowledge – сообщение считается успешно доставленным сразу после того, как оно будет отправлено получателю; в этом режиме для получения одного сообщения достаточно всего одного обращения к серверу.
  • Manual acknowledge – сообщение считается успешно доставленным после того, как получатель вызовет соответствующую команду. Этот режим позволяет обеспечить гарантированную обработку сообщения, если подтверждать доставку только после обработки. В этом режиме требуется два обращения к серверу.

В тесте выбран второй режим, т.к. он соответствует работе SQS, где обработка сообщения делается двумя командами: ReceiveMessage и DeleteMessage.

Batch processing

Что бы не тратить на каждом сообщении время для установки соединения, авторизации и прочего, RabbitMQ и SQS позволяют обрабатывать сообщения пакетами. Это доступно как для отправки, так и для получения сообщения. Т.к. пакетная обработка по умолчанию отключена и в RabbitMQ и в SQS, мы так же не будем её использовать для сравнения.

1.2.3. Результаты тестирования

Load-Unload Test

Сводные результаты:

Load-Unload Test msg/s Время запроса
avg, ms min, ms max, ms 90%, ms
SQS Consume 198 25 17 721 28
Produce 317 16 10 769 20
RabbitMQ Consume 1293 3 0 3716 3
Produce 1875 2 0 14785 0

Из таблицы видно, что SQS работает значительно стабильнее, чем RabbitMQ, в котором возможны провалы при отправке сообщения на 15 секунд! К сожалению, сразу причину такого поведения найти не удалось, а в тесте стараемся придерживаться стандартных настроек. При этом средняя скорость у RabbitMQ примерно в 6 раз выше, чем у SQS, а время выполнения запроса в несколько раз ниже.

Далее приведены графики с распределением средней скорости в зависимости от времени.

В целом, не падения производительности с ростом количества сообщений в очереди не замечено, а значит можно не бояться, что при падении принимающих узлов очередь станет узким местом.

Parallel

Не менее интересен тест зависимости скорости работы от количества одновременно работающих потоков. Результаты теста SQS можно легко предугадать: поскольку работа идёт по HTTP протоколу и большую часть времени занимает установка соединения, то, предположительно, результаты должны расти с количеством потоков, что хорошо иллюстрирует следующая таблица:

SQS
msg/s
Threads
1 5 10 40
Produce 65 324 641 969
Consume 33 186 333 435

Среднее время одного запроса для отправки сообщения составляет 16 мс, а для получения 29 мс.
Так же видно, что для 1, 5 и 10 потоков зависимость линейная, но при увеличении до 40 потоков, средняя скорость возрастает на 50% для отправки и 30% для получения, но при этом значительно возрастает среднее время запроса: 43мс и 98мс соответственно.

Для RabbitMQ насыщение по скорости происходит значительно быстрее, уже при 5 потоках достигается максимум:

RabbitMQ Threads Threads
1 5 10 40
Produce speed, msg/s 3086 3157 3083 3200
latency, ms 0 1 3 11
Consume speed, msg/s 272 811 820 798
latency, ms 3 6 12 51

При тестировании обнаружилась особенность: если одновременно работают 1 поток на отправку и 1 поток на получение, то скорость получения сообщений падает практически до 0, при этом поток отправки показывает максимальную производительность. Проблема решается, если принудительно переключать контекст после каждой итерации теста, при этом падает пропускная способность отправки, но значительно снижается верхняя граница времени выполнения запроса. Из локальных тестов при 1 потоке (отправка/чтение): 11000/25 против 5000/1000.

Дополнительно провели тест для RabbitMQ с несколькими очередями для 5 потоков:

RabbitMQ Queues
1 5
Produce 3157 3489
Consume 811 880

Видно, что скорость для нескольких очередей немного выше. Сводные результаты для 10 потоков представлены на следующей диаграмме:

Size

В этом тесте рассмотрим зависимость скорости от размера передаваемых данных.

И RabbitMQ и SQS показали ожидаемое ухудшение скорости отправки и получения с ростом размера сообщения. Помимо этого, очередь в RabbitMQ с ростом размера сообщения чаще «зависает» и не отвечает на запросы. Это косвенно подтверждает догадку о том, что это связанно с работой с жестким диском.

Сравнительные результаты скорости:

Сравнительные результаты времени запроса:

2. Расчёт стоимости и рекомендации

Из расчётной стоимости 0.08$ за один small instance в европейском регионе получаем стоимость в 0.16$ за RabbitMQ в конфигурации из двух узлов + стоимость трафика. В SQS стоимость отправки и получения 10000 сообщений составляет 0.03$. Получаем следующую зависимость:

60 тысяч сообщений в час – это примерно 17 сообщений в секунду, что значительно меньше, чем скорость, которую могут обеспечить SQS и RabbitMQ.

Таким образом, если вашему приложению требуется скорость в среднем меньше 17 сообщений в секунду, то предпочтительным будет использовать SQS. Если потребности приложения становятся выше, то стоит рассмотреть пути миграции на выделенные messaging сервера.

Важно понимать, что эти рекомендации справедливы только для средних скоростей, и расчёты надо проводить на всём периоде цикла колебаний нагрузки, но если вашему приложению в пике требуется скорость значительно выше, чем позволяет SQS, то это так же повод задуматься о смене провайдера.

Ещё одной причиной использовать RabbitMQ может стать требование к latency запроса, которая на порядок ниже, чем у SQS.

2.1. Можно ли снизить стоимость RabbitMQ решения?

Есть два пути снижения стоимости:

  • Не использовать кластер.
  • Использовать micro instance.

В первом случае теряется HA кластера в случае падения узла или всей активной зоны, но это не страшно, если всё приложение хостится только в одной зоне.
Во втором случае micro instance могут быть урезаны ресурсы, если в течение некоторого времени утилизация ресурсов близка к 100%. Это может повлиять на работу очереди, когда используется persistence очереди.

3. Вывод

Таким образом мы видим, что однозначного ответа на вопрос «А какое же решение использовать мне?» просто нет. Все зависит от множества факторов: от размера вашего кошелька, от количества сообщений в секунду и времени отправки этих сообщений. Тем не менее, на основании метрик, приведенных в этом материале, можно просчитать поведение для конкретного случая.

Спасибо!

Статья написана и адаптированна по материалам исследования Максима Брунера (minim), для EPAM Cloud Computing Competency Center

Amazon SQS: часто задаваемые вопросы | Служба очередей сообщений

Обзор

Вопрос: Каковы преимущества Amazon SQS по сравнению с собственными или пакетными системами очередей сообщений?

Amazon SQS предоставляет ряд преимуществ по сравнению с созданием собственного программного обеспечения для управления очередями сообщений или использованием коммерческих систем или систем очередей сообщений с открытым исходным кодом, которые требуют значительных предварительных затрат времени на разработку и настройку.

Эти альтернативы требуют постоянного обслуживания оборудования и ресурсов системного администрирования. Сложность настройки и управления этими системами усугубляется необходимостью избыточного хранения сообщений, которое гарантирует, что сообщения не будут потеряны в случае сбоя оборудования.

В отличие от этого, Amazon SQS не требует дополнительных административных издержек и требует минимальной настройки. Amazon SQS работает в огромных масштабах, обрабатывая миллиарды сообщений в день. Вы можете масштабировать объем трафика, отправляемого в Amazon SQS, в большую или меньшую сторону без какой-либо настройки. Amazon SQS также обеспечивает чрезвычайно высокую надежность сообщений, что придает вам и вашим заинтересованным сторонам дополнительную уверенность.

Вопрос. Чем Amazon SQS отличается от Amazon Simple Notification Service (SNS)?

Amazon SNS позволяет приложениям отправлять срочные сообщения нескольким подписчикам с помощью механизма «push», что избавляет от необходимости периодически проверять или «опрашивать» наличие обновлений. Amazon SQS – это служба очереди сообщений, используемая распределенными приложениями для обмена сообщениями с помощью модели опроса, которую можно использовать для отделения отправляющих и принимающих компонентов.

Вопрос. Чем Amazon SQS отличается от Amazon MQ?

Если вы используете обмен сообщениями с существующими приложениями и хотите быстро и легко перенести обмен сообщениями в облако, мы рекомендуем вам рассмотреть Amazon MQ. Он поддерживает стандартные API и протоколы, поэтому вы можете переключиться с любого стандартного брокера сообщений на Amazon MQ, не переписывая код обмена сообщениями в своих приложениях. Если вы создаете совершенно новые приложения в облаке, мы рекомендуем вам рассмотреть Amazon SQS и Amazon SNS. Amazon SQS и SNS — это облегченные, полностью управляемые сервисы очередей сообщений и тем, которые масштабируются почти бесконечно и предоставляют простые и удобные API.

Вопрос: Обеспечивает ли Amazon SQS упорядочение сообщений?

Да. Очереди FIFO (first-in-first-out) сохраняют точный порядок отправки и получения сообщений. Если вы используете очередь FIFO, вам не нужно размещать информацию о последовательности в своих сообщениях. Дополнительные сведения см. в разделе «Логика очереди FIFO» в Руководстве разработчика по Amazon SQS .

Стандартные очереди обеспечивают возможность свободного FIFO, которая пытается сохранить порядок сообщений. Однако, поскольку стандартные очереди предназначены для массового масштабирования с использованием высокораспределенной архитектуры, получение сообщений в точном порядке их отправки не гарантируется.

Вопрос. Гарантирует ли Amazon SQS доставку сообщений?

Стандартные очереди обеспечивают доставку по крайней мере один раз, что означает, что каждое сообщение доставляется по крайней мере один раз.

Очереди FIFO обеспечивают однократную обработку, что означает, что каждое сообщение доставляется один раз и остается доступным до тех пор, пока потребитель не обработает его и не удалит. Дубликаты в очередь не вносятся.

Вопрос. Чем Amazon SQS отличается от Amazon Kinesis Streams?

Amazon SQS предлагает надежную, масштабируемую размещенную очередь для хранения сообщений по мере их перемещения между приложениями или микросервисами. Он перемещает данные между компонентами распределенного приложения и помогает разделить эти компоненты. Amazon SQS предоставляет общие конструкции промежуточного программного обеспечения, такие как очереди недоставленных сообщений и управление ядовитыми пилюлями. Он также предоставляет общий API веб-сервисов и может быть доступен для любого языка программирования, поддерживаемого AWS SDK. Amazon SQS поддерживает как стандартные очереди, так и очереди FIFO.

Amazon Kinesis Streams позволяет обрабатывать потоковые большие данные в режиме реального времени, а также считывать и воспроизводить записи в нескольких приложениях Amazon Kinesis. Клиентская библиотека Amazon Kinesis (KCL) доставляет все записи для заданного ключа раздела в один и тот же обработчик записей, что упрощает создание нескольких приложений, считывающих данные из одного потока Amazon Kinesis (например, для выполнения подсчета, агрегирования и фильтрации). .

Дополнительные сведения см. в документации по Amazon Kinesis.

Вопрос. Использует ли Amazon SQS для своих собственных приложений?

Да. Разработчики Amazon используют Amazon SQS для различных приложений, ежедневно обрабатывающих большое количество сообщений. Ключевые бизнес-процессы как в Amazon.com, так и в AWS используют Amazon SQS.

Выставление счетов

Вопрос. Сколько стоит Amazon SQS?

Вы платите только за то, что используете, и минимальной платы нет.

Стоимость Amazon SQS рассчитывается для каждого запроса плюс плата за передачу данных из Amazon SQS (если только данные не передаются в экземпляры Amazon Elastic Compute Cloud (EC2) или функции AWS Lambda в том же регионе). Подробную информацию о разбивке цен по типам очередей и регионам см. в разделе Цены на Amazon SQS.

Вопрос. Что можно делать с уровнем бесплатного пользования Amazon SQS?

Уровень бесплатного пользования Amazon SQS предоставляет вам 1 миллион запросов в месяц бесплатно.

Многие небольшие приложения могут полностью работать в рамках уровня бесплатного пользования. Однако может взиматься плата за передачу данных. Дополнительные сведения см. в разделе Цены на Amazon SQS.

Уровень бесплатного пользования — это ежемесячное предложение. Бесплатное использование не накапливается по месяцам.

Вопрос. Будет ли взиматься плата за все запросы Amazon SQS?

Да, для любых запросов за пределами бесплатного уровня. Все запросы Amazon SQS являются платными и оплачиваются по одинаковому тарифу.

Вопрос: Пакетные операции Amazon SQS стоят больше, чем другие запросы?

Нет. Пакетные операции (SendMessageBatch, DeleteMessageBatch и ChangeMessageVisibilityBatch) стоят так же, как и другие запросы Amazon SQS. Группируя сообщения в пакеты, вы можете сократить расходы на Amazon SQS.

Вопрос: Как будет взиматься плата за использование Amazon SQS?

Первоначальная плата за использование Amazon SQS не взимается. В конце месяца с вашей кредитной карты будет автоматически списана сумма за использование в течение месяца.

Вы можете в любое время просмотреть расходы за текущий расчетный период на веб-сайте AWS:

  1. Войдите в свою учетную запись AWS.
  2. В разделе Ваша учетная запись веб-служб выберите Активность учетной записи .

Вопрос: Как я могу отслеживать расходы, связанные с моими очередями Amazon SQS, и управлять ими?

Вы можете помечать и отслеживать свои очереди для управления ресурсами и затратами, используя теги распределения затрат. Тег — это метка метаданных, состоящая из пары ключ-значение. Например, вы можете пометить свои очереди по центрам затрат, а затем классифицировать и отслеживать свои расходы на основе этих центров затрат.

Дополнительные сведения см. в разделе Тегирование очередей Amazon SQS в Руководстве разработчика по Amazon SQS. Дополнительную информацию о тегах распределения затрат для ресурсов AWS см. в разделе Использование тегов распределения затрат в Руководстве пользователя AWS Billing and Cost Management.

В: Включают ли ваши цены налоги?

Если не указано иное, наши цены не включают какие-либо применимые налоги и сборы, такие как НДС или применимый налог с продаж.

Для клиентов с платежным адресом в Японии использование AWS в любом регионе облагается налогом на потребление в Японии. Дополнительные сведения см. в часто задаваемых вопросах о налоге на потребление Amazon Web Services.

Возможности, функции и интерфейсы

Вопрос. Можно ли использовать Amazon SQS с другими сервисами AWS?

Да. Вы можете сделать свои приложения более гибкими и масштабируемыми, используя Amazon SQS с вычислительными сервисами, такими как Amazon EC2, Amazon Elastic Container Service (ECS) и AWS Lambda, а также с сервисами хранения и баз данных, такими как Amazon Simple Storage Service (Amazon S3). ) и Amazon DynamoDB.

Вопрос: Как я могу взаимодействовать с Amazon SQS?

Вы можете получить доступ к Amazon SQS с помощью Консоли управления AWS, которая помогает создавать очереди Amazon SQS и легко отправлять сообщения.

Amazon SQS также предоставляет API веб-сервисов. Он также интегрирован с AWS SDK, что позволяет вам работать на выбранном вами языке программирования.

Вопрос. Какие действия API доступны для Amazon SQS?

Информацию об операциях с очередью сообщений см. в Справочнике по API Amazon SQS.

В: Кто может выполнять операции с очередью сообщений?

Только владелец учетной записи AWS (или учетная запись AWS, которой владелец учетной записи делегировал права) может выполнять операции с очередью сообщений Amazon SQS.

Вопрос. Можно ли использовать службу сообщений Java (JMS) с Amazon SQS?

Да. Вы можете воспользоваться преимуществами масштаба, низкой стоимости и высокой доступности Amazon SQS, не беспокоясь и не тратя большие накладные расходы на запуск собственного кластера JMS.

Amazon предоставляет библиотеку обмена сообщениями Java Amazon SQS, которая реализует спецификацию JMS 1.1 и использует Amazon SQS в качестве поставщика JMS. Дополнительные сведения см. в разделе Использование JMS с Amazon SQS в Руководстве разработчика по Amazon SQS 9.0039 .

Вопрос: Как Amazon SQS идентифицирует сообщения?

Все сообщения имеют глобальный уникальный идентификатор, который Amazon SQS возвращает при доставке сообщения в очередь сообщений. Идентификатор не требуется для выполнения каких-либо дальнейших действий с сообщением, но он полезен для отслеживания получения определенного сообщения в очереди сообщений.

Когда вы получаете сообщение из очереди сообщений, ответ включает дескриптор получения, который вы должны предоставить при удалении сообщения.

Дополнительные сведения см. в разделе Идентификаторы очередей и сообщений в Руководстве разработчика по Amazon SQS.

Вопрос: Как Amazon SQS обрабатывает сообщения, которые невозможно обработать?

В Amazon SQS можно использовать API или консоль для настройки очередей недоставленных сообщений, которые получают сообщения из других исходных очередей. При настройке очереди недоставленных сообщений необходимо установить соответствующие разрешения для переадресации очереди недоставленных сообщений с помощью RedriveAllowPolicy.

RedriveAllowPolicy включает параметры для разрешения переадресации очереди недоставленных сообщений. Он определяет, какие исходные очереди могут указывать очереди недоставленных сообщений в качестве объекта JSON.

После создания очереди недоставленных сообщений она получает сообщения после того, как не может быть завершено максимальное количество попыток обработки. Очереди недоставленных сообщений можно использовать для изоляции сообщений, которые невозможно обработать для последующего анализа.

Дополнительные сведения см. в разделе «Использование очередей недоставленных сообщений Amazon SQS» в Руководстве разработчика по Amazon SQS.

В: Что такое время ожидания видимости?

Тайм-аут видимости — это период времени, в течение которого Amazon SQS не позволяет другим потребляющим компонентам получать и обрабатывать сообщения. Дополнительные сведения см. в разделе Время ожидания видимости в Руководстве разработчика по Amazon SQS .

Вопрос. Поддерживает ли Amazon SQS метаданные сообщений?

Да. Сообщение Amazon SQS может содержать до 10 атрибутов метаданных. Вы можете использовать атрибуты сообщения, чтобы отделить текст сообщения от описывающих его метаданных. Это помогает обрабатывать и хранить информацию с большей скоростью и эффективностью, поскольку вашим приложениям не нужно проверять все сообщение, прежде чем понять, как его обрабатывать.

Атрибуты сообщений Amazon SQS имеют форму троек имя-тип-значение. Поддерживаемые типы включают строку, двоичный файл и число (включая целое число, число с плавающей запятой и двойное число). Дополнительные сведения см. в разделе «Использование атрибутов сообщений Amazon SQS» в Руководстве разработчика по Amazon SQS .

В: Как определить время нахождения в очереди?

Чтобы определить время пребывания в очереди, вы можете запросить атрибут SentTimestamp при получении сообщения. Вычитание этого значения из текущего времени дает значение времени в очереди.

Вопрос: Какова типичная задержка для Amazon SQS?

Типичные задержки для запросов API SendMessage, ReceiveMessage и DeleteMessage составляют десятки или сотни миллисекунд.

В: Каково значение атрибута SenderId для анонимного доступа к сообщению?

Если идентификатор учетной записи AWS недоступен (например, когда анонимный пользователь отправляет сообщение), Amazon SQS предоставляет IP-адрес.

Вопрос. Что такое длительный опрос Amazon SQS?

Длительный опрос Amazon SQS — это способ извлечения сообщений из ваших очередей Amazon SQS. В то время как обычный короткий опрос возвращает результат немедленно, даже если опрашиваемая очередь сообщений пуста, длительный опрос не возвращает ответ до тех пор, пока сообщение не поступит в очередь сообщений или пока не истечет время длительного опроса.

Длительный опрос позволяет недорого извлекать сообщения из очереди Amazon SQS, как только сообщения становятся доступными. Использование длительного опроса может снизить стоимость использования SQS, поскольку вы можете уменьшить количество пустых приемов. Дополнительную информацию см. в разделе Долгий опрос Amazon SQS в Руководство разработчика Amazon SQS .

Вопрос. Взимается ли дополнительная плата за использование длительного опроса Amazon SQS?

Нет. Вызовы ReceiveMessage с длительным опросом тарифицируются точно так же, как вызовы ReceiveMessage с коротким опросом.

Вопрос. Когда следует использовать длительный опрос Amazon SQS, а когда — короткий опрос Amazon SQS?

Почти во всех случаях длинный опрос Amazon SQS предпочтительнее, чем короткий. Запросы с длительным опросом позволяют потребителям вашей очереди получать сообщения, как только они поступают в вашу очередь, при этом уменьшая количество возвращаемых пустых экземпляров ReceiveMessageResponse.

Длительный опрос Amazon SQS обеспечивает более высокую производительность при снижении затрат в большинстве случаев использования. Однако, если ваше приложение ожидает немедленного ответа на вызов ReceiveMessage, вы не сможете воспользоваться преимуществами длительного опроса без внесения некоторых изменений в ваше приложение.

Например, если ваше приложение использует один поток для опроса нескольких очередей, переключение с короткого опроса на длительный опрос, вероятно, не сработает, поскольку один поток будет ждать тайм-аута длительного опроса для любых пустых очередей, задерживая обработку любые очереди, которые могут содержать сообщения.

В таком приложении рекомендуется использовать один поток для обработки только одной очереди, что позволяет приложению воспользоваться преимуществами длительного опроса Amazon SQS.

В: Какое значение следует использовать для тайм-аута длительного опроса?

Как правило, для продолжительного тайм-аута опроса следует использовать не более 20 секунд. Поскольку более высокие значения таймаута длинного опроса сокращают количество возвращаемых пустых экземпляров ReceiveMessageResponse, постарайтесь установить максимально возможное время ожидания длинного опроса.

Если 20-секундный максимум не работает для вашего приложения (см. пример в предыдущем вопросе), установите более короткое время ожидания длинного опроса, всего 1 секунду.

Все AWS SDK по умолчанию работают с 20-секундными опросами. Если вы не используете AWS SDK для доступа к Amazon SQS или если вы настроили AWS SDK специально для более короткого времени ожидания, вам может потребоваться изменить клиент Amazon SQS, чтобы разрешить более длинные запросы или использовать более короткое время ожидания для длительного опроса. .

Вопрос. Что такое AmazonSQSBufferedAsyncClient для Java?

AmazonSQSBufferedAsyncClient для Java обеспечивает реализацию интерфейса AmazonSQSAsyncClient и добавляет несколько важных функций:

  • Автоматическое группирование нескольких запросов SendMessage, DeleteMessage или ChangeMessageVisibility без каких-либо обязательных изменений в приложении
  • Предварительная загрузка сообщений в локальный буфер, что позволяет вашему приложению немедленно обрабатывать сообщения из Amazon SQS, не дожидаясь получения сообщений

Совместная работа автоматической пакетной обработки и предварительной выборки увеличивает пропускную способность и снижает задержку вашего приложения, а также снижает ваши расходы за счет меньшего количества запросов Amazon SQS. Дополнительные сведения см. в разделе «Буферизация на стороне клиента и пакетная обработка запросов» в Руководстве разработчика по Amazon SQS .

Вопрос. Где можно загрузить AmazonSQSBufferedAsyncClient для Java?

Вы можете загрузить AmazonSQSBufferedAsyncClient как часть AWS SDK для Java.

Вопрос. Нужно ли мне переписывать приложение, чтобы использовать AmazonSQSBufferedAsyncClient для Java?

Нет. AmazonSQSBufferedAsyncClient для Java реализован в качестве замены существующего AmazonSQSAsyncClient.

Если вы обновите свое приложение, чтобы использовать последнюю версию SDK AWS, и измените свой клиент для использования AmazonSQSBufferedAsyncClient для Java вместо AmazonSQSAsyncClient, ваше приложение получит дополнительные преимущества автоматической пакетной обработки и предварительной выборки.

Вопрос. Как подписаться на очереди сообщений Amazon SQS для получения уведомлений из тем Amazon SNS?

  1. В консоли Amazon SQS выберите стандартную очередь Amazon SQS.
  2. В разделе «Действия очереди» в раскрывающемся списке выберите «Подписать очередь на тему SNS».
  3. В диалоговом окне выберите тему из раскрывающегося списка «Выбрать тему» ​​и нажмите «Подписаться».

Дополнительные сведения см. в разделе «Подписка очереди на тему Amazon SNS» в Руководство разработчика Amazon SQS .

В: Могу ли я удалить все сообщения в очереди сообщений, не удаляя саму очередь сообщений?

Да. Вы можете удалить все сообщения в очереди сообщений Amazon SQS с помощью действия PurgeQueue.

При очистке очереди сообщений все сообщения, ранее отправленные в очередь сообщений, удаляются. Поскольку ваша очередь сообщений и ее атрибуты остаются, нет необходимости перенастраивать очередь сообщений; вы можете продолжать использовать его.

Чтобы удалить только определенные сообщения, используйте действия DeleteMessage или DeleteMessageBatch.

Дополнительные сведения см. в этом учебном пособии: Удаление сообщений из очереди Amazon SQS.

SQS — документация Boto3 Docs 1.24.79

Клиент низкого уровня, представляющий Amazon Simple Queue Service (SQS)

Добро пожаловать в Справочник по API Amazon SQS .

Amazon SQS — это надежная, масштабируемая размещенная очередь для хранения сообщений по мере их перемещения между приложениями или микросервисами. Amazon SQS перемещает данные между компонентами распределенного приложения и помогает разделить эти компоненты.

Информацию о разрешениях, необходимых для использования этого API, см. в разделе Управление идентификацией и доступом в Руководстве разработчика по Amazon SQS .

Вы можете использовать SDK Amazon Web Services для доступа к Amazon SQS с использованием вашего любимого языка программирования. SDK автоматически выполняют следующие задачи:

  • Криптографически подписывайте запросы на обслуживание
  • Повторить запросы
  • Обработка ответов об ошибках

Дополнительная информация

  • Страница продукта Amazon SQS
  • Руководство разработчика Amazon SQS
    • Выполнение запросов API
    • Атрибуты сообщений Amazon SQS
    • Очереди недоставленных сообщений Amazon SQS
  • `Amazon SQS в *интерфейсе командной строки* http://docs. aws.amazon.com/cli/latest/reference/sqs/index.html`__
  • Общий справочник Amazon Web Services
    • Регионы и конечные точки
 импорт бото3
клиент = boto3.client('sqs')
 

Доступные методы:

  • add_permission()
  • can_paginate()
  • change_message_visibility()
  • change_message_visibility_batch()
  • закрыть()
  • create_queue()
  • delete_message()
  • delete_message_batch()
  • delete_queue()
  • get_paginator()
  • get_queue_attributes()
  • get_queue_url()
  • get_waiter()
  • list_dead_letter_source_queues()
  • list_queue_tags()
  • list_queues()
  • purge_queue()
  • получить_сообщение()
  • удалить_разрешение()
  • send_message()
  • send_message_batch()
  • set_queue_attributes()
  • tag_queue()
  • untag_queue()
add_permission ( **kwargs )

Добавляет разрешение в очередь для определенного принципала. Это позволяет совместно использовать доступ к очереди.

При создании очереди у вас есть права полного доступа к ней. Только вы, владелец очереди, можете предоставлять или запрещать доступ к очереди. Дополнительные сведения об этих разрешениях см. в разделе Разрешить разработчикам записывать сообщения в общую очередь в разделе Руководство разработчика Amazon SQS .

Примечание

  • AddPermission создает для вас политику. Вы можете использовать SetQueueAttributes для загрузки своей политики. Дополнительные сведения см. в разделе «Использование настраиваемых политик с языком политик доступа к Amazon SQS» в Руководстве разработчика по Amazon SQS .
  • Политика Amazon SQS может иметь не более 7 действий.
  • Чтобы удалить возможность изменять разрешения очереди, вы должны запретить доступ к AddPermission , RemovePermission и SetQueueAttributes действия в вашей политике IAM.

Некоторые действия принимают списки параметров. Эти списки задаются с использованием нотации param.n . Значения n — это целые числа, начинающиеся с 1. Например, список параметров с двумя элементами выглядит так:

&ИмяАтрибута.1=первый

&ИмяАтрибута.2=второй

Примечание

Разрешения для нескольких учетных записей не применяются к этому действию. Дополнительные сведения см. в разделе Предоставление разрешений для нескольких учетных записей роли и имени пользователя в Руководстве разработчика по Amazon SQS .

См. также: Документация по API AWS

Синтаксис запроса

 ответ = client.add_permission(
    QueueUrl='строка',
    Метка='строка',
    AWSAccountIds=[
        'нить',
    ],
    Действия=[
        'нить',
    ]
)
 
Параметры
  • QueueUrl ( строка ) —

    [ОБЯЗАТЕЛЬНО]

    URL-адрес очереди Amazon SQS, к которой добавляются разрешения.

    URL-адреса и имена очередей вводятся с учетом регистра.

  • Этикетка ( строка ) —

    [ОБЯЗАТЕЛЬНО]

    Уникальный идентификатор устанавливаемого вами разрешения (например, AliceSendMessage ). Максимум 80 символов. Допустимые символы включают буквенно-цифровые символы, дефисы ( - ) и символы подчеркивания ( _ ).

  • AWSAccountIds ( список ) —

    [ОБЯЗАТЕЛЬНО]

    Номера учетных записей Amazon Web Services субъектов, которые должны получить разрешение. Информацию о том, как найти идентификатор учетной записи Amazon Web Services, см. в разделе «Идентификаторы Amazon Web Services» в Руководстве разработчика Amazon SQS .

    • (строка) —
  • Действия ( список ) —

    [ОБЯЗАТЕЛЬНО]

    Действие, которое клиент хочет разрешить для указанного принципала. Допустимые значения: имя любого действия или *.

    Дополнительные сведения об этих действиях см. в разделе «Обзор управления разрешениями на доступ к ресурсу Amazon Simple Queue Service» в Руководстве разработчика по Amazon SQS .

    Указание SendMessage , DeleteMessage или ChangeMessageVisibility для ActionName.n также предоставляет разрешения для соответствующих пакетных версий этих действий: SendMessageBatch , DeleteMessageBatch и ChangeMessageVisibilityBatch .

    • (строка) —
Возвращает

Нет

Исключения

  • SQS.Client.exceptions.OverLimit
can_paginate ( имя_операции )

Проверить, можно ли разбить операцию на страницы.

Параметры
имя_операции ( строка ) — Имя операции. Это одно и то же имя как имя метода на клиенте. Например, если имя метода create_foo , и вы обычно вызываете операция как client.create_foo(**kwargs) , если create_foo операция может быть разбита на страницы, вы можете использовать вызов client.get_paginator("create_foo") .
Возвращает
True , если операция может быть разбита на страницы, Ложь в противном случае.
change_message_visibility ( **kwargs )

Изменяет время ожидания видимости указанного сообщения в очереди на новое значение. Время ожидания видимости сообщения по умолчанию составляет 30 секунд. Минимум 0 секунд. Максимум 12 часов. Для получения дополнительной информации см. Тайм-аут видимости в Руководство разработчика Amazon SQS .

Например, у вас есть сообщение с тайм-аутом видимости 5 минут. Через 3 минуты вы вызываете ChangeMessageVisibility с тайм-аутом 10 минут. Вы можете продолжать вызывать ChangeMessageVisibility , чтобы увеличить время ожидания видимости до максимально допустимого времени. Если вы попытаетесь продлить время ожидания видимости сверх максимального, ваш запрос будет отклонен.

Сообщение Amazon SQS имеет три основных состояния:

  • Отправлено производителем в очередь.
  • Получено потребителем из очереди.
  • Удалено из очереди.

Сообщение считается сохраненным после того, как оно отправлено в очередь производителем, но еще не получено из очереди потребителем (то есть между состояниями 1 и 2). Количество сохраняемых сообщений не ограничено. Сообщение считается в полете после того, как оно получено из очереди потребителем, но еще не удалено из очереди (то есть между состояниями 2 и 3). Существует ограничение на количество сообщений в пути.

Ограничения, применимые к сообщениям во время полета, не связаны с неограниченным количеством сохраненных сообщений.

Для большинства стандартных очередей (в зависимости от трафика очереди и невыполненных сообщений) может быть максимум около 120 000 находящихся в пути сообщений (полученных из очереди потребителем, но еще не удаленных из очереди). При достижении этого предела Amazon SQS возвращает сообщение об ошибке OverLimit . Чтобы не достичь предела, следует удалять сообщения из очереди после их обработки. Вы также можете увеличить количество очередей, используемых для обработки ваших сообщений. Чтобы запросить увеличение лимита, отправьте запрос в службу поддержки.

Для очередей FIFO может быть не более 20 000 находящихся в пути сообщений (полученных из очереди потребителем, но еще не удаленных из очереди). При достижении этого предела Amazon SQS не возвращает сообщений об ошибках.

Предупреждение

Если вы попытаетесь установить для параметра VisibilityTimeout значение, превышающее максимальное оставшееся время, Amazon SQS вернет ошибку. Amazon SQS не пересчитывает автоматически и не увеличивает время ожидания до максимального оставшегося времени.

В отличие от очереди, когда вы изменяете время ожидания видимости для определенного сообщения, значение времени ожидания применяется немедленно, но не сохраняется в памяти для этого сообщения. Если вы не удалите сообщение после его получения, тайм-аут видимости для сообщения вернется к исходному значению тайм-аута (а не к значению, которое вы установили с помощью кнопки 9).0450 ChangeMessageVisibility действие) при следующем получении сообщения.

См. также: Документация по API AWS

Синтаксис запроса

 ответ = client.change_message_visibility(
    QueueUrl='строка',
    ReceiptHandle='строка',
    ВидимостьТаймаут=123
)
 
Параметры
  • QueueUrl ( строка ) —

    [ОБЯЗАТЕЛЬНО]

    URL-адрес очереди Amazon SQS, видимость сообщения которой изменена.

    URL-адреса и имена очередей вводятся с учетом регистра.

  • ReceiptHandle ( строка ) —

    [ОБЯЗАТЕЛЬНО]

    Дескриптор квитанции, связанный с сообщением, время ожидания видимости которого изменено. Этот параметр возвращается действием ReceiveMessage.

  • VisibilityTimeout ( целое число ) —

    [ОБЯЗАТЕЛЬНО]

    Новое значение времени ожидания видимости сообщения (в секундах). Диапазон значений: 0 до 43200 . Максимум: 12 часов.

Возвращает

Нет

Исключения

  • SQS.Client.exceptions.MessageNotInflight
  • SQS.Client.exceptions.ReceiptHandleIsInvalid
change_message_visibility_batch ( **kwargs )

Изменяет время ожидания видимости нескольких сообщений. Это пакетная версия ChangeMessageVisibility. Результат действия над каждым сообщением сообщается отдельно в ответе. Вы можете отправить до 10 запросов “ChangeMessageVisibility“ с каждым Действие ChangeMessageVisibilityBatch .

Предупреждение

Поскольку пакетный запрос может привести к комбинации успешных и неуспешных действий, следует проверять пакетные ошибки, даже если вызов возвращает код состояния HTTP 200 .

Некоторые действия принимают списки параметров. Эти списки задаются с использованием нотации param.n . Значения n — это целые числа, начинающиеся с 1. Например, список параметров с двумя элементами выглядит так:

&ИмяАтрибута.1=первый

&ИмяАтрибута.2=второй

См. также: Документация по API AWS

Синтаксис запроса

 ответ = client.change_message_visibility_batch(
    QueueUrl='строка',
    Записи=[
        {
            «Идентификатор»: «строка»,
            'ReceiptHandle': 'строка',
            «ВидимостьТаймаут»: 123
        },
    ]
)
 
Параметры
  • QueueUrl ( строка ) —

    [ОБЯЗАТЕЛЬНО]

    URL-адрес очереди Amazon SQS, видимость сообщений которой изменена.

    URL-адреса и имена очередей вводятся с учетом регистра.

  • Записи ( список ) —

    [ОБЯЗАТЕЛЬНО]

    Список дескрипторов получения сообщений, для которых необходимо изменить время ожидания видимости.

    • (dict) —

      Содержит дескриптор квитанции и идентификатор записи для каждого сообщения в “ ChangeMessageVisibilityBatch .“

      Предупреждение

      Все следующие параметры списка должны иметь префикс ChangeMessageVisibilityBatchRequestEntry.n , где n — целочисленное значение, начинающееся с 1 . Например, список параметров для этого действия может выглядеть так:

      &ChangeMessageVisibilityBatchRequestEntry.1.Id=change_visibility_msg_2

      &ChangeMessageVisibilityBatchRequestEntry.1.ReceiptHandle=your_receipt_handle.0451

      &ChangeMessageVisibilityBatchRequestEntry. 1.VisibilityTimeout=45

      • Id (строка) -- [ОБЯЗАТЕЛЬНО]

        Идентификатор для этого конкретного дескриптора квитанции, используемого для сообщения результата.

        Примечание

        Id пакетного запроса должен быть уникальным в рамках запроса.

        Этот идентификатор может содержать до 80 символов. Допускаются следующие символы: буквенно-цифровые символы, дефисы (-) и символы подчеркивания (_).

      • ReceiptHandle (строка) -- [ОБЯЗАТЕЛЬНО]

        Ручка квитанции.

      • VisibilityTimeout (целое число) --

        Новое значение (в секундах) времени ожидания видимости сообщения.

Тип возврата

dict

Возвращает

Синтаксис ответа

 {
    'Успешный': [
        {
            «Идентификатор»: «строка»
        },
    ],
    'Не удалось': [
        {
            «Идентификатор»: «строка»,
            'SenderFault': Истина | Ложь,
            «Код»: «строка»,
            «Сообщение»: «строка»
        },
    ]
}
 

Структура ответа

  • (дикт. ) --

    Для каждого сообщения в пакете ответ содержит тег ChangeMessageVisibilityBatchResultEntry, если сообщение успешно доставлено, или тег BatchResultErrorEntry, если сообщение не удалось.

    • Успешный (список) --

      Список элементов ``ChangeMessageVisibilityBatchResultEntry``.

    • Ошибка (список) --

      Список элементов `` BatchResultErrorEntry ``.

Исключения

  • SQS.Client.exceptions.TooManyEntriesInBatchRequest
  • SQS.Client.exceptions.EmptyBatchRequest
  • SQS.Client.exceptions.BatchEntryIdsNotDistinct
  • SQS.Client.exceptions.InvalidBatchEntryId
закрыть ()

Закрывает базовые подключения к конечной точке.

create_queue ( ** kwargs )

Создает новую стандартную или FIFO-очередь. В запросе можно передать один или несколько атрибутов. Имейте в виду следующее:

  • Если не указать атрибут FifoQueue , Amazon SQS создаст стандартную очередь.

Примечание

Вы не можете изменить тип очереди после ее создания и не можете преобразовать существующую стандартную очередь в очередь FIFO. Вы должны либо создать новую очередь FIFO для своего приложения, либо удалить существующую стандартную очередь и воссоздать ее как очередь FIFO. Дополнительные сведения см. в разделе «Переход от стандартной очереди к очереди FIFO» в главе 9.0393 Руководство разработчика Amazon SQS .

  • Если вы не укажете значение атрибута, очередь будет создана со значением атрибута по умолчанию.
  • Если вы удаляете очередь, вы должны подождать не менее 60 секунд, прежде чем создавать очередь с тем же именем.

Чтобы успешно создать новую очередь, необходимо указать имя очереди, которое соответствует ограничениям, связанным с очередями, и является уникальным в рамках ваших очередей.

Примечание

После создания очереди необходимо подождать не менее одной секунды после ее создания, чтобы иметь возможность использовать очередь.

Чтобы получить URL-адрес очереди, используйте действие ``GetQueueUrl``. ``GetQueueUrl`` требуется только параметр QueueName . помните о существующих именах очередей:

  • Если указать имя существующей очереди вместе с точными именами и значениями всех атрибутов очереди, CreateQueue возвращает URL-адрес существующей очереди.
  • Если имя очереди, имена атрибутов или значения атрибутов не соответствуют существующей очереди, CreateQueue возвращает ошибку.

Некоторые действия требуют списков параметров. Эти списки задаются с использованием нотации param.n . Значения n — это целые числа, начинающиеся с 1. Например, список параметров с двумя элементами выглядит так:

&ИмяАтрибута.1=первый

&ИмяАтрибута. 2=второй

Примечание

Разрешения для нескольких учетных записей не применяются к этому действию. Дополнительные сведения см. в разделе Предоставление разрешений между учетными записями для роли и имени пользователя в разделе Руководство разработчика Amazon SQS .

См. также: Документация по API AWS

Синтаксис запроса

 ответ = client.create_queue(
    ИмяОчереди='строка',
    Атрибуты={
        'строка': 'строка'
    },
    теги={
        'строка': 'строка'
    }
)
 
Параметры
  • Имя очереди ( строка ) --

    [ОБЯЗАТЕЛЬНО]

    Имя новой очереди. К этому имени применяются следующие ограничения:

    • Имя очереди может содержать до 80 символов.
    • Допустимые значения: буквенно-цифровые символы, дефисы ( - ) и символы подчеркивания ( _ ).
    • Имя очереди FIFO должно заканчиваться суффиксом .fifo .

    URL-адреса и имена очередей вводятся с учетом регистра.

  • Атрибуты ( dict ) --

    Карта атрибутов с соответствующими значениями.

    Ниже перечислены имена, описания и значения специальных параметров запроса, которые Действие CreateQueue использует:

    • DelaySeconds — время в секундах, на которое задерживается доставка всех сообщений в очереди. Допустимые значения: целое число от 0 до 900 секунд (15 минут). По умолчанию: 0.
    • MaximumMessageSize — максимальное количество байтов, которое может содержать сообщение, прежде чем Amazon SQS отклонит его. Допустимые значения: целое число от 1024 байт (1 КиБ) до 262 144 байтов (256 КиБ). По умолчанию: 262 144 (256 КиБ).
    • MessageRetentionPeriod — время в секундах, в течение которого Amazon SQS хранит сообщение. Допустимые значения: целое число от 60 секунд (1 минута) до 1 209 600 секунд (14 дней). По умолчанию: 345 600 (4 дня).
    • Политика – Политика очереди. Действующая политика Amazon Web Services. Дополнительные сведения о структуре политик см. в разделе Обзор политик IAM Amazon Web Services в Руководстве пользователя Amazon IAM .
    • ReceiveMessageWaitTimeSeconds — время в секундах, в течение которого действие ReceiveMessage ожидает прибытия сообщения. Допустимые значения: целое число от 0 до 20 (секунд). По умолчанию: 0.
    • RedrivePolicy — строка, содержащая параметры функциональности очереди недоставленных сообщений исходной очереди в виде объекта JSON. Дополнительные сведения о политике повторной передачи и очередях недоставленных сообщений см. в разделе Использование очередей недоставленных сообщений Amazon SQS в Руководстве разработчика по Amazon SQS .
      • deadLetterTargetArn — имя ресурса Amazon (ARN) очереди недоставленных сообщений, в которую Amazon SQS перемещает сообщения после превышения значения maxReceiveCount .
      • maxReceiveCount — количество раз, когда сообщение доставляется в исходную очередь перед перемещением в очередь недоставленных сообщений. Когда ReceiveCount для сообщения превышает maxReceiveCount для очереди, Amazon SQS перемещает сообщение в очередь недоставленных сообщений.

    Примечание

    Очередь недоставленных сообщений очереди FIFO также должна быть очередью FIFO. Точно так же очередь недоставленных сообщений стандартной очереди также должна быть стандартной очередью.

    • VisibilityTimeout — время ожидания видимости очереди в секундах. Допустимые значения: целое число от 0 до 43 200 (12 часов). По умолчанию: 30. Дополнительные сведения о тайм-ауте видимости см. в разделе Тайм-аут видимости в Руководстве разработчика по Amazon SQS .

    Следующие атрибуты применяются только к шифрованию на стороне сервера:

    • KmsMasterKeyId — идентификатор главного ключа клиента (CMK), управляемого Amazon Web Services, для Amazon SQS или пользовательского CMK. Дополнительные сведения см. в разделе Ключевые термины. Хотя псевдоним управляемого Amazon Web Services CMK для Amazon SQS всегда равен alias/aws/sqs , псевдоним пользовательского CMK может, например, быть ``alias/ MyAlias ​​ `` . Дополнительные примеры см. в разделе KeyId в Справочнике по API службы управления ключами 9.0394 .
    • KmsDataKeyReusePeriodSeconds — время в секундах, в течение которого Amazon SQS может повторно использовать ключ данных для шифрования или расшифровки сообщений перед повторным вызовом KMS. Целое число, представляющее секунды, от 60 секунд (1 минута) до 86 400 секунд (24 часа). По умолчанию: 300 (5 минут). Более короткий период времени обеспечивает лучшую безопасность, но приводит к большему количеству вызовов KMS, за которые может взиматься плата после перехода на уровень бесплатного пользования. Дополнительные сведения см. в разделе Как работает период повторного использования ключа данных? .
    • SqsManagedSseEnabled — включает шифрование очереди на стороне сервера с использованием ключей шифрования, принадлежащих SQS. Для каждой очереди поддерживается только один вариант шифрования на стороне сервера (например, SSE-KMS или SSE-SQS).

    Следующие атрибуты применяются только к очередям FIFO (первым поступил – первым обслужен):

    • FifoQueue — Обозначает очередь как FIFO. Допустимые значения: true и false . Если вы не укажете атрибут FifoQueue , Amazon SQS создаст стандартную очередь. Вы можете указать этот атрибут только во время создания очереди. Вы не можете изменить его для существующей очереди. Когда вы устанавливаете этот атрибут, вы также должны предоставить MessageGroupId для ваших сообщений явно. Дополнительные сведения см. в разделе Логика очереди FIFO в Руководстве разработчика по Amazon SQS .
    • ContentBasedDeduplication — включает дедупликацию на основе содержимого. Допустимые значения: true и false . Дополнительные сведения см. в разделе Однократная обработка в Руководстве разработчика Amazon SQS . Обратите внимание на следующее:
      • Каждое сообщение должно иметь уникальный MessageDeduplicationId .
        • Вы можете явно указать MessageDeduplicationId .
        • Если вы не можете предоставить MessageDeduplicationId и включаете ContentBasedDeduplication для своей очереди, Amazon SQS использует хэш SHA-256 для создания MessageDeduplicationId , используя тело сообщения (но не атрибуты сообщение).
        • Если вы не предоставили MessageDeduplicationId и в очереди нет ContentBasedDeduplication , действие завершается с ошибкой.
        • Если в очереди установлен ContentBasedDeduplication , ваш MessageDeduplicationId переопределяет сгенерированный.
      • Когда действует ContentBasedDeduplication , сообщения с идентичным содержимым, отправленные в течение интервала дедупликации, обрабатываются как дубликаты, и доставляется только одна копия сообщения.
      • Если вы отправляете одно сообщение с включенной ContentBasedDeduplication , а затем другое сообщение с MessageDeduplicationId , который совпадает с созданным для первого MessageDeduplicationId , два сообщения рассматриваются как дубликаты, и доставляется только одна копия сообщения.

    Следующие атрибуты применяются только к высокой пропускной способности для очередей FIFO:

    • DeduplicationScope — указывает, происходит ли дедупликация сообщений на уровне группы сообщений или очереди. Допустимые значения: messageGroup 9.0451 и очередь .
    • FifoThroughputLimit — указывает, применяется ли квота пропускной способности очереди FIFO ко всей очереди или к группе сообщений. Допустимые значения: perQueue и perMessageGroupId . Значение perMessageGroupId допустимо, только если значение для DeduplicationScope равно messageGroup .

    Чтобы включить высокую пропускную способность для очередей FIFO, выполните следующие действия:

    • Комплект DeduplicationScope от до messageGroup .
    • Задайте для FifoThroughputLimit значение perMessageGroupId .

    Если установить для этих атрибутов значения, отличные от показанных для включения высокой пропускной способности, действует нормальная пропускная способность и дедупликация выполняется, как указано.

    Сведения о квотах пропускной способности см. в разделе Квоты, связанные с сообщениями, в Руководстве разработчика по Amazon SQS .

    • (строка) --
      • (строка) --
  • тегов ( dict ) --

    Добавьте теги распределения затрат в указанную очередь Amazon SQS. Обзор см. в разделе «Тегирование очередей Amazon SQS» в Руководстве разработчика по Amazon SQS .

    При использовании тегов очереди помните о следующих рекомендациях:

    • Не рекомендуется добавлять в очередь более 50 тегов.
    • Теги не имеют семантического значения. Amazon SQS интерпретирует теги как строки символов.
    • Теги чувствительны к регистру.
    • Новый тег с ключом, идентичным ключу существующего тега, перезаписывает существующий тег.

    Полный список ограничений тегов см. в разделе Квоты, связанные с очередями в Руководстве разработчика по Amazon SQS .

    Примечание

    Чтобы иметь возможность пометить очередь при создании, необходимо иметь разрешения sqs:CreateQueue и sqs:TagQueue .

    Разрешения для нескольких учетных записей не применяются к этому действию. Дополнительные сведения см. в разделе Предоставление разрешений между учетными записями для роли и имени пользователя в разделе Руководство разработчика Amazon SQS .

    • (строка) --
      • (строка) --
Тип возврата

dict

Возвращает

Синтаксис ответа

 {
    'QueueUrl': 'строка'
}
 

Структура ответа

Исключения

  • SQS. Client.exceptions.QueueDeletedRecently
  • SQS.Client.exceptions.QueueNameExists
delete_message ( **kwargs )

Удаляет указанное сообщение из указанной очереди. Чтобы выбрать сообщение для удаления, используйте ReceiptHandle сообщения (, а не MessageId , который вы получаете при отправке сообщения). Amazon SQS может удалить сообщение из очереди, даже если из-за настройки тайм-аута видимости сообщение будет заблокировано другим потребителем. Amazon SQS автоматически удаляет сообщения, оставленные в очереди на срок, превышающий срок хранения, настроенный для очереди.

Примечание

ReceiptHandle связан с конкретным экземпляром получения сообщения. Если вы получаете сообщение более одного раза, ReceiptHandle отличается каждый раз, когда вы получаете сообщение. При использовании действия DeleteMessage необходимо предоставить для сообщения последний полученный ReceiptHandle (в противном случае запрос будет выполнен успешно, но сообщение может не быть удалено).

Для стандартных очередей возможно получение сообщения даже после его удаления. Это может произойти в редких случаях, если один из серверов, на котором хранится копия сообщения, недоступен, когда вы отправляете запрос на удаление сообщения. Копия остается на сервере и может быть возвращена вам во время последующего запроса на получение. Вы должны убедиться, что ваше приложение является идемпотентным, чтобы получение сообщения более одного раза не вызывало проблем.

См. также: Документация по API AWS

Синтаксис запроса

 ответ = client.delete_message(
    QueueUrl='строка',
    ReceiptHandle='строка'
)
 
Параметры
  • QueueUrl ( строка ) --

    [ОБЯЗАТЕЛЬНО]

    URL-адрес очереди Amazon SQS, из которой удаляются сообщения.

    URL-адреса и имена очередей вводятся с учетом регистра.

  • Ручка получения ( строка ) --

    [ОБЯЗАТЕЛЬНО]

    Дескриптор квитанции, связанный с удаляемым сообщением.

Возвращает

Нет

Исключения

  • SQS.Client.exceptions.InvalidIdFormat
  • SQS.Client.exceptions.ReceiptHandleIsInvalid
delete_message_batch ( **kwargs )

Удаляет до десяти сообщений из указанной очереди. Это пакетная версия `` DeleteMessage ``. Результат действия над каждым сообщением сообщается отдельно в ответе.

Предупреждение

Поскольку пакетный запрос может привести к комбинации успешных и неуспешных действий, следует проверять пакетные ошибки, даже если вызов возвращает код состояния HTTP 200 .

Некоторые действия принимают списки параметров. Эти списки задаются с помощью param.n обозначение. Значения n — это целые числа, начинающиеся с 1. Например, список параметров с двумя элементами выглядит так:

&ИмяАтрибута. 1=первый

&ИмяАтрибута.2=второй

См. также: Документация по API AWS

Синтаксис запроса

 ответ = client.delete_message_batch(
    QueueUrl='строка',
    Записи=[
        {
            «Идентификатор»: «строка»,
            'ReceiptHandle': 'строка'
        },
    ]
)
 
Параметры
  • QueueUrl ( строка ) --

    [ОБЯЗАТЕЛЬНО]

    URL-адрес очереди Amazon SQS, из которой удаляются сообщения.

    URL-адреса и имена очередей вводятся с учетом регистра.

  • Записи ( список ) --

    [ОБЯЗАТЕЛЬНО]

    Список дескрипторов квитанций для удаляемых сообщений.

Тип возврата

дикт

Возвращает

Синтаксис ответа

 {
    'Успешный': [
        {
            «Идентификатор»: «строка»
        },
    ],
    'Не удалось': [
        {
            «Идентификатор»: «строка»,
            'SenderFault': Истина | Ложь,
            «Код»: «строка»,
            «Сообщение»: «строка»
        },
    ]
}
 

Структура ответа

  • (дикт. ) --

    Для каждого сообщения в пакете ответ содержит тег `` DeleteMessageBatchResultEntry ``, если сообщение удалено, или тег `` BatchResultErrorEntry ``, если сообщение не может быть удалено.

    • Успешный (список) --

      Список элементов `` DeleteMessageBatchResultEntry ``.

    • Ошибка (список) --

      Список элементов `` BatchResultErrorEntry ``.

Исключения

  • SQS.Client.exceptions.TooManyEntriesInBatchRequest
  • SQS.Client.exceptions.EmptyBatchRequest
  • SQS.Client.exceptions.BatchEntryIdsNotDistinct
  • SQS.Client.exceptions.InvalidBatchEntryId
delete_queue ( ** kwargs )

Удаляет очередь, указанную QueueUrl , независимо от содержимого очереди.

Предупреждение

Будьте осторожны с действием DeleteQueue : при удалении очереди любые сообщения в очереди становятся недоступными.

При удалении очереди процесс удаления занимает до 60 секунд. Запросы, которые вы отправляете с участием этой очереди в течение 60 секунд, могут быть выполнены успешно. Например, запрос `` SendMessage `` может быть выполнен успешно, но через 60 секунд очередь и отправленное вами сообщение больше не существуют.

При удалении очереди необходимо подождать не менее 60 секунд перед созданием очереди с таким же именем.

Примечание

Разрешения для нескольких учетных записей не применяются к этому действию. Дополнительные сведения см. в разделе Предоставление разрешений между учетными записями для роли и имени пользователя в разделе Руководство разработчика Amazon SQS .

См. также: Документация по API AWS

Синтаксис запроса

 ответ = client.delete_queue(
    QueueUrl='строка'
)
 
Параметры
QueueUrl ( строка ) --

[ОБЯЗАТЕЛЬНО]

URL-адрес очереди Amazon SQS, которую нужно удалить.

URL-адреса и имена очередей вводятся с учетом регистра.

Возвращает
Нет
get_paginator ( имя_операции )

Создание пагинатора для операции.

Параметры
имя_операции ( строка ) -- Имя операции. Это одно и то же имя как имя метода на клиенте. Например, если имя метода create_foo , и вы обычно вызываете операция как client.create_foo(**kwargs) , если create_foo Операция может быть разбита на страницы, вы можете использовать позвони client.get_paginator("create_foo") .
Вызывает OperationNotPageableError
Вызывается, если операция не постраничный. Вы можете использовать метод client.can_paginate для проверить, является ли операция страничной.
Тип возврата
L{botocore.paginate.Paginator}
Возвращает
Объект пагинатора.
get_queue_attributes ( **kwargs )

Получает атрибуты указанной очереди.

Примечание

Чтобы определить, является ли очередь очередью FIFO, можно проверить, заканчивается ли QueueName суффиксом .fifo .

См. также: Документация по API AWS

Синтаксис запроса

 ответ = client.get_queue_attributes(
    QueueUrl='строка',
    АтрибутИмена=[
        'Все'|'Политика'|'VisibilityTimeout'|'MaximumMessageSize'|'MessageRetentionPeriod'|'ApproximateNumberOfMessages'|'ApproximateNumberOfMessagesNotVisible'|'CreatedTimestamp'|'LastModifiedTimestamp'|'QueueArn'|'ApproximateNumberOfMessagesTimed'|'DelaySeconds'|'ReceivedMessagesWait '|'RedrivePolicy'|'FifoQueue'|'ContentBasedDeduplication'|'KmsMasterKeyId'|'KmsDataKeyReusePeriodSeconds'|'DeduplicationScope'|'FifoThroughputLimit'|'RedriveAllowPolicy'|'SqsManagedSseEnabled',
    ]
)
 
Параметры
  • QueueUrl ( строка ) --

    [ОБЯЗАТЕЛЬНО]

    URL-адрес очереди Amazon SQS, информация об атрибутах которой извлекается.

    URL-адреса и имена очередей вводятся с учетом регистра.

  • AttributeNames ( list ) --

    Список атрибутов, для которых необходимо получить информацию.

    Параметр AttributeName.N является необязательным, но если вы не укажете значения для этого параметра, запрос вернет пустые результаты.

    Примечание

    В будущем могут быть добавлены новые атрибуты. Если вы пишете код, который вызывает это действие, мы рекомендуем структурировать его так, чтобы он мог корректно обрабатывать новые атрибуты.

    Поддерживаются следующие атрибуты:

    Предупреждение. Этот период необходим для достижения окончательной согласованности метаданных очереди.

    • Все — возвращает все значения.
    • ApproximateNumberOfMessages — возвращает приблизительное количество сообщений, доступных для извлечения из очереди.
    • ApproximateNumberOfMessagesDelayed — возвращает приблизительное количество сообщений в очереди, которые задержаны и недоступны для чтения немедленно. Это может произойти, если очередь настроена как очередь с задержкой или когда сообщение было отправлено с параметром задержки.
    • ApproximateNumberOfMessagesNotVisible — возвращает приблизительное количество сообщений, находящихся в пути. Сообщения считаются в потоке , если они были отправлены клиенту, но еще не удалены или еще не достигли конца своего окна видимости.
    • CreatedTimestamp — возвращает время создания очереди в секундах (время эпохи).
    • DelaySeconds — возвращает задержку по умолчанию в очереди в секундах.
    • LastModifiedTimestamp — возвращает время последнего изменения очереди в секундах (время эпохи).
    • MaximumMessageSize — возвращает максимальное количество байтов, которое может содержать сообщение, прежде чем Amazon SQS отклонит его.
    • MessageRetentionPeriod — возвращает время в секундах, в течение которого Amazon SQS хранит сообщение.
    • Политика — Возвращает политику очереди.
    • QueueArn — возвращает имя ресурса Amazon (ARN) очереди.
    • ReceiveMessageWaitTimeSeconds — возвращает время в секундах, в течение которого действие ReceiveMessage ожидает прибытия сообщения.
    • RedrivePolicy — строка, содержащая параметры функциональности очереди недоставленных сообщений исходной очереди в виде объекта JSON. Дополнительные сведения о политике повторной передачи и очередях недоставленных сообщений см. в разделе Использование очередей недоставленных сообщений Amazon SQS в Руководстве разработчика по Amazon SQS .
      • deadLetterTargetArn — имя ресурса Amazon (ARN) очереди недоставленных сообщений, в которую Amazon SQS перемещает сообщения после превышения значения maxReceiveCount .
      • maxReceiveCount — количество раз, когда сообщение доставляется в исходную очередь перед перемещением в очередь недоставленных сообщений. Когда ReceiveCount для сообщения превышает maxReceiveCount для очереди, Amazon SQS перемещает сообщение в очередь недоставленных сообщений.
    • VisibilityTimeout — возвращает время ожидания видимости для очереди. Дополнительные сведения о тайм-ауте видимости см. в разделе Тайм-аут видимости в Руководстве разработчика по Amazon SQS .

    Следующие атрибуты применяются только к шифрованию на стороне сервера:

    • KmsMasterKeyId — возвращает идентификатор главного ключа клиента (CMK), управляемого Amazon Web Services, для Amazon SQS или пользовательского CMK. Дополнительные сведения см. в разделе Ключевые термины.
    • KmsDataKeyReusePeriodSeconds — возвращает время в секундах, в течение которого Amazon SQS может повторно использовать ключ данных для шифрования или расшифровки сообщений перед повторным вызовом KMS. Дополнительные сведения см. в разделе Как работает период повторного использования ключа данных? .
    • SqsManagedSseEnabled — возвращает информацию о том, использует ли очередь шифрование SSE-SQS с использованием ключей шифрования, принадлежащих SQS. Для каждой очереди поддерживается только один вариант шифрования на стороне сервера (например, SSE-KMS или SSE-SQS).

    Следующие атрибуты применяются только к очередям FIFO (первым поступил – первым обслужен):

    • FifoQueue — возвращает информацию о том, является ли очередь FIFO. Дополнительные сведения см. в разделе Логика очереди FIFO в Руководстве разработчика по Amazon SQS .

    Примечание

    Чтобы определить, является ли очередь FIFO , можно проверить, заканчивается ли QueueName суффиксом .fifo .

    • Дедупликация на основе содержимого — возвращает, включена ли для очереди дедупликация на основе содержимого. Дополнительные сведения см. в разделе Однократная обработка в Руководстве разработчика Amazon SQS .

    Следующие атрибуты применяются только к высокой пропускной способности для очередей FIFO:

    • DeduplicationScope — указывает, происходит ли дедупликация сообщений на уровне группы сообщений или очереди. Допустимые значения: messageGroup и очередь .
    • FifoThroughputLimit — указывает, применяется ли квота пропускной способности очереди FIFO ко всей очереди или к группе сообщений. Допустимые значения: perQueue и perMessageGroupId . Значение perMessageGroupId допустимо, только если значение для DeduplicationScope равно messageGroup .

    Чтобы включить высокую пропускную способность для очередей FIFO, выполните следующие действия:

    • Задайте для DeduplicationScope значение messageGroup .
    • Задайте для FifoThroughputLimit значение perMessageGroupId .

    Если установить для этих атрибутов значения, отличные от показанных для включения высокой пропускной способности, действует нормальная пропускная способность и дедупликация выполняется, как указано.

    Сведения о квотах пропускной способности см. в разделе Квоты, связанные с сообщениями, в Руководстве разработчика по Amazon SQS .

    • (строка) --
Тип возврата

дикт

Возвращает

Синтаксис ответа

 {
    «Атрибуты»: {
        'строка': 'строка'
    }
}
 

Структура ответа

Исключения

  • SQS.Client.exceptions.InvalidAttributeName
get_queue_url ( ** kwargs )

Возвращает URL-адрес существующей очереди Amazon SQS.

Чтобы получить доступ к очереди, принадлежащей другой учетной записи AWS, используйте параметр QueueOwnerAWSAccountId , чтобы указать идентификатор учетной записи владельца очереди. Владелец очереди должен предоставить вам разрешение на доступ к очереди. Дополнительные сведения о доступе к общей очереди см. в разделе «AddPermission» или в разделе «Разрешить разработчикам записывать сообщения в общую очередь» в Amazon SQS Developer Guide .

См. также: Документация по API AWS

Синтаксис запроса

 ответ = client.get_queue_url(
    ИмяОчереди='строка',
    QueueOwnerAWSAccountId='строка'
)
 
Параметры
  • Имя очереди ( строка ) --

    [ОБЯЗАТЕЛЬНО]

    Имя очереди, URL которой необходимо получить. Максимум 80 символов. Допустимые значения: буквенно-цифровые символы, дефисы ( - ) и символы подчеркивания ( _ ).

    URL-адреса и имена очередей вводятся с учетом регистра.

  • QueueOwnerAWSAccountId ( строка ) — идентификатор учетной записи Amazon Web Services, создавшей очередь.
Тип возврата

dict

Возвращает

Синтаксис ответа

 {
    'QueueUrl': 'строка'
}
 

Структура ответа

Исключения

  • SQS.Client.exceptions.QueueDoesNotExist
get_waiter ( имя_официанта )

Возвращает объект, который может ожидать выполнения некоторого условия.

Параметры
waiter_name ( str ) -- Имя официанта, которого необходимо получить. Увидеть официантов раздел служебной документации для списка доступных официантов.
Возвращает
Указанный объект ожидания.
Тип возврата
botocore.waiter.Waiter
list_dead_letter_source_queues ( **kwargs )

Возвращает список ваших очередей, для которых атрибут очереди RedrivePolicy настроен с очередью недоставленных сообщений.

Методы ListDeadLetterSourceQueues поддерживают нумерацию страниц. Установите параметр MaxResults в запросе, чтобы указать максимальное количество результатов, возвращаемых в ответе. Если не ставить MaxResults ответ включает не более 1000 результатов. Если вы установили MaxResults и есть дополнительные результаты для отображения, ответ включает значение для NextToken . Используйте NextToken в качестве параметра в следующем запросе к ListDeadLetterSourceQueues для получения следующей страницы результатов.

Дополнительные сведения об использовании очередей недоставленных сообщений см. в разделе Использование очередей недоставленных сообщений Amazon SQS в Руководстве разработчика по Amazon SQS .

См. также: Документация по API AWS

Синтаксис запроса

 ответ = client.list_dead_letter_source_queues(
    QueueUrl='строка',
    NextToken='строка',
    Максимальные результаты = 123
)
 
Параметры
Тип возврата

dict

Возвращает

Синтаксис ответа

 {
    'URL-адреса очереди': [
        'нить',
    ],
    'NextToken': 'строка'
}
 

Структура ответа

Исключения

  • SQS. Client.exceptions.QueueDoesNotExist
list_queue_tags ( **kwargs )

Список всех тегов распределения затрат, добавленных в указанную очередь Amazon SQS. Обзор см. в разделе «Тегирование очередей Amazon SQS» в Руководстве разработчика по Amazon SQS .

Примечание

Разрешения для нескольких учетных записей не применяются к этому действию. Дополнительные сведения см. в разделе Предоставление разрешений между учетными записями для роли и имени пользователя в разделе Руководство разработчика Amazon SQS .

См. также: Документация по API AWS

Синтаксис запроса

 ответ = client.list_queue_tags(
    QueueUrl='строка'
)
 
Параметры
QueueUrl ( строка ) --

[ОБЯЗАТЕЛЬНО]

URL-адрес очереди.

Тип возврата
dict
Возвращает
Синтаксис ответа
 {
    'Теги': {
        'строка': 'строка'
    }
}
 

Структура ответа

list_queues ( **kwargs )

Возвращает список ваших очередей в текущем регионе. Ответ включает не более 1000 результатов. Если указать значение для необязательного параметра QueueNamePrefix , будут возвращены только очереди, имя которых начинается с указанного значения.

Методы listQueues поддерживают нумерацию страниц. Установить параметр MaxResults в запросе, чтобы указать максимальное количество результатов, которые должны быть возвращены в ответе. Если вы не зададите MaxResults , ответ будет содержать не более 1000 результатов. Если вы установили MaxResults и есть дополнительные результаты для отображения, ответ включает значение для NextToken . Используйте NextToken в качестве параметра в следующем запросе к listQueues для получения следующей страницы результатов.

Примечание

Разрешения для нескольких учетных записей не применяются к этому действию. Дополнительные сведения см. в разделе Предоставление разрешений для нескольких учетных записей роли и имени пользователя в Руководстве разработчика по Amazon SQS .

См. также: Документация по API AWS

Синтаксис запроса

 ответ = client.list_queues(
    QueueNamePrefix='строка',
    NextToken='строка',
    Максимальные результаты = 123
)
 
Параметры
Тип возврата

словарь

Возвращает

Синтаксис ответа

 {
    «URL-адреса очереди»: [
        'нить',
    ],
    'NextToken': 'строка'
}
 

Структура ответа

purge_queue ( **kwargs )

Удаляет сообщения в очереди, указанной параметром QueueURL .

Предупреждение

При использовании действия PurgeQueue невозможно получить сообщения, удаленные из очереди.

Процесс удаления сообщения занимает до 60 секунд. Мы рекомендуем подождать 60 секунд независимо от размера вашей очереди.

Сообщения, отправленные в очередь до , которую вы вызываете PurgeQueue , могут быть получены, но удаляются в течение следующей минуты.

Сообщения, отправленные в очередь после вызова PurgeQueue , могут быть удалены во время очистки очереди.

См. также: Документация по API AWS

Синтаксис запроса

 ответ = client.purge_queue(
    QueueUrl='строка'
)
 
Параметры
QueueUrl ( строка ) --

[ОБЯЗАТЕЛЬНО]

URL-адрес очереди, из которой действие PurgeQueue удаляет сообщения.

URL-адреса и имена очередей вводятся с учетом регистра.

Возвращает
Нет

Исключения

  • SQS.Client.exceptions.QueueDoesNotExist
  • SQS.Client.exceptions.PurgeQueueInProgress
receive_message ( **kwargs )

Извлекает одно или несколько сообщений (до 10) из указанной очереди. Использование параметра WaitTimeSeconds включает поддержку длительного опроса. Дополнительные сведения см. в разделе Длинный опрос Amazon SQS в Руководстве разработчика по Amazon SQS .

Короткий опрос — это поведение по умолчанию, при котором взвешенный случайный набор компьютеров выбирается на ReceiveMessage вызов. Таким образом, возвращаются только сообщения на выбранных машинах. Если количество сообщений в очереди невелико (менее 1000), вы, скорее всего, получите меньше сообщений, чем запросили на вызов ReceiveMessage . Если количество сообщений в очереди очень мало, вы можете не получить никаких сообщений в конкретном ответе ReceiveMessage . В этом случае повторите запрос.

Для каждого возвращенного сообщения ответ включает следующее:

  • Тело сообщения.
  • Дайджест MD5 тела сообщения. Сведения о MD5 см. в RFC1321.
  • MessageId , полученный вами при отправке сообщения в очередь.
  • Ручка квитанции.
  • Атрибуты сообщения.
  • Дайджест MD5 атрибутов сообщения.

Дескриптор квитанции — это идентификатор, который необходимо указать при удалении сообщения. Дополнительные сведения см. в разделе Идентификаторы очередей и сообщений в Руководство разработчика Amazon SQS .

В запросе можно указать параметр VisibilityTimeout . Параметр применяется к сообщениям, которые Amazon SQS возвращает в ответе. Если вы не включите этот параметр, для возвращаемых сообщений будет использоваться общий тайм-аут видимости для очереди. Дополнительные сведения см. в разделе «Тайм-аут видимости» в Руководстве разработчика Amazon SQS .

Сообщение, которое не удалено, или сообщение, видимость которого не расширена до истечения времени ожидания видимости, считается неудачным получением. В зависимости от конфигурации очереди сообщение может быть отправлено в очередь недоставленных сообщений.

Примечание

В будущем могут быть добавлены новые атрибуты. Если вы пишете код, который вызывает это действие, мы рекомендуем структурировать его так, чтобы он мог корректно обрабатывать новые атрибуты.

См. также: Документация по API AWS

Синтаксис запроса

 ответ = client.receive_message(
    QueueUrl='строка',
    АтрибутИмена=[
        'Все'|'Политика'|'VisibilityTimeout'|'MaximumMessageSize'|'MessageRetentionPeriod'|'ApproximateNumberOfMessages'|'ApproximateNumberOfMessagesNotVisible'|'CreatedTimestamp'|'LastModifiedTimestamp'|'QueueArn'|'ApproximateNumberOfMessagesTimed'|'DelaySeconds'|'ReceivedMessagesWait '|'RedrivePolicy'|'FifoQueue'|'ContentBasedDeduplication'|'KmsMasterKeyId'|'KmsDataKeyReusePeriodSeconds'|'DeduplicationScope'|'FifoThroughputLimit'|'RedriveAllowPolicy'|'SqsManagedSseEnabled',
    ],
    MessageAttributeNames=[
        'нить',
    ],
    Макснумберофмессажес=123,
    ВидимостьТаймаут=123,
    Вайтимесекондс=123,
    ReceiveRequestAttemptId='строка'
)
 
Параметры
  • QueueUrl ( строка ) --

    [ОБЯЗАТЕЛЬНО]

    URL-адрес очереди Amazon SQS, из которой принимаются сообщения.

    URL-адреса и имена очередей вводятся с учетом регистра.

  • AttributeNames ( list ) --

    Список атрибутов, которые необходимо возвращать вместе с каждым сообщением. Эти атрибуты включают:

    • Все — возвращает все значения.
    • ApproximateFirstReceiveTimestamp — возвращает время первого получения сообщения из очереди (время эпохи в миллисекундах).
    • ApproximateReceiveCount — возвращает количество раз, когда сообщение было получено во всех очередях, но не удалено.
    • AWSTraceHeader — возвращает строку заголовка рентгеновской трассировки.
    • SenderId
      • Для пользователя IAM возвращает идентификатор пользователя IAM, например ABCDEFGHI1JKLMNOPQ23R .
      • Для роли IAM возвращает идентификатор роли IAM, например ABCDE1F2Gh4I4JK5LMNOP:i-a123b456 .
    • SentTimestamp — возвращает время отправки сообщения в очередь (время эпохи в миллисекундах).
    • SqsManagedSseEnabled — включает шифрование очереди на стороне сервера с использованием ключей шифрования, принадлежащих SQS. Для каждой очереди поддерживается только один вариант шифрования на стороне сервера (например, SSE-KMS или SSE-SQS).
    • MessageDeduplicationId — возвращает значение, предоставленное производителем, который вызывает действие `` SendMessage ``.
    • MessageGroupId — возвращает значение, предоставленное производителем, который вызывает действие `` SendMessage ``. Сообщения с одинаковым MessageGroupId возвращаются последовательно.
    • SequenceNumber — возвращает значение, предоставленное Amazon SQS.
    • (строка) --
  • MessageAttributeNames ( список ) --

    Имя атрибута сообщения, где N — индекс.

    • Имя может содержать буквенно-цифровые символы и знак подчеркивания ( _ ), дефис ( - ) и точку ( . ).
    • Имя чувствительно к регистру и должно быть уникальным среди всех имен атрибутов сообщения.
    • Имя не должно начинаться с зарезервированных AWS префиксов, таких как AWS. или Амазон. (или любые варианты корпуса).
    • Имя не должно начинаться или заканчиваться точкой ( . ) и не должно иметь последовательных точек ( .. ).
    • Имя может содержать до 256 символов.

    При использовании ReceiveMessage можно отправить список имен атрибутов для получения или вернуть все атрибуты, указав в запросе All или .* . Вы также можете использовать все атрибуты сообщения, начинающиеся с префикса, например бар.* .

    • (строка) --
  • MaxNumberOfMessages ( целое число ) -- Максимальное количество возвращаемых сообщений. Amazon SQS никогда не возвращает больше сообщений, чем это значение (однако может быть возвращено меньше сообщений). Допустимые значения: от 1 до 10. По умолчанию: 1.
  • VisibilityTimeout ( integer ) -- Продолжительность (в секундах), в течение которой полученные сообщения скрыты от последующих запросов на получение после получения Запрос ReceiveMessage .
  • WaitTimeSeconds ( целое число ) --

    Продолжительность (в секундах), в течение которой вызов ожидает поступления сообщения в очередь перед возвратом. Если сообщение доступно, вызов возвращается раньше, чем через WaitTimeSeconds . Если сообщений нет и время ожидания истекло, вызов успешно возвращается с пустым списком сообщений.

    Предупреждение

    Во избежание ошибок HTTP убедитесь, что тайм-аут ответа HTTP для Запросы ReceiveMessage длиннее параметра WaitTimeSeconds . Например, с помощью Java SDK можно задать параметры транспорта HTTP с помощью NettyNioAsyncHttpClient для асинхронных клиентов или ApacheHttpClient для синхронных клиентов.

  • ReceiveRequestAttemptId ( строка ) --

    Этот параметр применяется только к очередям FIFO (первым поступил – первым обслужен).

    Токен, используемый для дедупликации ReceiveMessage 9Звонки 0451. Если проблема с сетью возникает после действия ReceiveMessage и вместо ответа вы получаете общую ошибку, можно повторить то же действие с идентичным ReceiveRequestAttemptId , чтобы получить тот же набор сообщений, даже если время их видимости истекло. еще не истек.

    • Вы можете использовать ReceiveRequestAttemptId только в течение 5 минут после действия ReceiveMessage .
    • При установке FifoQueue , вызывающая сторона действия ReceiveMessage может явно указать ReceiveRequestAttemptId .
    • Если вызывающая сторона действия ReceiveMessage не предоставляет ReceiveRequestAttemptId , Amazon SQS создает ReceiveRequestAttemptId .
    • Можно повторить действие ReceiveMessage с тем же ReceiveRequestAttemptId , если ни одно из сообщений не было изменено (удалено или его видимость изменилась).
    • Во время тайм-аута видимости последующие вызовы с тем же ReceiveRequestAttemptId возвращают те же сообщения и дескрипторы квитанций. Если в течение интервала дедупликации происходит повторная попытка, тайм-аут видимости сбрасывается. Дополнительные сведения см. в разделе «Тайм-аут видимости» в Руководстве разработчика Amazon SQS .

    Предупреждение

    Если вызывающий объект действия ReceiveMessage по-прежнему обрабатывает сообщения, когда время ожидания видимости истекает и сообщения становятся видимыми, другой рабочий процесс, получающий сообщения из той же очереди, может получать те же сообщения и, следовательно, обрабатывать дубликаты. Кроме того, если потребитель, время обработки сообщений которого превышает время ожидания видимости, попытается удалить обработанные сообщения, действие завершится с ошибкой. Чтобы смягчить этот эффект, убедитесь, что ваше приложение соблюдает безопасный порог до истечения времени ожидания видимости, и при необходимости увеличьте время ожидания видимости.

    • Хотя сообщения с определенным MessageGroupId невидимы, сообщения, принадлежащие тому же MessageGroupId , не возвращаются, пока не истечет время ожидания видимости. Вы по-прежнему можете получать сообщения с другим MessageGroupId , если он также виден.
    • Если вызывающая сторона ReceiveMessage не может отследить ReceiveRequestAttemptId , повторные попытки не будут работать, пока не истечет исходный тайм-аут видимости. В результате могут возникать задержки, но сообщения в очереди остаются в строгом порядке. 9_`{|}~ ).

      Рекомендации по использованию ReceiveRequestAttemptId см. в разделе Использование параметра запроса ReceiveRequestAttemptId в Руководстве разработчика по Amazon SQS .

Тип возврата

dict

Возвращает

Синтаксис ответа

 {
    'Сообщения': [
        {
            'MessageId': 'строка',
            'ReceiptHandle': 'строка',
            «MD5OfBody»: «строка»,
            «Тело»: «струна»,
            «Атрибуты»: {
                'строка': 'строка'
            },
            'MD5OfMessageAttributes': 'строка',
            «Атрибуты сообщения»: {
                'нить': {
                    'StringValue': 'строка',
                    'BinaryValue': b'байт',
                    'StringListValues': [
                        'нить',
                    ],
                    'ДвоичныеСписковыеЗначения': [
                        б'байт',
                    ],
                    «Тип данных»: «строка»
                }
            }
        },
    ]
}
 

Структура ответа

Исключения

  • SQS. Исключения.клиента.OverLimit
remove_permission ( **kwargs )

Отменяет все разрешения в политике очереди, соответствующие указанному параметру Label .

Примечание

  • Только владелец очереди может удалить из нее разрешения.
  • Разрешения для нескольких учетных записей не применяются к этому действию. Дополнительные сведения см. в разделе Предоставление разрешений между учетными записями для роли и имени пользователя в разделе Руководство разработчика Amazon SQS .
  • Чтобы удалить возможность изменять разрешения очереди, вы должны запретить разрешение действиям AddPermission , RemovePermission и SetQueueAttributes в вашей политике IAM.

См. также: Документация по API AWS

Синтаксис запроса

 ответ = client.remove_permission(
    QueueUrl='строка',
    Метка='строка'
)
 
Параметры
  • QueueUrl ( строка ) --

    [ОБЯЗАТЕЛЬНО]

    URL-адрес очереди Amazon SQS, из которой удаляются разрешения.

    URL-адреса и имена очередей вводятся с учетом регистра.

  • Этикетка ( строка ) --

    [ОБЯЗАТЕЛЬНО]

    Идентификация разрешения на удаление. Это метка, добавленная с помощью действия ``AddPermission``.

Возвращает

Нет

send_message ( **kwargs )

Доставляет сообщение в указанную очередь.

Предупреждение

Сообщение может содержать только XML, JSON и неформатированный текст. Допустимы следующие символы Юникода:

#x9 | #xA | #xD | #x20 до #xD7FF | #xE000 - #xFFFD | #x10000 - #x10FFFF

Любые символы, не включенные в этот список, будут отклонены. Дополнительные сведения см. в спецификации W3C для символов.

См. также: Документация по API AWS

Синтаксис запроса

 ответ = client.send_message(
    QueueUrl='строка',
    MessageBody='строка',
    DelaySeconds=123,
    MessageAttributes={
        'нить': {
            'StringValue': 'строка',
            'BinaryValue': b'байт',
            'StringListValues': [
                'нить',
            ],
            'ДвоичныеСписковыеЗначения': [
                б'байт',
            ],
            «Тип данных»: «строка»
        }
    },
    MessageSystemAttributes={
        'нить': {
            'StringValue': 'строка',
            'BinaryValue': b'байт',
            'StringListValues': [
                'нить',
            ],
            'ДвоичныеСписковыеЗначения': [
                б'байт',
            ],
            «Тип данных»: «строка»
        }
    },
    MessageDeduplicationId='строка',
    MessageGroupId='строка'
)
 
Параметры
  • QueueUrl ( строка ) --

    [ОБЯЗАТЕЛЬНО]

    URL-адрес очереди Amazon SQS, в которую отправляется сообщение.

    URL-адреса и имена очередей вводятся с учетом регистра.

  • MessageBody ( строка ) --

    [ОБЯЗАТЕЛЬНО]

    Сообщение для отправки. Минимальный размер — один символ. Максимальный размер 256 КБ.

    Предупреждение

    Сообщение может содержать только XML, JSON и неформатированный текст. Допустимы следующие символы Юникода:

    #x9 | #xA | #xD | #x20 до #xD7FF | #xE000 - #xFFFD | #x10000 - #x10FFFF

    Любые символы, не включенные в этот список, будут отклонены. Дополнительные сведения см. в спецификации W3C для символов.

  • Задержка секунд ( целое число ) --

    Продолжительность времени в секундах, на которое следует задержать конкретное сообщение. Допустимые значения: от 0 до 900. Максимум: 15 минут. Сообщения с положительным значением DelaySeconds становятся доступными для обработки после окончания периода задержки. Если вы не укажете значение, применяется значение по умолчанию для очереди.

    Примечание

    Когда вы устанавливаете FifoQueue , вы не можете установить DelaySeconds для каждого сообщения. Этот параметр можно задать только на уровне очереди.

  • MessageAttributes ( dict ) --

    Каждый атрибут сообщения состоит из имени , типа и значения . Дополнительные сведения см. в разделе Атрибуты сообщений Amazon SQS в Руководстве разработчика по Amazon SQS .

  • MessageSystemAttributes ( dict ) --

    Системный атрибут сообщения для отправки. Каждый системный атрибут сообщения состоит из Name , Type и Значение .

    Предупреждение

    • В настоящее время единственным поддерживаемым системным атрибутом сообщения является AWSTraceHeader . Его тип должен быть String , а его значение должно быть правильно отформатированной строкой заголовка рентгеновской трассировки.
    • Размер системного атрибута сообщения не учитывается в общем размере сообщения.
  • MessageDeduplicationId ( строка ) --

    Этот параметр применяется только к очередям FIFO (первым поступил – первым обслужен).

    Токен, используемый для дедупликации отправленных сообщений. Если сообщение с определенным MessageDeduplicationId отправлено успешно, любые сообщения, отправленные с тем же MessageDeduplicationId , будут успешно приняты, но не доставлены в течение 5-минутного интервала дедупликации. Дополнительные сведения см. в разделе Однократная обработка в Руководстве разработчика Amazon SQS .

    • Каждое сообщение должно иметь уникальный MessageDeduplicationId ,
      • Вы можете явно указать MessageDeduplicationId .
      • Если вы не можете предоставить MessageDeduplicationId и включаете ContentBasedDeduplication для своей очереди, Amazon SQS использует хэш SHA-256 для создания MessageDeduplicationId , используя тело сообщения (но не атрибуты сообщение).
      • Если вы не предоставили MessageDeduplicationId и в очереди нет ContentBasedDeduplication , действие завершается с ошибкой.
      • Если в очереди установлен ContentBasedDeduplication , ваш MessageDeduplicationId переопределяет сгенерированный.
    • Когда действует ContentBasedDeduplication , сообщения с идентичным содержимым, отправленные в течение интервала дедупликации, обрабатываются как дубликаты, и доставляется только одна копия сообщения.
    • Если вы отправляете одно сообщение с включенной ContentBasedDeduplication , а затем другое сообщение с MessageDeduplicationId , который совпадает с созданным для первого MessageDeduplicationId , два сообщения рассматриваются как дубликаты, и доставляется только одна копия сообщения. _`{|}~ ).

      Рекомендации по использованию MessageDeduplicationId см. в разделе Использование свойства MessageDeduplicationId в Руководстве разработчика по Amazon SQS .

    • MessageGroupId ( строка ) --

      Этот параметр применяется только к очередям FIFO (первым поступил – первым обслужен).

      Тег, указывающий, что сообщение принадлежит к определенной группе сообщений. Сообщения, принадлежащие к одной и той же группе сообщений, обрабатываются в порядке FIFO (однако сообщения в разных группах сообщений могут обрабатываться не по порядку). Чтобы чередовать несколько упорядоченных потоков в одной очереди, используйте MessageGroupId значений (например, данные сеанса для нескольких пользователей). В этом сценарии несколько потребителей могут обрабатывать очередь, но данные сеанса каждого пользователя обрабатываются в порядке FIFO.

      • Вы должны связать непустой MessageGroupId с сообщением. Если вы не предоставите MessageGroupId , действие завершится ошибкой.
      • ReceiveMessage может возвращать сообщения с несколькими значениями MessageGroupId . За каждые 9_`{|}~) .

        Рекомендации по использованию MessageGroupId см. в разделе Использование свойства MessageGroupId в Руководстве разработчика по Amazon SQS .

        Предупреждение

        MessageGroupId требуется для очередей FIFO. Вы не можете использовать его для стандартных очередей.

Тип возврата

dict

Возвращает

Синтаксис ответа

 {
    'MD5OfMessageBody': 'строка',
    'MD5OfMessageAttributes': 'строка',
    'MD5OfMessageSystemAttributes': 'строка',
    'MessageId': 'строка',
    «Порядковый номер»: «строка»
}
 

Структура ответа

  • (дикт.) —

    Элементы MD5OfMessageBody и MessageId .

    • MD5OfMessageBody (строка) —

      Дайджест MD5 строки тела сообщения, не закодированной в URL. Вы можете использовать этот атрибут, чтобы убедиться, что Amazon SQS правильно получил сообщение. Amazon SQS декодирует URL-адрес сообщения перед созданием дайджеста MD5. Сведения о MD5 см. в RFC1321.

    • MD5OfMessageAttributes (строка) —

      Дайджест MD5 строки атрибута сообщения, не закодированной в URL. Вы можете использовать этот атрибут, чтобы убедиться, что Amazon SQS правильно получил сообщение. Amazon SQS декодирует URL-адрес сообщения перед созданием дайджеста MD5. Сведения о MD5 см. в RFC1321.

    • MD5OfMessageSystemAttributes (строка) —

      Дайджест MD5 строки системного атрибута сообщения без кодировки URL. Вы можете использовать этот атрибут, чтобы убедиться, что Amazon SQS правильно получил сообщение. Amazon SQS декодирует URL-адрес сообщения перед созданием дайджеста MD5.

    • MessageId (строка) —

      Атрибут, содержащий MessageId сообщения, отправленного в очередь. Дополнительные сведения см. в разделе Идентификаторы очередей и сообщений в Руководстве разработчика по Amazon SQS .

    • Порядковый номер (строка) —

      Этот параметр применяется только к очередям FIFO (первым поступил – первым обслужен).

      Большой непоследовательный номер, который Amazon SQS присваивает каждому сообщению.

      Длина SequenceNumber составляет 128 бит. SequenceNumber продолжает увеличиваться для конкретного MessageGroupId .

Исключения

  • SQS.Client.exceptions.InvalidMessageContents
  • SQS.Client.exceptions.UnsupportedOperation
send_message_batch ( ** kwargs )

Доставляет до десяти сообщений в указанную очередь. Это пакетная версия SendMessage. Для очереди FIFO несколько сообщений в одном пакете ставятся в очередь в порядке их отправки.

Результат отправки каждого сообщения сообщается отдельно в ответе. Поскольку пакетный запрос может привести к комбинации успешных и неудачных действий, следует проверять наличие пакетных ошибок, даже если вызов возвращает код состояния HTTP 200 .

Максимально допустимый размер отдельного сообщения и максимальный общий размер полезной нагрузки (сумма отдельных длин всех пакетных сообщений) составляют 256 КБ (262 144 байта).

Предупреждение

Сообщение может содержать только XML, JSON и неформатированный текст. Допустимы следующие символы Юникода:

#x9 | #xA | #xD | #x20 до #xD7FF | #xE000 #xFFFD | #x10000 #x10FFFF

Любые символы, не включенные в этот список, будут отклонены. Дополнительные сведения см. в спецификации W3C для символов.

Если вы не укажете параметр DelaySeconds для записи, Amazon SQS использует значение по умолчанию для очереди.

Некоторые действия принимают списки параметров. Эти списки задаются с использованием нотации param.n . Значения n — это целые числа, начинающиеся с 1. Например, список параметров с двумя элементами выглядит так:

&ИмяАтрибута.1=первый

&ИмяАтрибута.2=второй

См. также: Документация по API AWS

Синтаксис запроса

 ответ = client.send_message_batch(
    QueueUrl='строка',
    Записи=[
        {
            «Идентификатор»: «строка»,
            'MessageBody': 'строка',
            «Задержка секунд»: 123,
            «Атрибуты сообщения»: {
                'нить': {
                    'StringValue': 'строка',
                    'BinaryValue': b'байт',
                    'StringListValues': [
                        'нить',
                    ],
                    'ДвоичныеСписковыеЗначения': [
                        б'байт',
                    ],
                    «Тип данных»: «строка»
                }
            },
            'MessageSystemAttributes': {
                'нить': {
                    'StringValue': 'строка',
                    'BinaryValue': b'байт',
                    'StringListValues': [
                        'нить',
                    ],
                    'ДвоичныеСписковыеЗначения': [
                        б'байт',
                    ],
                    «Тип данных»: «строка»
                }
            },
            'MessageDeduplicationId': 'строка',
            'MessageGroupId': 'строка'
        },
    ]
)
 
Параметры
  • QueueUrl ( строка ) —

    [ОБЯЗАТЕЛЬНО]

    URL-адрес очереди Amazon SQS, в которую отправляются пакетные сообщения.

    URL-адреса и имена очередей вводятся с учетом регистра.

  • Записи ( список ) —

    [ОБЯЗАТЕЛЬНО]

    Список элементов “ SendMessageBatchRequestEntry “.

    • (dict) —

      Содержит сведения об одном сообщении Amazon SQS вместе с Идентификатор .

      • Id (строка) — [ОБЯЗАТЕЛЬНО]

        Идентификатор сообщения в этом пакете, используемый для сообщения результата.

        Примечание

        Id пакетного запроса должен быть уникальным в рамках запроса.

        Этот идентификатор может содержать до 80 символов. Допускаются следующие символы: буквенно-цифровые символы, дефисы (-) и символы подчеркивания (_).

      • Тело сообщения (строка) — [ОБЯЗАТЕЛЬНО]

        Тело сообщения.

      • DelaySeconds (целое число) —

        Время в секундах, на которое задерживается конкретное сообщение. Допустимые значения: от 0 до 900. Максимум: 15 минут. Сообщения с положительным значением DelaySeconds становятся доступными для обработки после окончания периода задержки. Если вы не укажете значение, будет применено значение по умолчанию для очереди.

        Примечание

        Когда вы устанавливаете FifoQueue , вы не можете установить DelaySeconds для каждого сообщения. Этот параметр можно задать только на уровне очереди.

      • MessageAttributes (dict) —

        Каждый атрибут сообщения состоит из Name , Type и Value . Дополнительные сведения см. в разделе Атрибуты сообщений Amazon SQS в Руководстве разработчика по Amazon SQS .

      • MessageSystemAttributes (dict) —

        Системный атрибут сообщения для отправки Каждый системный атрибут сообщения состоит из имени , типа и значения .

        Предупреждение

        • В настоящее время единственным поддерживаемым системным атрибутом сообщения является AWSTraceHeader . Его тип должен быть String , а его значение должно быть правильно отформатированной строкой заголовка рентгеновской трассировки.
        • Размер системного атрибута сообщения не учитывается в общем размере сообщения.
      • MessageDeduplicationId (строка) —

        Этот параметр применяется только к очередям FIFO (первым поступил – первым обслужен).

        Маркер, используемый для дедупликации сообщений в течение минимального 5-минутного интервала дедупликации. Если сообщение с определенным MessageDeduplicationId отправлено успешно, последующие сообщения с тем же MessageDeduplicationId будут успешно приняты, но не доставлены. Дополнительные сведения см. в разделе Однократная обработка в разделе 9.0393 Руководство разработчика Amazon SQS .

        • Каждое сообщение должно иметь уникальный MessageDeduplicationId ,
          • Вы можете указать MessageDeduplicationId явно.
          • Если вы не можете предоставить MessageDeduplicationId и включаете ContentBasedDeduplication для своей очереди, Amazon SQS использует хэш SHA-256 для создания MessageDeduplicationId , используя тело сообщения (но не атрибуты сообщение).
          • Если вы не укажете MessageDeduplicationId и в очереди не установлен ContentBasedDeduplication , действие завершится ошибкой.
          • Если в очереди установлен ContentBasedDeduplication , ваш MessageDeduplicationId переопределяет сгенерированный.
        • Когда действует ContentBasedDeduplication , сообщения с идентичным содержимым, отправленные в течение интервала дедупликации, обрабатываются как дубликаты, и доставляется только одна копия сообщения.
        • Если вы отправляете одно сообщение с включенным ContentBasedDeduplication , а затем другое сообщение с MessageDeduplicationId , совпадающим с созданным для первого MessageDeduplicationId , два сообщения рассматриваются как дубликаты, и только одна копия сообщения доставлен.

        Примечание

        MessageDeduplicationId доступен потребителю сообщения (это может быть полезно для устранения проблем с доставкой).

        Если сообщение отправлено успешно, но подтверждение утрачено и сообщение отправлено повторно с тем же MessageDeduplicationId после интервала дедупликации, Amazon SQS не может обнаружить повторяющиеся сообщения.

        Amazon SQS продолжает отслеживать идентификатор дедупликации сообщения даже после получения и удаления сообщения.

        Длина MessageDeduplicationId составляет 128 символов. MessageDeduplicationId может содержать буквенно-цифровые символы ( 9_`{|}~ ).

        Рекомендации по использованию MessageDeduplicationId см. в разделе Использование свойства MessageDeduplicationId в Руководстве разработчика по Amazon SQS .

      • MessageGroupId (строка) —

        Этот параметр применяется только к очередям FIFO (первым поступил – первым обслужен).

        Тег, указывающий, что сообщение принадлежит к определенной группе сообщений. Сообщения, принадлежащие к одной и той же группе сообщений, обрабатываются в порядке FIFO (однако сообщения в разных группах сообщений могут обрабатываться не по порядку). Чтобы чередовать несколько упорядоченных потоков в одной очереди, используйте MessageGroupId значений (например, данные сеанса для нескольких пользователей). В этом сценарии несколько потребителей могут обрабатывать очередь, но данные сеанса каждого пользователя обрабатываются в порядке FIFO.

        • Вы должны связать непустой MessageGroupId с сообщением. Если вы не предоставите MessageGroupId , действие завершится ошибкой.
        • ReceiveMessage может возвращать сообщения с несколькими значениями MessageGroupId . За каждые 9_`{|}~) .

          Рекомендации по использованию MessageGroupId см. в разделе Использование свойства MessageGroupId в Руководстве разработчика по Amazon SQS .

          Предупреждение

          MessageGroupId требуется для очередей FIFO. Вы не можете использовать его для стандартных очередей.

Тип возврата

dict

Возвращает

Синтаксис ответа

 {
    'Успешный': [
        {
            «Идентификатор»: «строка»,
            'MessageId': 'строка',
            'MD5OfMessageBody': 'строка',
            'MD5OfMessageAttributes': 'строка',
            'MD5OfMessageSystemAttributes': 'строка',
            «Порядковый номер»: «строка»
        },
    ],
    'Не удалось': [
        {
            «Идентификатор»: «строка»,
            'SenderFault': Истина | Ложь,
            «Код»: «строка»,
            «Сообщение»: «строка»
        },
    ]
}
 

Структура ответа

  • (дикт. ) —

    Для каждого сообщения в пакете ответ содержит тег SendMessageBatchResultEntry, если сообщение успешно отправлено, или тег BatchResultErrorEntry, если сообщение не удалось.

    • Успешный (список) —

      Список элементов “ SendMessageBatchResultEntry “.

      • (дикт.) —

        Содержит MessageId для сообщения, успешно поставленного в очередь в “ SendMessageBatch .“

        • Идентификатор (строка) —

          Идентификатор сообщения в этом пакете.

        • MessageId (строка) —

          Идентификатор сообщения.

        • MD5OfMessageBody (строка) —

          Дайджест MD5 строки тела сообщения, не закодированной в URL. Вы можете использовать этот атрибут, чтобы убедиться, что Amazon SQS правильно получил сообщение. Amazon SQS декодирует URL-адрес сообщения перед созданием дайджеста MD5. Сведения о MD5 см. в RFC1321.

        • MD5OfMessageAttributes (строка) —

          Дайджест MD5 строки атрибута сообщения, не закодированной в URL. Вы можете использовать этот атрибут, чтобы убедиться, что Amazon SQS правильно получил сообщение. Amazon SQS декодирует URL-адрес сообщения перед созданием дайджеста MD5. Сведения о MD5 см. в RFC1321.

        • MD5OfMessageSystemAttributes (строка) —

          Дайджест MD5 строки системного атрибута сообщения без кодировки URL. Вы можете использовать этот атрибут, чтобы убедиться, что Amazon SQS правильно получил сообщение. Amazon SQS декодирует URL-адрес сообщения перед созданием дайджеста MD5. Сведения о MD5 см. в RFC1321.

        • Порядковый номер (строка) —

          Этот параметр применяется только к очередям FIFO (первым поступил – первым обслужен).

          Большой непоследовательный номер, который Amazon SQS присваивает каждому сообщению.

          Длина SequenceNumber составляет 128 бит. Поскольку SequenceNumber продолжает увеличиваться для конкретного MessageGroupId .

    • Ошибка (список) —

      Список элементов “ BatchResultErrorEntry “ с подробными сведениями об ошибках для каждого сообщения, которое не может быть поставлено в очередь.

Исключения

  • SQS.Client.exceptions.TooManyEntriesInBatchRequest
  • SQS.Client.exceptions.EmptyBatchRequest
  • SQS.Client.exceptions.BatchEntryIdsNotDistinct
  • SQS.Client.exceptions.BatchRequestTooLong
  • SQS.Client.exceptions.InvalidBatchEntryId
  • SQS.Client.exceptions.UnsupportedOperation
set_queue_attributes ( **kwargs )

Задает значение одного или нескольких атрибутов очереди. При изменении атрибутов очереди изменение может занять до 60 секунд, прежде чем большинство атрибутов распространится по системе Amazon SQS. Изменения, внесенные в MessageRetentionPeriod 9Атрибут 0451 может занять до 15 минут.

Примечание

  • В будущем могут быть добавлены новые атрибуты. Если вы пишете код, который вызывает это действие, мы рекомендуем структурировать его так, чтобы он мог корректно обрабатывать новые атрибуты.
  • Разрешения для нескольких учетных записей не применяются к этому действию. Дополнительные сведения см. в разделе Предоставление разрешений для нескольких учетных записей роли и имени пользователя в Руководстве разработчика по Amazon SQS .
  • Чтобы удалить возможность изменять разрешения очереди, вы должны запретить доступ к AddPermission , RemovePermission и SetQueueAttributes действия в вашей политике IAM.

См. также: Документация по API AWS

Синтаксис запроса

 ответ = client. set_queue_attributes(
    QueueUrl='строка',
    Атрибуты={
        'строка': 'строка'
    }
)
 
Параметры
  • QueueUrl ( строка ) --

    [ОБЯЗАТЕЛЬНО]

    URL-адрес очереди Amazon SQS, атрибуты которой заданы.

    URL-адреса и имена очередей вводятся с учетом регистра.

  • Атрибуты ( dict ) --

    [ОБЯЗАТЕЛЬНО]

    Карта атрибутов для установки.

    Ниже перечислены имена, описания и значения специальных параметров запроса, которые использует действие SetQueueAttributes :

    • DelaySeconds — время в секундах, на которое задерживается доставка всех сообщений в очереди. Допустимые значения: целое число от 0 до 9.00 (15 минут). По умолчанию: 0.
    • MaximumMessageSize — максимальное количество байтов, которое может содержать сообщение, прежде чем Amazon SQS отклонит его. Допустимые значения: целое число от 1024 байт (1 КиБ) до 262 144 байтов (256 КиБ). По умолчанию: 262 144 (256 КиБ).
    • MessageRetentionPeriod — время в секундах, в течение которого Amazon SQS хранит сообщение. Допустимые значения: целое число, представляющее секунды, от 60 (1 минута) до 1 209 600 (14 дней). По умолчанию: 345 600 (4 дня).
    • Политика – Политика очереди. Действующая политика Amazon Web Services. Дополнительные сведения о структуре политик см. в разделе Обзор IAM-политик Amazon Web Services в Руководстве пользователя по управлению идентификацией и доступом .
    • ReceiveMessageWaitTimeSeconds – Продолжительность времени в секундах, в течение которого действие ReceiveMessage ожидает прибытия сообщения. Допустимые значения: целое число от 0 до 20 (секунд). По умолчанию: 0.
    • RedrivePolicy — строка, содержащая параметры функциональности очереди недоставленных сообщений исходной очереди в виде объекта JSON. Дополнительные сведения о политике повторной передачи и очередях недоставленных сообщений см. в разделе Использование очередей недоставленных сообщений Amazon SQS в Руководстве разработчика по Amazon SQS .
      • deadLetterTargetArn — имя ресурса Amazon (ARN) очереди недоставленных сообщений, в которую Amazon SQS перемещает сообщения после превышения значения maxReceiveCount .
      • maxReceiveCount — количество раз, когда сообщение доставляется в исходную очередь перед перемещением в очередь недоставленных сообщений. Когда ReceiveCount для сообщения превышает maxReceiveCount для очереди, Amazon SQS перемещает сообщение в очередь недоставленных сообщений.

    Примечание

    Очередь недоставленных сообщений очереди FIFO также должна быть очередью FIFO. Точно так же очередь недоставленных сообщений стандартной очереди также должна быть стандартной очередью.

    • VisibilityTimeout — время ожидания видимости очереди в секундах. Допустимые значения: целое число от 0 до 43 200 (12 часов). По умолчанию: 30. Дополнительные сведения о тайм-ауте видимости см. в разделе Тайм-аут видимости в Руководстве разработчика по Amazon SQS .

    Следующие атрибуты применяются только к шифрованию на стороне сервера:

    • KmsMasterKeyId — идентификатор главного ключа клиента (CMK), управляемого Amazon Web Services, для Amazon SQS или пользовательского CMK. Дополнительные сведения см. в разделе Ключевые термины. Хотя псевдоним управляемого AWS CMK для Amazon SQS всегда равен 9.0450 alias/aws/sqs псевдоним пользовательского CMK может, например, быть “alias/ MyAlias ​​ “ . Дополнительные примеры см. в разделе KeyId в Справочнике по API службы управления ключами .
    • KmsDataKeyReusePeriodSeconds — время в секундах, в течение которого Amazon SQS может повторно использовать ключ данных для шифрования или расшифровки сообщений перед повторным вызовом KMS. Целое число, представляющее секунды, от 60 секунд (1 минута) до 86 400 секунд (24 часа). По умолчанию: 300 (5 минут). Более короткий период времени обеспечивает лучшую безопасность, но приводит к большему количеству вызовов KMS, за которые может взиматься плата после перехода на уровень бесплатного пользования. Дополнительные сведения см. в разделе Как работает период повторного использования ключа данных? .
    • SqsManagedSseEnabled — включает шифрование очереди на стороне сервера с использованием ключей шифрования, принадлежащих SQS. Для каждой очереди поддерживается только один вариант шифрования на стороне сервера (например, SSE-KMS или SSE-SQS).

    Следующий атрибут применяется только к очередям FIFO (первым поступил – первым обслужен):

    • ContentBasedDeduplication — включает дедупликацию на основе содержимого. Дополнительные сведения см. в разделе Однократная обработка в Amazon SQS Developer Guide 9039.4 . Обратите внимание на следующее:
      • Каждое сообщение должно иметь уникальный MessageDeduplicationId .
        • Вы можете явно указать MessageDeduplicationId .
        • Если вы не можете предоставить MessageDeduplicationId и включаете ContentBasedDeduplication для своей очереди, Amazon SQS использует хэш SHA-256 для создания MessageDeduplicationId , используя тело сообщения (но не атрибуты сообщение).
        • Если вы не укажете MessageDeduplicationId и в очереди не установлен ContentBasedDeduplication , действие завершится ошибкой.
        • Если в очереди установлен ContentBasedDeduplication , ваш MessageDeduplicationId переопределяет сгенерированный.
      • Когда действует ContentBasedDeduplication , сообщения с идентичным содержимым, отправленные в течение интервала дедупликации, обрабатываются как дубликаты, и доставляется только одна копия сообщения.
      • Если вы отправляете одно сообщение с включенным ContentBasedDeduplication , а затем другое сообщение с MessageDeduplicationId , совпадающим с созданным для первого MessageDeduplicationId , два сообщения рассматриваются как дубликаты, и только одна копия сообщения доставлен.

    Следующие атрибуты применяются только к высокой пропускной способности для очередей FIFO:

    • DeduplicationScope — указывает, происходит ли дедупликация сообщений на уровне группы сообщений или очереди. Допустимые значения: messageGroup и очередь .
    • FifoThroughputLimit — указывает, применяется ли квота пропускной способности очереди FIFO ко всей очереди или к группе сообщений. Допустимые значения: perQueue и perMessageGroupId . Значение perMessageGroupId допустимо, только если значение для DeduplicationScope равно messageGroup .

    Чтобы включить высокую пропускную способность для очередей FIFO, выполните следующие действия:

    • Задайте для DeduplicationScope значение messageGroup .
    • Задайте для FifoThroughputLimit значение perMessageGroupId .

    Если установить для этих атрибутов значения, отличные от показанных для включения высокой пропускной способности, действует нормальная пропускная способность и дедупликация выполняется, как указано.

    Сведения о квотах пропускной способности см. в разделе Квоты, связанные с сообщениями, в Руководстве разработчика по Amazon SQS .

    • (строка) —
      • (строка) —
Возвращает

Нет

Исключения

  • SQS.Client.exceptions.InvalidAttributeName
tag_queue ( **kwargs )

Добавьте теги распределения затрат в указанную очередь Amazon SQS. Обзор см. в разделе Тегирование очередей Amazon SQS в Руководство разработчика Amazon SQS .

При использовании тегов очереди помните о следующих рекомендациях:

  • Не рекомендуется добавлять в очередь более 50 тегов.
  • Теги не имеют семантического значения. Amazon SQS интерпретирует теги как строки символов.
  • Теги чувствительны к регистру.
  • Новый тег с ключом, идентичным ключу существующего тега, перезаписывает существующий тег.

Полный список ограничений тегов см. в разделе Квоты, связанные с очередями в Руководство разработчика Amazon SQS .

Примечание

Разрешения для нескольких учетных записей не применяются к этому действию. Дополнительные сведения см. в разделе Предоставление разрешений для нескольких учетных записей роли и имени пользователя в Руководстве разработчика по Amazon SQS .

См. также: Документация по API AWS

Синтаксис запроса

 ответ = client.tag_queue(
    QueueUrl='строка',
    Теги={
        'строка': 'строка'
    }
)
 
Параметры
Возвращает

Нет

untag_queue ( **kwargs )

Удалить теги распределения затрат из указанной очереди Amazon SQS. Обзор см. в разделе «Тегирование очередей Amazon SQS» в Руководстве разработчика по Amazon SQS .

Примечание

Разрешения для нескольких учетных записей не применяются к этому действию. Дополнительные сведения см. в разделе Предоставление разрешений между учетными записями для роли и имени пользователя в разделе Руководство разработчика Amazon SQS .

См. также: Документация по API AWS

Синтаксис запроса

 ответ = client.untag_queue(
    QueueUrl='строка',
    ТегКейс=[
        'нить',
    ]
)
 
Параметры
Возвращает

Нет

AWS Simple Queue Service (SQS) :: Apache Camel

68 Для определения протокола SQi0 при создании экземпляра клиента.

Значения перечисления:

  • HTTP

  • HTTPS

8 A для получения списка имен атрибутов Несколько имен могут быть разделены запятой.

тайм-аут по умолчанию.

9036 число секунд для отправки сообщений.

8 Для определения хоста SQ00008

8

9006 Максимальное количество пожаров. Поэтому, если вы установите значение 1, планировщик сработает только один раз. Если вы установите его на 5, он сработает только пять раз. Нулевое или отрицательное значение означает огонь навсегда.


8 TimeUnit для параметров InitialDelay и unit.

Значения перечисления:

  • НАНОСЕКУНДЫ

  • МИКРОСЕКУНДЫ

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

amazonAWSHost (общий)

Имя хоста облака Amazon AWS.

Amazonaws.com

Строка

Amazonsqsclient (Common)

9000 15 (Common)

9000 15 (Common)

9000 15.

SqsClient

autoCreateQueue (общий)

Настройка автосоздания очереди.

FALSE

BOOLEAN

HeaderFilterStrategy (Common)

до использования Custome HeadtraterStrateRTTRESTRTERTSTRATERTRETRESTRETS.

HeaderFilterStrategy

overrideEndpoint (общий)

Установите конечную точку для переопределения. Этот параметр необходимо использовать в сочетании с параметром uriEndpointOverride.

false

логическое значение

протокол (общий)

9000 Базовый протокол, используемый для связи с SQS.

https

String

proxyProtocol (общий)

HTTPS

Protocol

queueOwnerAWSAccountId (common)

Specify the queue owner aws account id when you need to connect the queue с другим владельцем аккаунта.

Строка

регион (общий)

Регион, в котором должен работать клиент SQS. При использовании этого параметра конфигурация будет ожидать имя региона в нижнем регистре (например, ap-east-1). Вам нужно будет использовать имя Region.EU_WEST_1.id().

String

trustAllCertificates (общий)

Если мы хотим доверять всем сертификатам конечной точки в случае переопределения.

ложный

boolean

uriEndpointOverride (общий)

Задайте конечную точку uri переопределения. Этот параметр необходимо использовать в сочетании с параметром overrideEndpoint.

String

useDefaultCredentialsProvider (общий)

Укажите, должен ли клиент SQS ожидать загрузки учетных данных infrastatic для экземпляра.0008

false

boolean

attributeNames (потребитель)

String

concurrentConsumers (потребитель)

Позволяет использовать несколько потоков для увеличения пропускной способности sqs. 9(in) 0008

1

int

defaultVisibilityTimeout (потребитель)

Целое число

deleteAfterRead (потребитель)

Удалить сообщение из SQS после его прочтения.

истина

логический

deleteIfFiltered (потребитель)

Следует ли отправлять DeleteMessage в очередь SQS, если обмен имеет свойство с ключом Sqs2Constants#SQS_DELETE_FILTERED setFiltesq (CamelAwlete_FILTERED)

True

BOOLEAN

ExtendMessagevisibility (потребитель)

IF ANTADED. Это нужно, если обработка сообщения занимает много времени. Если установлено значение true, необходимо установить значение defaultVisibilityTimeout. См. подробности в документации Amazon.

false

boolean

kmsDataKeyReusePeriodSeconds (consumer)

The length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS KMS снова. Целое число, представляющее секунды, от 60 секунд (1 минута) до 86 400 секунд (24 часа). По умолчанию: 300 (5 минут).

Целое число

kmsMasterKeyId (потребитель)

Идентификатор главного ключа клиента (CMK), управляемого AWS, для Amazon SQS или пользовательского CMK.

String

maxMessagesPerPoll (потребитель)

Получает максимальное количество сообщений при каждом опросе в качестве ограничения. По умолчанию неограничен, но используйте 0 или отрицательное число, чтобы отключить его как неограниченный.

int

messageAttributeNames (потребитель)

Список имен атрибутов сообщения для получения при потреблении. Несколько имен могут быть разделены запятой.

String

sendEmptyMessageWhenIdle (потребитель)

)

FALSE

BOOLEAN

ServersideEncryptionEnabled (потребитель)

Define Ir Servition Ir Servition Ir Servition Ir Servition Ir Servition Ir Servition ir.

FALSE

BOOLEAN

VisibuityTimeout (Потребитель)

. установлен в com.amazonaws.services.sqs.model.SetQueueAttributesRequest. Это имеет смысл только в том случае, если оно отличается от defaultVisibilityTimeout. Он постоянно изменяет атрибут тайм-аута видимости очереди.

Целое число

waitTimeSeconds (потребитель)

Длительность до получения сообщения для ответа на вызов в очереди (от 0 до 20) (от 0 до 20).

Integer

BridgeErrorHandler (потребитель (продвинутый))

позволяет использовать потребитель, чтобы получить погрузку, что может возникнуть, что может возникнуть в обращении с погрузкой. сообщения или подобные сообщения теперь будут обрабатываться как сообщение и обрабатываться обработчиком ошибок маршрутизации. По умолчанию потребитель будет использовать org.apache.camel.spi.ExceptionHandler для обработки исключений, которые будут регистрироваться на уровне WARN или ERROR и игнорироваться.

FALSE

BOOLEAN

ExceptionHandler (Consumer (Advanced))

по адресу потребительскому использованию. Обратите внимание, что если опция bridgeErrorHandler включена, то эта опция не используется. По умолчанию потребитель будет иметь дело с исключениями, которые будут зарегистрированы на уровне ПРЕДУПРЕЖДЕНИЯ или ОШИБКИ и проигнорированы.

Обработчик исключений

exchangePattern (потребитель (расширенный))

Задает шаблон обмена, когда потребитель создает обмен.

Enum values:

  • InOnly

  • InOut

  • InOptionalOut

ExchangePattern

pollStrategy (consumer (advanced))

A pluggable org . apache.camel.PollingConsumerPollingStrategy, позволяющий вам предоставить свою собственную реализацию для управления обработкой ошибок, обычно возникающих во время операции опроса до того, как Exchange был создан и маршрутизирован в Camel.

PollingConsumerPollStrategy

batchSeparator (производитель)

Установите разделитель для отправки пакетной операции.

,

Строка

delaySeconds (производитель)

Целое число

messageDeduplicationIdStrategy (производитель)

Только для очередей FIFO. Стратегия установки messageDeduplicationId для сообщения. Может быть одним из следующих вариантов: useExchangeId, useContentBasedDeduplication. Для параметра useContentBasedDeduplication для сообщения не будет задан идентификатор messageDeduplicationId.

Значения перечисления:

useExchangeId

Строка

messageGroupIdStrategy (производитель)

Только для очередей FIFO. Стратегия установки messageGroupId в сообщении. Может быть одним из следующих параметров: useConstant, useExchangeId, usePropertyValue. Для параметра usePropertyValue будет использоваться значение свойства CamelAwsMessageGroupId.

Значения перечисления:

  • useConstant

  • useExchangeId

  • usePropertyValue

Строка

MessageHeadErexexededLimit (Производитель)

, что для AWS LOMPLES ALMARS ALMAME ALMAM SPASION ARMUM ALMAR IRSMERS IRMERS IRMERS ORMARS ORMAR ISMARS IRSS IRSS ORSS IRSS ORMARS IRSS IRSS IRSS IRSS IRSS IRSS IRSS IRSS IRSS IRSS IRSS IRSS IRSS IRSS IRSS IRSS IRSS IRSS IRSRS. WARN будет регистрировать ПРЕДУПРЕЖДЕНИЕ об ограничении для каждого дополнительного заголовка, чтобы сообщение можно было отправить в AWS. WARN_ONCE регистрирует только один раз, когда WARN о превышении лимита достигает предела, и отбрасывает дополнительные заголовки, чтобы сообщение можно было отправить в AWS. IGNORE будет игнорировать (без ведения журнала) и удалять дополнительные заголовки, чтобы сообщение можно было отправить в AWS. FAIL вызовет исключение, и сообщение не будет отправлено в AWS.

Enum values:

  • WARN

  • WARN_ONCE

  • IGNORE

  • FAIL

WARN

String

operation (producer)

Операция на случай, если пользователь не хочет отправлять только сообщение.

Значения перечисления:

  • sendBatchMessage

  • deleteMessage

  • listQueues

  • purgeQueue

  • deleteQueue

Sqs2Operations

lazyStartProducer (producer (advanced))

Whether the producer надо запускать лениво (по первому сообщению). При ленивом запуске вы можете использовать это, чтобы разрешить запуск CamelContext и маршрутов в ситуациях, когда в противном случае производитель может выйти из строя во время запуска и вызвать сбой запуска маршрута. Откладывая этот запуск как ленивый, сбой запуска можно обработать во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что при обработке первого сообщения создание и запуск производителя может занять некоторое время и увеличить общее время обработки.

FALSE

BOOLEAN

DelayQueue (Advanced)

Def Def Or Way Or Deplesemons Option.

false

логический

proxyHost (proxy)

Строка

proxyPort (прокси)

Для определения порта прокси при создании экземпляра клиента SQS.

Integer

maxMessageSize (очередь)

Максимальный размер сообщения (в байтах) этой очереди может содержать SQS.

Целое число

messageRetentionPeriod (очередь)

В течение messageRetentionPeriod (в секундах) SQS будет хранить сообщение для этой очереди.

Целое

policy (queue)

Политика для этой очереди. По умолчанию он может быть загружен из пути к классам, но вы можете использовать префикс classpath:, file: или http: для загрузки ресурса из разных систем.

Строка

queueUrl (queue)

Для явного определения queueUrl. Все остальные параметры, влияющие на queueUrl, игнорируются. Этот параметр предназначен для подключения к фиктивной реализации SQS в целях тестирования.

Строка

GETIVEMESSAGEVAITTIMESECONDS (QUEUE)

, если вы не определяете, что вы можете получить aTresseSe.

Целое число

redrivePolicy (очередь)

Укажите политику, которая отправляет сообщение в DeadLetter. См. подробности в документации Amazon.

String

backoffErrorThreshold (планировщик)

Количество последующих ошибок, которые должны произойти до того, как должно произойти откат из-за опроса ошибок (failed).

int

backoffIdleThreshold (планировщик)

Количество последующих опросов kick-inult, которые должны произойти перед бездействующими опросами.

int

backoffMultiplier (планировщик)

/error Множитель — это количество опросов, которые будут пропущены, прежде чем следующая фактическая попытка повторится. Если используется этот параметр, необходимо также настроить backoffIdleThreshold и/или backoffErrorThreshold.

int

задержка (планировщик)

Миллисекунды до следующего опроса.

500

Long

Greedy (Plartuler)

, если GREED IR ENALDEL IRLED.

ложь

логический

initialDelay (планировщик)

Миллисекунды до начала первого опроса.

1000

long

RepeatCount (планировщик)

0

Long

Runlogginglevel (Mediculer)

. Эта опция позволяет вам настроить уровень ведения журнала для этого.

Значения перечисления:

  • TRACE

  • DEBUG

  • Информация

  • Warn

  • .0008

  • OFF

TRACE

LoggingLevel

DEDECELEXERVERSVERVERSVERSERVERSORD (

. По умолчанию каждый потребитель имеет свой собственный однопоточный пул потоков.

ScheduledExecutorService

планировщик (планировщик)

Для использования планировщика cron из компонента camel-spring или camel-quartz. Используйте пружину или кварц для встроенного планировщика.

Нет

Объект

PredulerPerties (Preduler)

на конфигурации. Собросовые заплаты. Пользователь. Собственные заплаты. Использование. Собственные заплаты. Использование. Собственные заплаты. Использование. Собственные заплаты. Использование. Собственные платы. Использование. Собственные платы. Использование. ИСПОЛЬЗОВАНИЕ СПАСИНА.

Карта

startScheduler (планировщик)

Должен ли планировщик запускаться автоматически.

true

boolean

timeUnit (планировщик)

MILLISECONDS

TimeUnit

useFixedDelay (scheduler)

Управляет использованием фиксированной задержки или фиксированной скорости. Дополнительные сведения см. в разделе ScheduledExecutorService в JDK.

верно

логическое значение

ключ доступа (безопасность)

Ключ доступа Amazon AWS.

Строка

secretKey (безопасность)

Секретный ключ Amazon AWS.

Строка

Стандартные очереди SQS и архивы очередей SQS FIFO

~ Последнее обновление: ~ jayendrapatil ~ 4 комментария

  • SQS FIFO Queue обеспечивает улучшенный обмен сообщениями между приложениями с дополнительными функциями
    • Доставка FIFO (первым пришел - первым обслужен)
      • порядок отправки и получения сообщений строго сохраняется
      • ключ, когда порядок операций и событий имеет решающее значение
    • Однократная обработка
      • сообщение доставляется один раз и остается доступным до тех пор, пока потребитель не обработает и не удалит его
      • , если дубликаты недопустимы.
      • ограничено 300 или 3000 (с пакетной обработкой) транзакций в секунду (TPS)
  • Очереди
  • FIFO предоставляют все возможности стандартных очередей, а также улучшают и дополняют стандартную очередь.
  • Очереди FIFO
  • поддерживают группы сообщений, которые позволяют использовать несколько упорядоченных групп сообщений в одной очереди.
  • Очереди FIFO доступны в регионах Восток США (Северная Вирджиния), Восток США (Огайо), Запад США (Орегон) и ЕС (Ирландия) (постоянно меняются)
  • Имя очереди FIFO должно заканчиваться на .fifo
  • Буферизованный асинхронный клиент SQS в настоящее время не поддерживает очереди FIFO
  • Не все сервисы AWS поддерживают FIFO, например
    • Крючки жизненного цикла автоматического масштабирования
    • События Amazon CloudWatch
    • Действия правил AWS IoT
    • Очереди недоставленных сообщений AWS Lambda
    • Уведомления о событиях Amazon S3
    • Подписки на темы Amazon SNS
  • SQS FIFO поддерживает одного или нескольких производителей, и сообщения сохраняются в том порядке, в котором они были успешно получены SQS.
  • Очереди SQS FIFO не обслуживают сообщения из одной и той же группы сообщений более чем одному потребителю одновременно.

Дедупликация сообщений

  • API-интерфейсы SQS обеспечивают функцию дедупликации, которая предотвращает отправку дубликатов производителем сообщений.
  • Идентификатор дедупликации сообщений — это токен, используемый для дедупликации отправленных сообщений.
  • Если сообщение с определенным идентификатором дедупликации сообщений отправлено успешно, любые сообщения, отправленные с таким же идентификатором дедупликации сообщений, будут успешно приняты, но не доставлены в течение 5-минутного интервала дедупликации.
  • Таким образом, любые дубликаты, введенные производителем сообщений, удаляются в течение 5-минутного интервала дедупликации
  • Дедупликация сообщений применяется ко всей очереди, а не к отдельным группам сообщений

Группы сообщений

  • Сообщения сгруппированы в отдельные упорядоченные «пачки» в очереди FIFO
  • Идентификатор группы сообщений — это тег, указывающий, что сообщение принадлежит к определенной группе сообщений
  • Для каждого идентификатора группы сообщений все сообщения отправляются и принимаются в строгом порядке
  • Однако сообщения с разными значениями ID группы сообщений могут отправляться и приниматься не по порядку.
  • Каждое сообщение должно быть связано с идентификатором группы сообщений, без которого действие не выполняется.
  • SQS доставляет сообщения в том порядке, в котором они поступают для обработки, если несколько узлов (или разные потоки на одном узле) отправляют сообщения с одинаковым идентификатором группы сообщений
  • .

Стандартные очереди SQS и очереди SQS FIFO

См. сообщение в блоге — Стандартные очереди SQS и очереди FIFO

Практические вопросы сертификационного экзамена AWS

  • Вопросы собраны из Интернета, а ответы отмечены в соответствии с моими знаниями и пониманием (которые могут отличаться от ваших).
  • Сервисы AWS обновляются каждый день, и как ответы, так и вопросы могут скоро устареть, поэтому изучайте соответствующим образом.
  • Экзаменационные вопросы AWS не обновляются, чтобы не отставать от обновлений AWS, поэтому, даже если базовая функция изменилась, вопрос может не обновляться
  • Открыт для дальнейших отзывов, обсуждений и исправлений.
  1. Приложению для бронирования столиков в ресторане необходима возможность вести список ожидания. Когда клиент пытается зарезервировать стол, а свободных нет, клиент должен быть помещен в список ожидания, и приложение должно уведомить клиента, когда стол освободится. Какую услугу должен порекомендовать архитектор решений для обеспечения того, чтобы система соблюдала порядок, в котором запросы клиентов помещаются в список ожидания?
    1. Amazon SNS
    2. AWS Lambda с последовательной отправкой
    3. Очередь FIFO в Amazon SQS
    4. Стандартная очередь в Amazon SQS
  2. Как применительно к Amazon SQS обеспечить доставку сообщений по порядку? Выберите 2 ответа
    1. Увеличьте размер вашей очереди
    2. Отправить их с меткой времени
    3. Использование очередей FIFO
    4. Дайте каждому сообщению уникальный идентификатор
    5. Использовать порядковый номер в сообщениях со стандартными очередями
  3. Компания запустила крупную аукционную платформу, на которой люди покупают и продают широкий ассортимент товаров. Платформа требует, чтобы транзакции от покупателей и продавцов обрабатывались именно в том порядке, в котором они были получены. На данный момент платформа реализована с использованием RabbitMQ, который представляет собой облегченную систему очередей. Компания проконсультировала вас по вопросам переноса локальной платформы на AWS. Как вы должны разработать план миграции? (Выберите ДВА)
    1. После получения предложений отправьте их в очередь SQS FIFO перед их обработкой.
    2. Когда пользователи отправляют ставки из внешнего интерфейса, внутренняя служба доставляет сообщения в стандартную очередь SQS.
    3. Добавьте идентификатор группы сообщений к сообщениям перед их отправкой в ​​очередь SQS, чтобы обработка сообщений происходила в строгом порядке.
    4. Используйте EC2 или Lambda, чтобы добавить идентификатор дедупликации к сообщениям перед отправкой сообщений в очередь SQS, чтобы гарантировать, что заявки обрабатываются в правильном порядке.

Нравится:

Нравится Загрузка...

~ Последнее обновление: ~ jayendrapatil ~ 18 комментариев

  • Amazon SQS — это высокодоступная распределенная система очередей
  • Очередь — это временное хранилище сообщений, ожидающих обработки, и действует как буфер между производителем компонента и потребителем
  • .
  • SQS — это служба очереди сообщений, используемая распределенными приложениями для обмена сообщениями через , опрашивающий модель , и может использоваться для разделения отправляющего и принимающего компонентов.
  • Amazon SQS
    • полностью управляемый и не требует дополнительных административных затрат и небольшой настройки
    • предлагает надежную, масштабируемую размещенную очередь для хранения сообщений, находящихся в пути между приложениями
    • .
    • обеспечивает отказоустойчивую, слабосвязанную гибкость распределенных компонентов приложений для отправки и получения без необходимости одновременной доступности каждого компонента
    • помогает создавать распределенное приложение с несвязанными компонентами
    • поддерживает протоколы HTTP через SSL (HTTPS) и Transport Layer Security (TLS) для обеспечения безопасности
  • SQS предоставляет два типа очередей — стандартную и FIFO
  • .

Функции SQS FIFO Queue

См. публикацию в блоге — SQS FIFO Queue

SQS Standard Queue Features

  • Резервируемая инфраструктура
    • предлагает надежные и масштабируемые очереди для хранения сообщений
    • спроектирован так, чтобы всегда быть доступным и доставлять сообщения
    • обеспечивает возможность хранения сообщений в отказоустойчивой очереди
    • высокопараллельный доступ к сообщениям
  • Доставка хотя бы один раз
    • обеспечивает доставку каждого сообщения хотя бы один раз
    • хранит копии сообщений на нескольких серверах для резервирования и обеспечения высокой доступности
    • может доставлять дубликаты сообщений, если серверы, на которых хранится копия сообщения, недоступны, когда вы получаете или удаляете сообщение, и копия сообщения не удаляется на этом недоступном сервере
    • Приложения должны быть идемпотентными с возможностью обработки повторяющихся сообщений и не подвергаться неблагоприятному влиянию, если одно и то же сообщение обрабатывается более одного раза
  • Атрибуты сообщения
    • Сообщение SQS может содержать до 10 атрибутов метаданных.
    • принимают форму троек имя-тип-значение
    • можно использовать для отделения тела сообщения от описывающих его метаданных.
    • помогает обрабатывать и хранить информацию с большей скоростью и эффективностью, поскольку приложениям не нужно проверять все сообщение, прежде чем понять, как его обрабатывать
  • Выборка сообщений
    • поведение извлечения сообщений из очереди зависит от того, используется ли короткий (стандартный) опрос, поведение по умолчанию или длительный опрос
    • С коротким опросом ,
      • производит выборку только подмножества серверов (на основе взвешенного случайного распределения) и возвращает сообщения только с этих серверов.
      • Запрос на получение может не вернуть все сообщения в очереди. Но последующий запрос на получение вернет сообщение
    • С Долгий опрос ,
      • запрос сохраняется в течение указанного времени и возвращается, как только сообщение становится доступным, что снижает затраты и время пребывания сообщения в очереди
      • долгий опрос не возвращает ответ до тех пор, пока сообщение не поступит в очередь сообщений или пока не истечет время длительного опроса.
      • делает недорогим извлечение сообщений из очереди SQS, как только сообщения становятся доступными.
      • может помочь снизить стоимость использования SQS, так как количество пустых приемов уменьшается
  • Дозирование
    • SQS позволяет отправлять, получать и удалять пакеты, что помогает объединять до 10 сообщений в один пакет при взимании платы за одно сообщение
    • помогает снизить затраты, а также увеличивает пропускную способность
  • Настраиваемые параметры для каждой очереди
    • Все очереди не должны быть одинаковыми
  • Заказ
    • прилагает все усилия для сохранения порядка в сообщениях не гарантирует доставку сообщений в порядке очереди
    • можно обработать, поместив информацию о последовательности в сообщение и выполнив заказ на стороне клиента
  • Свободная муфта
    • удаляет жесткое соединение между компонентами
    • предоставляет возможность перемещать данные между распределенными компонентами приложений, выполняющих разные задачи, без потери сообщений и без требования постоянной доступности каждого компонента
  • Несколько устройств записи и чтения
    • поддерживает несколько операций чтения и записи, взаимодействующих с одной и той же очередью в одно и то же время
    • блокирует сообщение во время обработки, используя Время ожидания видимости , предотвращая его обработку любым другим потребителем
  • Переменный размер сообщения
    • поддерживает сообщения в любом формате до 256 КБ текста.
    • 90 122 сообщениями размером более 256 КБ можно управлять с помощью S3 или DynamoDB, при этом SQS содержит указатель на объект S3
  • Контроль доступа
    • Можно контролировать доступ для тех, кто может создавать и потреблять сообщения в каждой очереди
  • Очереди задержки
    • очередь задержки позволяет пользователю установить задержку по умолчанию для очереди, чтобы доставка всех сообщений в очереди откладывалась на этот период времени
  • Очереди недоставленных писем
    • Очередь недоставленных сообщений — это очередь сообщений, которые не удалось обработать после максимального количества попыток
    • полезен для изоляции сообщений, которые невозможно обработать для последующего анализа.
  • PCI Соответствие
    • поддерживает обработку, хранение и передачу данных кредитных карт продавцом или поставщиком услуг и был проверен на соответствие стандарту PCI-DSS (индустрия платежных карт — стандарт безопасности данных)
    • .

Варианты использования SQS

  • Рабочие очереди
    • Разделение компонентов распределенного приложения, которые не могут одновременно выполнять одинаковый объем работы.
  • Буферные и пакетные операции
    • Повышение масштабируемости и надежности архитектуры и сглаживание временных всплесков объема без потери сообщений и увеличения задержки
  • Запрос на разгрузку
    • Удалите медленные операции с путей интерактивных запросов, поставив запрос в очередь.
  • Разветвитель
    • Объедините SQS с SNS для параллельной отправки идентичных копий сообщения в несколько очередей для одновременной обработки.
  • Автоматическое масштабирование
    • Очереди SQS можно использовать для определения нагрузки на приложение, а в сочетании с автоматическим масштабированием экземпляры EC2 можно увеличивать или уменьшать в зависимости от объема трафика

Как работают очереди SQS

  • SQS позволяет создавать и удалять очереди, а также отправлять и получать сообщения из нее
  • Очередь
  • SQS по умолчанию хранит сообщения в течение четырех дней.
  • Очереди можно настроить для хранения сообщений от 1 минуты до 14 дней после отправки сообщения.
  • SQS может удалить очередь без уведомления, если в ней не выполнялись какие-либо действия в течение 30 дней подряд.
  • SQS позволяет удалить очередь с сообщениями в ней

Идентификаторы очередей и сообщений

URL-адреса очередей

  • Очередь идентифицируется уникальным именем очереди в рамках одной учетной записи AWS
  • SQS присваивает каждой очереди идентификатор URL-адреса очереди , например. http://sqs.us-east-1.amazonaws.com/123456789012/queue2
  • URL-адрес очереди необходим для выполнения любой операции в очереди

Идентификатор сообщения

  • Идентификаторы сообщений полезны для идентификации сообщений,
  • Каждое сообщение получает назначенный системой идентификатор сообщения, который SQS возвращает с ответом SendMessage.
  • Чтобы удалить сообщение, требуется дескриптор квитанции сообщения вместо идентификатора сообщения
  • Идентификатор сообщения может содержать не более 100 символов

Дескриптор получения

  • Когда сообщение получено из очереди, дескриптор получения возвращается вместе с сообщением, которое связано с актом получения сообщения, а не с самим сообщением
  • Требуется дескриптор квитанции, а не идентификатор сообщения, чтобы удалить сообщение или изменить видимость сообщения
  • Если сообщение получено более одного раза, каждый раз при его получении назначается другой дескриптор получения, и всегда следует использовать самый последний

Тайм-аут видимости

  • SQS не удаляет сообщение после его получения потребителем, поскольку система является распределенной, нет гарантии, что потребитель действительно получит сообщение (возможно, соединение может прерваться или компонент может не получиться до получения сообщения)
  • Потребитель должен явным образом удалить сообщение из Очереди, как только оно будет получено и успешно обработано
  • Поскольку сообщение все еще доступно в очереди, другие потребители смогут получать и обрабатывать, и это необходимо предотвратить
  • .
  • SQS обрабатывает указанное выше поведение с помощью Тайм-аут видимости .
  • SQS блокирует видимость сообщения на время ожидания видимости, то есть время, в течение которого SQS не позволяет другим потребляющим компонентам получать и обрабатывать это сообщение
  • Потребитель должен удалить сообщение в течение времени ожидания видимости. Если потребителю не удается удалить сообщение до истечения времени ожидания видимости, сообщение снова становится видимым для других потребителей.
  • Когда сообщение становится видимым, оно становится доступным для использования другими потребителями, что может привести к повторяющимся сообщениям .
  • Соображения по тайм-ауту видимости
    • часы начинают идти, когда SQS возвращает сообщение
    • должно быть достаточно большим, чтобы учесть время обработки каждого сообщения
    • Тайм-аут видимости по умолчанию для каждой очереди составляет 30 секунд и может быть изменен на уровне очереди
    • при получении сообщений можно установить специальный тайм-аут видимости для возвращенных сообщений без изменения общего тайм-аута очереди с помощью дескриптора получения
    • .
    • может быть расширен потребителем с помощью ChangeMessageVisibility , если потребитель считает, что не сможет обработать сообщение в течение текущего периода ожидания видимости. SQS перезапускает период ожидания, используя новое значение 9.0123
    • Расширение времени ожидания видимости сообщения применяется только к этому конкретному получению сообщения и не влияет на время ожидания для очереди или более поздних получениях сообщения
  • SQS имеет ограничение в 120 000 на количество находящихся в пути сообщений в очереди, т. е. сообщение получено, но еще не удалено, и любые последующие сообщения будут получать сообщение об ошибке после достижения предела
  • .

Жизненный цикл сообщения

  1. Компонент 1 отправляет сообщение A в очередь, и сообщение избыточно распределяется по серверам SQS.
  2. Когда компонент 2 готов обработать сообщение, он извлекает сообщения из очереди, и возвращается сообщение A. Пока сообщение А обрабатывается, оно остается в очереди, но не возвращается для последующих запросов на получение в течение времени ожидания видимости.
  3. Компонент 2 удаляет сообщение A из очереди, чтобы сообщение не было получено и обработано снова после истечения времени ожидания видимости.

Буферизованный асинхронный клиент SQS
  • Amazon SQS Buffered Async Client для Java обеспечивает реализацию интерфейса AmazonSQSAsyncClient и добавляет несколько важных функций:
    • Автоматическое группирование из нескольких SendMessage , DeleteMessage или ChangeMessageVisibility запросов без каких-либо необходимых изменений в приложении
    • Предварительная выборка сообщений в локальный буфер, что позволяет приложению немедленно обрабатывать сообщения от SQS, не дожидаясь получения сообщений
  • Работая вместе, автоматическая пакетная обработка и предварительная выборка увеличивают пропускную способность и уменьшают задержку приложения, а также снижают затраты за счет меньшего количества запросов SQS.

SQS Безопасность и надежность

  • SQS хранит все очереди сообщений и сообщения в одном высокодоступном регионе AWS с несколькими резервными зонами доступности (AZ)
  • SQS поддерживает протоколы HTTP через SSL (HTTPS) и Transport Layer Security (TLS).
  • SQS поддерживает шифрование в состоянии покоя. SSE шифрует сообщения, как только SQS их получает, и расшифровывает сообщения, только когда они отправляются авторизованному потребителю.
  • SQS также поддерживает разрешения на основе ресурсов 

Шаблоны проектирования SQS

Шаблон очереди приоритетов

  1. Используйте SQS для подготовки нескольких очередей для отдельных уровней приоритета.
  2. Поместите процессы, которые должны выполняться немедленно (запросы заданий), в очередь с высоким приоритетом.
  3. Подготовить количество серверов пакетной обработки для обработки запросов заданий очередей в зависимости от уровней приоритета.
  4. Очереди имеют функцию сообщения «Отложенная отправка», которую можно использовать для задержки времени запуска процесса.

База данных SQS Job Observer

  1. Ставить запросы заданий в очередь в виде сообщений SQS.
  2. Попросите сервер пакетной обработки удалить из очереди и обработать сообщения от SQS.
  3. Настройте Auto Scaling для автоматического увеличения или уменьшения количества серверов пакетной обработки с использованием количества сообщений SQS с помощью CloudWatch в качестве триггера для этого.

Стандартные очереди SQS и очереди FIFO SQS

См. запись в блоге — Стандартные очереди SQS и очереди FIFO

Практические вопросы сертификационного экзамена AWS

  • Вопросы собраны из Интернета, а ответы отмечены в соответствии с моими знаниями и пониманием (которые могут отличаться от ваших).
  • Сервисы AWS обновляются каждый день, и как ответы, так и вопросы могут скоро устареть, поэтому изучайте соответствующим образом.
  • Экзаменационные вопросы AWS не обновляются, чтобы не отставать от обновлений AWS, поэтому, даже если базовая функция изменилась, вопрос может не обновляться
  • Открыт для дальнейших отзывов, обсуждений и исправлений.
  1. Какой сервис AWS поможет разработать архитектуру для сохранения текущих транзакций?
    1. Эластичный IP-адрес
    2. SQS
    3. Amazon CloudWatch
    4. Amazon ElastiCache
  2. В компании есть рабочий процесс, который отправляет видеофайлы из локальной системы в AWS для перекодирования. Они используют рабочие экземпляры EC2, которые извлекают задания перекодирования из SQS. Почему SQS подходит для этого сценария?
    1. SQS гарантирует порядок сообщений.
    2. SQS синхронно обеспечивает вывод транскодирования.
    3. SQS проверяет работоспособность рабочих экземпляров.
    4. SQS помогает упростить горизонтальное масштабирование задач кодирования
  3. Какое утверждение лучше всего описывает вариант использования Amazon SQS?
    1. Автоматизировать процесс отправки уведомлений по электронной почте администраторам, когда загрузка ЦП достигает 70 % на рабочих серверах (экземпляры Amazon EC2) (CloudWatch + SNS + SES)
    2. Создание веб-сайта для транскодирования видео, на котором несколько компонентов должны взаимодействовать друг с другом, но не могут одновременно выполнять один и тот же объем работы (SQS обеспечивает слабую связь)
    3. Координация работы в распределенных веб-службах для обработки отчетов о расходах сотрудников (SWF — шаги по порядку, возможно, потребуется выполнение действий вручную)
    4. Распространение статического веб-контента среди конечных пользователей с низкой задержкой в ​​нескольких странах (CloudFront + S3)
  4. Ваше приложение предоставляет услуги по преобразованию данных. Файлы, содержащие данные для преобразования, сначала загружаются в Amazon S3, а затем преобразуются с помощью группы спотовых инстансов EC2. Файлы, отправленные вашими премиум-клиентами, должны быть преобразованы с наивысшим приоритетом. Как реализовать такую ​​систему?
    1. Используйте таблицу DynamoDB с атрибутом, определяющим уровень приоритета. Экземпляры преобразования будут сканировать таблицу на наличие задач, сортируя результаты по уровню приоритета.
    2. Используйте маршрутизацию на основе задержки Route 53 для отправки высокоприоритетных задач ближайшим экземплярам преобразования.
    3. Используйте две очереди SQS, одну для сообщений с высоким приоритетом, а другую для приоритета по умолчанию. Экземпляры преобразования сначала опрашивают очередь с высоким приоритетом; если сообщения нет, они опрашивают очередь с приоритетом по умолчанию
    4. Используйте одну очередь SQS. Каждое сообщение содержит уровень приоритета. Экземпляры трансформации сначала опрашивают высокоприоритетные сообщения.
  5. Ваша компания планирует разместить большой веб-сайт для пожертвований на Amazon Web Services (AWS). Вы ожидаете большой и неопределенный объем трафика, который приведет к большому количеству операций записи в базу данных. Чтобы быть уверенным, что вы не отбрасываете записи в базу данных, размещенную на AWS. Какой сервис следует использовать?
    1. Amazon RDS с выделенным IOPS до ожидаемой пиковой пропускной способности записи.
    2. Amazon Simple Queue Service (SQS) для захвата операций записи и очистки очереди для записи в базу данных
    3. Amazon ElastiCache для хранения записей до тех пор, пока записи не будут зафиксированы в базе данных.
    4. Amazon DynamoDB с подготовленной пропускной способностью записи до ожидаемой пиковой пропускной способности записи.
  6. У клиента есть подключение AWS Direct Connect на 10 ГБ к региону AWS, где у него есть веб-приложение, размещенное в Amazon Elastic Computer Cloud (EC2). Приложение зависит от локальной базы данных мэйнфрейма, которая использует модель согласованности BASE (базовая доступность, мягкое состояние, согласованность в конечном итоге), а не ACID (атомарность, согласованность, изоляция, долговечность). Приложение демонстрирует нежелательное поведение, так как база данных не может обрабатывать объем операций записи. Как можно снизить нагрузку на ресурсы локальной базы данных наиболее экономичным способом?
    1. Используйте Amazon Elastic Map Reduce (EMR) S3DistCp в качестве механизма синхронизации между локальной базой данных и кластером Hadoop на AWS.
    2. Изменение приложения для записи в очередь Amazon SQS и разработка рабочего процесса для сброса очереди в локальную базу данных
    3. Измените приложение, чтобы оно использовало DynamoDB для подачи данных в кластер EMR, который использует функцию сопоставления для записи в локальную базу данных.
    4. Подготовьте базу данных реплики чтения RDS на AWS для обработки операций записи и синхронизации двух баз данных с помощью Data Pipeline.
  7. Организация создала очередь с именем «modularqueue» с помощью SQS. Организация не выполняет никаких операций, таких как SendMessage, ReceiveMessage, DeleteMessage, GetQueueAttributes, SetQueueAttributes, AddPermission и RemovePermission в очереди. Что может произойти в этом сценарии?
    1. AWS SQS отправляет уведомление через 15 дней о бездействии в очереди
    2. AWS SQS может удалить очередь через 30 дней без уведомления
    3. AWS SQS помечает очередь как неактивную через 30 дней
    4. AWS SQS уведомляет пользователя через 2 недели и удаляет очередь через 3 недели.
  8. Пользователь использует AWS SQS для разделения сервисов. Какие из перечисленных ниже операций не поддерживаются SQS?
    1. SendMessageBatch
    2. Удалитьмессажебатч
    3. Создать очередь
    4. DeleteMessageQueue
  9. Пользователь создал очередь с именем «awsmodule» с помощью SQS. Один из потребителей очереди недоступен в течение 3 дней, а затем становится доступным. Будет ли этот компонент получать сообщение из очереди?
    1. Да, так как SQS по умолчанию хранит сообщения 4 дня
    2. Нет, т.к. SQS по умолчанию хранит сообщения только 1 день
    3. Нет, так как SQS отправляет сообщение потребителям, доступным в это время
    4. Да, так как SQS не удалит сообщение, пока оно не будет доставлено всем потребителям
  10. Пользователь создал очередь с именем «queue2» в регионе Восток США с помощью AWS SQS. Идентификатор учетной записи пользователя AWS — 123456789012. Если пользователь хочет выполнить какое-либо действие в этой очереди, какой из приведенных ниже URL-адресов очереди ему следует использовать?
    1. http://sqs.us-east-1.amazonaws.com/123456789012/queue2
    2. http://sqs.amazonaws.com/123456789012/queue2
    3. http://кв. 123456789012.us-east-1.amazonaws. com/queue2
    4. http://123456789012.sqs.us-east-1.amazonaws.com/queue2
  11. Пользователь создал очередь с именем «myqueue» с помощью SQS. В очередь опубликовано четыре сообщения, которые еще не получены потребителем. Что произойдет, если пользователь попытается удалить очередь?
    1. Пользователь никогда не может удалить очередь вручную. AWS удаляет его через 30 дней бездействия в очереди
    2. .
    3. Это удалит очередь
    4. Он инициирует удаление, но ждет четыре дня перед удалением, пока все сообщения не будут удалены автоматически.
    5. Сначала пользователю будет предложено удалить сообщения
  12. Пользователь разработал приложение, которое требуется для отправки данных в базу данных NoSQL. Пользователь хочет отделить отправку данных, чтобы приложение продолжало обрабатывать и отправлять данные, но не ждало подтверждения БД. Какое из нижеперечисленных приложений помогает в этом сценарии?
    1. Простая служба уведомлений AWS
    2. Простой рабочий процесс AWS
    3. Простая служба очередей AWS
    4. Простой сервис запросов AWS
  13. Вы создаете интернет-магазин на AWS, который использует SQS для обработки заказов клиентов. Вашей серверной системе нужны эти сообщения в той же последовательности, в которой были размещены заказы клиентов. Как вы можете этого добиться?
    1. Это невозможно сделать с SQS
    2. Вы можете использовать информацию о последовательности для каждого сообщения
    3. Вы можете сделать это с помощью SQS, но вам также необходимо использовать SWF
    4. Сообщения будут приходить в том же порядке по умолчанию
  14. Пользователь создал программу для редактирования фотографий и разместил ее на EC2. Программное обеспечение принимает запросы от пользователя о формате и разрешении фотографии и отправляет сообщение S3 для соответствующего улучшения изображения. Какие из перечисленных ниже сервисов AWS помогут создать масштабируемое программное обеспечение с инфраструктурой AWS в этом сценарии?
    1. Ледник AWS
    2. Эластичный транскодер AWS
    3. Простая служба уведомлений AWS
    4. Простая служба очередей AWS
  15. См. архитектурную схему решения пакетной обработки с использованием Simple Queue Service (SQS) для настройки очереди сообщений между экземплярами EC2, которые используются в качестве пакетных процессоров. Cloud Watch отслеживает количество запросов заданий (сообщений в очереди), а группа Auto Scaling автоматически добавляет или удаляет пакетные серверы на основе параметров, установленных в сигналах тревоги Cloud Watch. Вы можете использовать эту архитектуру для реализации каких из следующих функций экономичным и эффективным способом?
    1. Сократите общее время выполнения заданий за счет параллельной обработки, разрешив занятому экземпляру EC2, который получает сообщение, передать его следующему экземпляру в гирляндной настройке.
    2. Реализуйте отказоустойчивость на случай сбоя экземпляра EC2, поскольку сообщения останутся в SQS и изношенные, их можно продолжить восстановлением экземпляров EC2. Реализуйте отказоустойчивость на случай сбоя SQS путем резервного копирования сообщений в S3.
    3. Реализовать передачу сообщений между экземплярами EC2 внутри пакета путем обмена сообщениями через SOS.
    4. Автоматическое согласование количества экземпляров EC2 с количеством запросов на работу, что повышает экономическую эффективность
    5. Обрабатывайте задания с высоким приоритетом перед заданиями с более низким приоритетом, назначая поле метаданных приоритета сообщениям SQS.
  16. Как Amazon SQS позволяет нескольким читателям получать доступ к одной и той же очереди сообщений, не теряя сообщения и не обрабатывая их многократно?
    1. Путем идентификации пользователя по его уникальному идентификатору
    2. Используя уникальную криптографию
    3. Очередь Amazon SQS имеет настраиваемый тайм-аут видимости
    4. Несколько читателей не могут получить доступ к одной и той же очереди сообщений
  17. Пользователь создал программное обеспечение для редактирования фотографий и разместил его на EC2. Программное обеспечение принимает запросы от пользователя о формате и разрешении фотографии и отправляет сообщение S3 для соответствующего улучшения изображения. Какие из перечисленных ниже сервисов AWS помогут создать масштабируемое программное обеспечение с инфраструктурой AWS в этом сценарии?
    1. Эластичный транскодер AWS
    2. Простая служба уведомлений AWS
    3. Простая служба очередей AWS
    4. Ледник AWS
  18. Как настроить SQS для поддержки более длительного хранения сообщений?
    1. Установите атрибут MessageRetentionPeriod с помощью метода SetQueueAttributes
    2. Использование лямбда-функции
    3. Вы не можете. Он установлен на 14 дней и не может быть изменен
    4. Вам необходимо запросить его у AWS
  19. Пользователь разработал приложение, которое требуется для отправки данных в базу данных NoSQL. Пользователь хочет отделить отправку данных, чтобы приложение продолжало обрабатывать и отправлять данные, но не ждало подтверждения БД. Какое из нижеперечисленных приложений помогает в этом сценарии?
    1. Простая служба уведомлений AWS
    2. Простой рабочий процесс AWS
    3. Простой сервис запросов AWS
    4. Простая служба очередей AWS
  20. Если сообщение извлекается из очереди в Amazon SQS, как долго оно по умолчанию недоступно для других пользователей?
    1. 0 секунд
    2. 1 час
    3. 1 день
    4. навсегда
    5. 30 секунд
  21. Какое из следующих утверждений о SQS верно?
    1. Сообщения будут доставлены ровно один раз, и сообщения будут доставлены в порядке «первым пришел – первым обслужен»
    2. Сообщения будут доставлены ровно один раз, и порядок доставки сообщений не определен
    3. Сообщения будут доставлены один или несколько раз, и сообщения будут доставлены в порядке «первым пришел, первым обслужен»
    4. Сообщения будут доставлены один или несколько раз, и порядок доставки сообщений не определен (До введения очередей FIFO)
  22. Как долго вы можете хранить свои сообщения Amazon SQS в очередях Amazon SQS?
    1. От 120 секунд до 4 недель
    2. От 10 секунд до 7 дней
    3. От 60 секунд до 2 недель
    4. От 30 секунд до 1 недели
  23. Когда сообщение Simple Queue Service запускает задачу, выполнение которой занимает 5 минут, какой процесс из приведенных ниже приведет к успешной обработке сообщения и удалению его из очереди при минимальных шансах дублирования обработки?
    1. Получить сообщение с увеличенным временем ожидания видимости, обработать сообщение, удалить сообщение из очереди
    2. Получить сообщение с увеличенным временем ожидания видимости, удалить сообщение из очереди, обработать сообщение
    3. Получить сообщение с увеличенным значением DelaySeconds, обработать сообщение, удалить сообщение из очереди
    4. Получить сообщение с увеличенным значением DelaySeconds, удалить сообщение из очереди, обработать сообщение
  24. Вам нужно обработать длительные задания один и только один раз. Как вы могли бы это сделать?
    1. Используйте очередь SNS и установите время ожидания видимости, достаточное для обработки заданий.
    2. Используйте очередь SQS и установите время ожидания повторной обработки, достаточное для обработки заданий.
    3. Используйте очередь SQS и установите время ожидания видимости, достаточное для обработки заданий.
    4. Используйте очередь SNS и установите время ожидания повторной обработки, достаточное для обработки заданий.
  25. При использовании Amazon SQS вы получаете много пустых запросов на получение. Это создает большую ненужную сетевую нагрузку на ваши экземпляры. Что вы можете сделать, чтобы уменьшить эту нагрузку?
    1. Вместо этого подпишите свою очередь на тему SNS.
    2. Используйте как можно более длинный опрос вместо коротких опросов. (Ссылка)
    3. Уменьшите время ожидания видимости.
    4. Используйте sqsd на своих экземплярах EC2.
  26. У вас есть приложение асинхронной обработки, использующее группу автоматического масштабирования и очередь SQS. Группа автоматического масштабирования масштабируется в соответствии с глубиной очереди заданий. Скорость выполнения заданий снизилась, размер группы Auto Scaling достиг максимального размера, но скорость входящих заданий не увеличилась. Какова возможная проблема?
    1. Некоторые из поступающих новых заданий имеют неправильный формат и не поддаются обработке. (Поскольку другие варианты могут привести к полной остановке обработки задания, единственным разумным вариантом кажется то, что некоторые из последних сообщений должны быть искажены и необработаны)
    2. Таблицы маршрутизации изменились, и ни один из рабочих больше не может обрабатывать события. (Если изменить, ни одно из заданий не будет обработано)
    3. Кто-то изменил политику ролей IAM для экземпляров в рабочей группе и нарушил права доступа к очереди. (Если роль IAM изменится, никакие задания не будут обрабатываться)
    4. Метрика масштабирования работает неправильно. (метрика масштабирования работала нормально, так как автомасштабирование привело к увеличению количества экземпляров)
  27. Компания B предоставляет онлайн-сервис распознавания изображений и использует SQS для разделения компонентов системы для обеспечения масштабируемости. Потребители SQS опрашивают очередь образов как можно чаще, чтобы поддерживать сквозную пропускную способность на максимально возможном уровне. Однако компания B понимает, что опрос в узких циклах сжигает циклы ЦП и увеличивает затраты из-за пустых ответов. Как компания Б может уменьшить количество пустых ответов?
    1. Установите для атрибута тайм-аута видимости очереди изображений значение 20 секунд
    2. Задайте для атрибута ReceiveMessageWaitTimeSeconds очереди обработки изображений значение 20 секунд (длительный опрос. Ссылка)
    3. Задайте для атрибута MessageRetentionPeriod очереди изображений значение 20 секунд
    4. Установите для параметра DelaySeconds сообщения значение 20 секунд

Ссылки

  • Amazon_SQS_Developer_Guide

Так:

Нравится Загрузка...

РАСКРЫТИЕ

Этот пост может содержать партнерские ссылки, то есть когда вы переходите по ссылкам и совершаете покупку, мы получаем комиссию.

Последние сообщения

  • Ледник AWS S3
  • Простой сервис электронной почты AWS — SES
  • Глобальная база данных AWS Aurora и глобальные таблицы DynamoDB
  • AWS RDS Аврора
  • IAM-роль AWS

Categories

CategoriesSelect CategoryAdmin  (1)AWS  (250)   ACM (1)   ALB  (3)   Alexa  (1)   Analytics  (1)   API Gateway  (1)   Aurora  (4)   Auto Scaling (6)   AWS    (1) 1)   Выставление счетов  (2)   Клиентская VPN  (1)   CloudFormation  (5)   CloudFront  (8)   CloudHSM  (2)   CloudSearch  (1)   CloudTrail  (2)   CloudWatch  (5)   Control Tower  (1)   Управление затратами (1)   Конвейер данных (1) DataSync  (1)   Direct Connect  (4)   Direct Connect Gateway  (1)   Directory Services  (1)   DMS  (1)   DynamoDB  (10)   EBS (9))   EC2  (22)      AMI  (1)      Bastion Host  (1)      Jump Server  (1)      Placement Group  (1)   EC2 Image Builder  (1)   ECS  (1)   EFS (3)   Elastic Beanstalk (3)     Elastic Transcoder 4)   Elasticsearch  (1)   ELB  (5)   EMR  (1)   FSx  (3)   Glacier  (3)   Global Accelerator  (2)   Global Infrastructure  (1)   Glue  (1)   GuardDuty (2)   GWLB  (3)    IAM (S) ID 1)   Импорт/экспорт  (2)   Inspector (2)   IoT Core  (1)   IPS (1)   Kinesis  (4)      Kinesis Data Firehose  (2)      Kinesis Data Streams   (2)   KMS (2)   Lambda  (2)   Network Access Analyzer (1) )   Сетевой брандмауэр  (3)   NLB  (3)   OpenSearch   (1)   Opsworks  (4)   Организации  (2)   QuickSight  (1)   RAM  (1)   RDS  (12)   Redshift (5)   Риски и соответствие требованиям  (1)   (5) Маршрут 5 3 3 (16)   SageMaker  (1)   Secrets Manager  (2)   SES  (1)   Shield  (2)   Snowball  (2)   Snowcone  (2)   Snowmobile  (2)   SNS (1)   SQS (5)     (SQS FIFO Queue 2   S )   SSO  (2)  Хранилище  (3)      Хранилище экземпляров  (3)   Шлюз хранилища  (2)   SWF  (1)   Системный менеджер  (1)   Теги (1)   Семейство переносов   (1)   Транзитный шлюз  (1)   Транзитный VPC  (1)   Надежный советник (1)   VPC (10) )      ACL  (1)      NACL  (2)      NAT (2)      Группа безопасности  (2)      Конечные точки VPC  (2)      Пиринг VPC  (2)      VPN  (4)   WAF  (3) (WorkSpace Best (1)    X-Ray )Шпаргалка  (9)Надежность данных  (1)DDoS  (3)Аварийное восстановление  (1)Шифрование  (1)GCP  (83)   Access Context Manager  (2)   App Engine  (4)   Реестр артефактов  (2)   BigQuery  (4)   Служба передачи данных BigQuery (1) Bigtable  (3)   Пример использования  (1)   Cloud Armor  (2)   Cloud Billing  (1)   Cloud Build  (1)   Cloud CDN  (2)   Cloud Composer (1)   Cloud Data Loss Prevention  (2)   Cloud Debugger  (1)   Cloud DNS (2) )   Облачные функции  (2)   Cloud Identity  (1)   Cloud Interconnect  (4)   Балансировка нагрузки в облаке  (3)   Журналирование в облаке  (2)   Облачный мониторинг  (2)   Cloud NAT   (1)   Cloud Peering  (1)   Cloud Profiler  (1)   Cloud Router ( 2)   Облачные исходные репозитории  (1)   Cloud Spanner  (2)   Cloud SQL  (3)   Cloud Trace  (1)   Cloud VPN  (4)   Compute Engine   (6)   Container Registry  (2)   Dataflow  (3)   Datalab  (1)   Dataprep (1) Dataproc  (3)   Direct Peering  (2)   Отчеты об ошибках  (1)   Firestore  (2)   Google Cloud Storage  (5)   Google Kubernetes Engine  (5)   gsutil  (1)   IAM (1)   Identity-Aware Proxy  (2)   Memorystore  (1)   Группы сетевых конечных точек  (1)   Pub/Sub  (1)   Resource Manager  (1)   Security Command Center  (2)   Storage Transfer Service (1)   Transfer Appliance (1)   Virtual Private Cloud (5) )IBM Bluemix  (1)Kubernetes  (7)   CKA  (1)   CKAD  (1)   CKS  (1)Схема обучения  (26)Мониторинг  (3)Обзор  (1)Root  (1)Безопасность  (1)Solr  (5)   CopyField (1) )Сортировка  (1)SRE  (1)Сводка  (1)Поддержка  (2)Terraform  (2)Устранение неполадок  (2)Технический документ  (11) сообщить об этом объявлении

Теги

ACL Антишаблоны Ассоциированный Автоматическое масштабирование АМС Лучшие практики Тематическое исследование CCNF Сертификация Шпаргалка CloudFront OAI CloudWatch ДАКС Прямое соединение ЭБС ЕС2 Эластичный бобовый стебель ELB Шифрование Экзамен Ледник Я Магазин экземпляров КМС Мониторинг Шлюз NAT Сеть Идентификатор доступа к происхождению Практический пример PCA Практические вопросы Профессиональный S3 Примеры вопросов Вторичные индексы Безопасность Снимок Солр Архитектор решений Ключ сортировки Специальность Варианты хранения ВКК Пиринг VPC VPN Технический документ

сообщить об этом объявлении

AWS 2 Simple Queue Service (SQS) :: Red Hat Integration

Компонент AWS 2 Simple Queue Service (SQS) поддерживает 43 параметра, которые перечислены ниже.

...
Имя Описание По умолчанию Тип

amazonAWSHost (общий)

Имя хоста облака Amazon AWS.

amazonaws.com

Строка

amazonSQSClient (общий)

Autowired Для использования AmazonSQS в качестве клиента

SqsClient

autoCreateQueue (общий)

Настройка автосоздания очереди

ложный

логический

конфигурация (общий)

Конфигурация AWS SQS по умолчанию

Конфигурация Sqs2

overrideEndpoint (общий)

Установить необходимость переопределения конечной точки. Этот параметр необходимо использовать в сочетании с параметром uriEndpointOverride

ложный

логический

протокол (общий)

Базовый протокол, используемый для связи с SQS

https

Строка

прокси-протокол (общий)

Для определения протокола прокси при создании экземпляра клиента SQS. Есть 2 перечисления, и значение может быть одним из: HTTP, HTTPS

HTTPS

Протокол

queueOwnerAWSAccountId (общий)

Укажите идентификатор учетной записи aws владельца очереди, когда вам нужно подключить очередь с другим владельцем учетной записи.

Строка

регион (общий)

Регион, в котором должен работать клиент SQS. При использовании этого параметра конфигурация будет ожидать имя региона в нижнем регистре (например, ap-east-1). Вам нужно будет использовать имя Region.EU_WEST_1.id()

Строка

trustAllCertificates (общий)

Если мы хотим доверять всем сертификатам в случае переопределения конечной точки

ложный

логический

uriEndpointOverride (общий)

Установите конечную точку основного URI. Этот параметр необходимо использовать в сочетании с параметром overrideEndpoint 9.0008

Строка

useDefaultCredentialsProvider (общий)

Укажите, должен ли клиент SQS ожидать загрузки учетных данных в инфраструктурный экземпляр AWS или передачи статических учетных данных.

ложный

логический

attributeNames (потребитель)

Список имен атрибутов для получения при использовании. Несколько имен могут быть разделены запятой.

Строка

bridgeErrorHandler (потребитель)

Позволяет связать потребителя с обработчиком ошибок маршрутизации Camel, что означает, что любые исключения, возникшие, когда потребитель пытается получить входящие сообщения или тому подобное, теперь будут обрабатываться как сообщение и обрабатываться обработчиком ошибок маршрутизации. По умолчанию потребитель будет использовать org.apache.camel.spi.ExceptionHandler для обработки исключений, которые будут регистрироваться на уровне WARN или ERROR и игнорироваться.

ложный

логический

concurrentConsumers (потребитель)

Позволяет использовать несколько потоков для опроса очереди sqs для увеличения пропускной способности

1

внутр.

defaultVisibilityTimeout (потребитель)

Время ожидания видимости по умолчанию (в секундах)

Целое число

deleteAfterRead (потребитель)

Удалить сообщение из SQS после его прочтения

правда

логический

deleteIfFiltered (потребитель)

Следует ли отправлять DeleteMessage в очередь SQS, если свойство обмена имеет значение true для ключа Sqs2Constants#SQS_DELETE_FILTERED (CamelAwsSqsDeleteFiltered).

правда

логический

extendMessageVisibility (потребитель)

Если этот параметр включен, запланированная фоновая задача будет продолжать расширять видимость сообщений в SQS. Это нужно, если обработка сообщения занимает много времени. Если установлено значение true, необходимо установить значение defaultVisibilityTimeout. См. подробности в документации Amazon.

ложный

логическое значение

kmsDataKeyReusePeriodSeconds (потребитель)

Время в секундах, в течение которого Amazon SQS может повторно использовать ключ данных для шифрования или расшифровки сообщений перед повторным вызовом AWS KMS. Целое число, представляющее секунды, от 60 секунд (1 минута) до 86 400 секунд (24 часа). По умолчанию: 300 (5 минут).

Целое число

kmsMasterKeyId (потребитель)

Идентификатор главного ключа клиента (CMK), управляемого AWS, для Amazon SQS или пользовательского CMK.

Строка

messageAttributeNames (потребитель)

Список имен атрибутов сообщения для получения при использовании. Несколько имен могут быть разделены запятой.

Строка

serverSideEncryptionEnabled (потребитель)

Определите, включено ли шифрование на стороне сервера или нет в очереди

ложный

логический

visibilityTimeout (потребитель)

Продолжительность (в секундах), в течение которой полученные сообщения скрыты от последующих запросов на получение после получения запросом ReceiveMessage, задается в com.amazonaws.services.sqs.model.SetQueueAttributesRequest. Это имеет смысл только в том случае, если оно отличается от defaultVisibilityTimeout. Он постоянно изменяет атрибут тайм-аута видимости очереди.

Целое число

waitTimeSeconds (потребитель)

Продолжительность в секундах (от 0 до 20), в течение которой вызов действия ReceiveMessage будет ждать, пока сообщение не окажется в очереди для включения в ответ.

Целое число

Сепаратор партий (производитель)

Установить разделитель при передаче строки для операции пакетной отправки сообщения

,

Строка

delaySeconds (производитель)

Задержка отправки сообщений на несколько секунд.

Целое число

lazyStartProducer (производитель)

Должен ли производитель запускаться лениво (по первому сообщению). При ленивом запуске вы можете использовать это, чтобы разрешить запуск CamelContext и маршрутов в ситуациях, когда в противном случае производитель может выйти из строя во время запуска и вызвать сбой запуска маршрута. Откладывая этот запуск как ленивый, сбой запуска можно обработать во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что при обработке первого сообщения создание и запуск производителя может занять некоторое время и увеличить общее время обработки.

ложный

логический

messageDeduplicationIdStrategy (производитель)

Только для очередей FIFO. Стратегия установки messageDeduplicationId для сообщения. Может быть одним из следующих вариантов: useExchangeId, useContentBasedDeduplication. Для параметра useContentBasedDeduplication для сообщения не будет задан идентификатор messageDeduplicationId. Есть 2 перечисления, и значение может быть одним из: useExchangeId, useContentBasedDeduplication

использованиеExchangeId

Строка

messageGroupIdStrategy (производитель)

Только для очередей FIFO. Стратегия установки messageGroupId в сообщении. Может быть одним из следующих параметров: useConstant, useExchangeId, usePropertyValue. Для параметра usePropertyValue будет использоваться значение свойства CamelAwsMessageGroupId. Есть 3 перечисления, и значение может быть одним из: useConstant, useExchangeId, usePropertyValue

Строка

операция (производитель)

Операция, если пользователь не хочет отправлять только сообщение. Существует 4 перечисления, и значение может быть одним из: sendBatchMessage, deleteMessage, listQueues, purgeQueue

Sqs2Операции

autowiredEnabled (расширенный)

Включено ли автоматическое подключение. Это используется для параметров автоматического подключения (параметр должен быть помечен как автоматический) путем поиска в реестре, чтобы найти единственный экземпляр соответствующего типа, который затем настраивается для компонента. Это можно использовать для автоматической настройки источников данных JDBC, фабрик соединений JMS, клиентов AWS и т. д.

правда

логический

delayQueue (расширенный)

Определите, хотите ли вы применить параметр delaySeconds к очереди или к отдельным сообщениям

ложный

логический

URL-адрес очереди (расширенный)

Для явного определения queueUrl. Все остальные параметры, влияющие на queueUrl, игнорируются. Этот параметр предназначен для подключения к фиктивной реализации SQS в целях тестирования.

Строка

proxyHost (прокси)

Для определения прокси-узла при создании экземпляра клиента SQS

Строка

proxyPort (прокси)

Для определения порта прокси при создании экземпляра клиента SQS

Целое число

максимальный размер сообщения (очередь)

Максимальный размер сообщения (в байтах), который может содержать сообщение SQS для этой очереди.

Целое число

messageRetentionPeriod (очередь)

Период messageRetentionPeriod (в секундах), в течение которого SQS будет сохранять сообщение для этой очереди.

Целое число

политика (очередь)

Политика для этой очереди. По умолчанию он может быть загружен из пути к классам, но вы можете использовать префикс classpath:, file: или http: для загрузки ресурса из разных систем.

Строка

ReceiveMessageWaitTimeSeconds (очередь)

Если вы не укажете WaitTimeSeconds в запросе, атрибут очереди ReceiveMessageWaitTimeSeconds используется для определения времени ожидания.

Целое число

redrivePolicy (очередь)

Укажите политику, которая отправляет сообщение в очередь недоставленных сообщений. См. подробности в документации Amazon.

Строка

ключ доступа (защита)

Ключ доступа к Amazon AWS

Строка

секретный ключ (безопасность)

Секретный ключ Amazon AWS

Строка

Конечная точка AWS 2 Simple Queue Service (SQS) настроена с использованием синтаксиса URI:

 aws2-sqs:queueNameOrArn 

со следующими параметрами пути и запроса:

Параметры пути (1 параметр):

4 Имя Описание По умолчанию Тип

имя_очередиOrArn

Обязательно Имя очереди или ARN

Строка

Параметры запроса (61 параметр):

.
Имя Описание По умолчанию Тип

amazonAWSHost (общий)

Имя хоста облака Amazon AWS.

amazonaws.com

Строка

amazonSQSClient (общий)

Autowired Для использования AmazonSQS в качестве клиента

SqsClient

autoCreateQueue (общий)

Настройка автосоздания очереди

ложный

логический

headerFilterStrategy (общий)

Чтобы использовать пользовательскую стратегию HeaderFilterStrategy для сопоставления заголовков с Camel и обратно.

HeaderFilterStrategy

overrideEndpoint (общий)

Установить необходимость переопределения конечной точки. Этот параметр необходимо использовать в сочетании с параметром uriEndpointOverride 9.0008

ложный

логический

протокол (общий)

Базовый протокол, используемый для связи с SQS

https

Строка

прокси-протокол (общий)

Для определения протокола прокси при создании экземпляра клиента SQS. Есть 2 перечисления, и значение может быть одним из: HTTP, HTTPS

HTTPS

Протокол

queueOwnerAWSAccountId (общий)

Укажите идентификатор учетной записи aws владельца очереди, когда вам нужно подключить очередь с другим владельцем учетной записи.

Строка

регион (общий)

Регион, в котором должен работать клиент SQS. При использовании этого параметра конфигурация будет ожидать имя региона в нижнем регистре (например, ap-east-1). Вам нужно будет использовать имя Region.EU_WEST_1.id()

Строка

trustAllCertificates (общий)

Если мы хотим доверять всем сертификатам в случае переопределения конечной точки

ложный

логический

uriEndpointOverride (общий)

Установите конечную точку основного URI. Этот параметр необходимо использовать в сочетании с параметром overrideEndpoint 9.0008

Строка

useDefaultCredentialsProvider (общий)

Укажите, должен ли клиент SQS ожидать загрузки учетных данных в инфраструктурный экземпляр AWS или передачи статических учетных данных.

ложный

логический

attributeNames (потребитель)

Список имен атрибутов для получения при использовании. Несколько имен могут быть разделены запятой.

Строка

bridgeErrorHandler (потребитель)

Позволяет связать потребителя с обработчиком ошибок маршрутизации Camel, что означает, что любые исключения, возникшие, когда потребитель пытается получить входящие сообщения или тому подобное, теперь будут обрабатываться как сообщение и обрабатываться обработчиком ошибок маршрутизации. По умолчанию потребитель будет использовать org.apache.camel.spi.ExceptionHandler для обработки исключений, которые будут регистрироваться на уровне WARN или ERROR и игнорироваться.

ложный

логический

concurrentConsumers (потребитель)

Позволяет использовать несколько потоков для опроса очереди sqs для увеличения пропускной способности

1

внутр.

defaultVisibilityTimeout (потребитель)

Время ожидания видимости по умолчанию (в секундах)

Целое число

deleteAfterRead (потребитель)

Удалить сообщение из SQS после его прочтения

правда

логический

deleteIfFiltered (потребитель)

Следует ли отправлять DeleteMessage в очередь SQS, если свойство обмена имеет значение true для ключа Sqs2Constants#SQS_DELETE_FILTERED (CamelAwsSqsDeleteFiltered).

правда

логический

extendMessageVisibility (потребитель)

Если этот параметр включен, запланированная фоновая задача будет продолжать расширять видимость сообщений в SQS. Это нужно, если обработка сообщения занимает много времени. Если установлено значение true, необходимо установить значение defaultVisibilityTimeout. См. подробности в документации Amazon.

ложный

логическое значение

kmsDataKeyReusePeriodSeconds (потребитель)

Время в секундах, в течение которого Amazon SQS может повторно использовать ключ данных для шифрования или расшифровки сообщений перед повторным вызовом AWS KMS. Целое число, представляющее секунды, от 60 секунд (1 минута) до 86 400 секунд (24 часа). По умолчанию: 300 (5 минут).

Целое число

kmsMasterKeyId (потребитель)

Идентификатор главного ключа клиента (CMK), управляемого AWS, для Amazon SQS или пользовательского CMK.

Строка

maxMessagesPerPoll (потребитель)

Получает максимальное количество сообщений в качестве предела для опроса при каждом опросе. По умолчанию неограничен, но используйте 0 или отрицательное число, чтобы отключить его как неограниченный.

внутр.

messageAttributeNames (потребитель)

Список имен атрибутов сообщения для получения при использовании. Несколько имен могут быть разделены запятой.

Строка

sendEmptyMessageWhenIdle (потребитель)

Если потребитель опроса не опрашивал какие-либо файлы, вы можете включить этот параметр, чтобы вместо этого отправлять пустое сообщение (без тела).

ложный

логическое значение

serverSideEncryptionEnabled (потребитель)

Определите, включено ли шифрование на стороне сервера или нет в очереди

ложный

логический

visibilityTimeout (потребитель)

Продолжительность (в секундах), в течение которой полученные сообщения скрыты от последующих запросов на получение после получения запросом ReceiveMessage, задается в com. amazonaws.services.sqs.model.SetQueueAttributesRequest. Это имеет смысл только в том случае, если оно отличается от defaultVisibilityTimeout. Он постоянно изменяет атрибут тайм-аута видимости очереди.

Целое число

waitTimeSeconds (потребитель)

Продолжительность в секундах (от 0 до 20), в течение которой вызов действия ReceiveMessage будет ждать, пока сообщение не окажется в очереди для включения в ответ.

Целое число

обработчик исключений (потребитель)

Чтобы позволить потребителю использовать собственный обработчик исключений. Обратите внимание, что если опция bridgeErrorHandler включена, то эта опция не используется. По умолчанию потребитель будет иметь дело с исключениями, которые будут зарегистрированы на уровне ПРЕДУПРЕЖДЕНИЯ или ОШИБКИ и проигнорированы.

Обработчик исключений

exchangePattern (потребитель)

Задает шаблон обмена, когда потребитель создает обмен. Есть 3 перечисления и значение может быть одним из: InOnly, InOut, InOptionalOut

ExchangePattern

опросСтратегия (потребитель)

Подключаемый org.apache.camel.PollingConsumerPollingStrategy, позволяющий предоставить собственную реализацию для управления обработкой ошибок, обычно возникающих во время операции опроса до того, как Exchange был создан и маршрутизирован в Camel.

PollingConsumerPollStrategy

Сепаратор партий (производитель)

Установка разделителя при передаче строки для отправки пакетного сообщения

,

Строка

delaySeconds (производитель)

Задержка отправки сообщений на несколько секунд.

Целое число

lazyStartProducer (производитель)

Должен ли производитель запускаться лениво (по первому сообщению). При ленивом запуске вы можете использовать это, чтобы разрешить запуск CamelContext и маршрутов в ситуациях, когда в противном случае производитель может выйти из строя во время запуска и вызвать сбой запуска маршрута. Откладывая этот запуск как ленивый, сбой запуска можно обработать во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что при обработке первого сообщения создание и запуск производителя может занять некоторое время и увеличить общее время обработки.

ложный

логический

messageDeduplicationIdStrategy (производитель)

Только для очередей FIFO. Стратегия установки messageDeduplicationId для сообщения. Может быть одним из следующих вариантов: useExchangeId, useContentBasedDeduplication. Для параметра useContentBasedDeduplication для сообщения не будет задан идентификатор messageDeduplicationId. Есть 2 перечисления, и значение может быть одним из: useExchangeId, useContentBasedDeduplication

использованиеExchangeId

Строка

messageGroupIdStrategy (производитель)

Только для очередей FIFO. Стратегия установки messageGroupId в сообщении. Может быть одним из следующих параметров: useConstant, useExchangeId, usePropertyValue. Для параметра usePropertyValue будет использоваться значение свойства CamelAwsMessageGroupId. Есть 3 перечисления, и значение может быть одним из: useConstant, useExchangeId, usePropertyValue

Строка

операция (производитель)

Операция, если пользователь не хочет отправлять только сообщение. Существует 4 перечисления, и значение может быть одним из: sendBatchMessage, deleteMessage, listQueues, purgeQueue

Sqs2Операции

delayQueue (расширенный)

Укажите, хотите ли вы применить параметр delaySeconds к очереди или к отдельным сообщениям

ложный

логический

URL-адрес очереди (расширенный)

Для явного определения queueUrl. Все остальные параметры, влияющие на queueUrl, игнорируются. Этот параметр предназначен для подключения к фиктивной реализации SQS в целях тестирования.

Строка

proxyHost (прокси)

Для определения прокси-узла при создании экземпляра клиента SQS

Строка

proxyPort (прокси)

Для определения порта прокси при создании экземпляра клиента SQS

Целое число

maxMessageSize (очередь)

Максимальный размер сообщения (в байтах), который может содержать сообщение SQS для этой очереди.

Целое число

messageRetentionPeriod (очередь)

Период messageRetentionPeriod (в секундах), в течение которого SQS будет сохранять сообщение для этой очереди.

Целое число

политика (очередь)

Политика для этой очереди. По умолчанию он может быть загружен из пути к классам, но вы можете использовать префикс classpath:, file: или http: для загрузки ресурса из разных систем.

Строка

ReceiveMessageWaitTimeSeconds (очередь)

Если вы не укажете WaitTimeSeconds в запросе, атрибут очереди ReceiveMessageWaitTimeSeconds используется для определения времени ожидания.

Целое число

redrivePolicy (очередь)

Укажите политику, которая отправляет сообщение в очередь недоставленных сообщений. См. подробности в документации Amazon.

Строка

backoffErrorThreshold (планировщик)

Количество последующих опросов об ошибках (неудачных из-за какой-то ошибки), которые должны произойти, прежде чем сработает backoffMultipler.

внутр.

backoffIdleThreshold (планировщик)

Количество последующих опросов бездействия, которые должны произойти, прежде чем сработает backoffMultipler.

внутр.

Множитель отсрочки (планировщик)

Чтобы позволить запланированному потребителю опроса отступить, если было несколько последовательных простоев/ошибок подряд. Множитель — это количество опросов, которые будут пропущены, прежде чем следующая фактическая попытка повторится. Если используется этот параметр, необходимо также настроить backoffIdleThreshold и/или backoffErrorThreshold.

внутр.

задержка (планировщик)

Миллисекунды до следующего опроса.

500

длинный

жадный (планировщик)

Если включен жадный режим, то ScheduledPollConsumer немедленно запустится снова, если при предыдущем запуске было опрошено 1 или более сообщений.

ложный

логический

InitialDelay (планировщик)

Миллисекунды до начала первого опроса.

1000

длинный

RepeatCount (планировщик)

Задает максимальное количество пожаров. Поэтому, если вы установите значение 1, планировщик сработает только один раз. Если вы установите его на 5, он сработает только пять раз. Нулевое или отрицательное значение означает огонь навсегда.

0

длинный

runLoggingLevel (планировщик)

При опросе потребитель записывает строку журнала start/complete. Эта опция позволяет вам настроить уровень ведения журнала для этого. Существует 6 перечислений, и значение может быть одним из: TRACE, DEBUG, INFO, WARN, ERROR, OFF

ТРЕЙС

Уровень ведения журнала

запланированныйExecutorService (заказчик)

Позволяет настроить пользовательский/общий пул потоков для использования потребителем. По умолчанию каждый потребитель имеет свой собственный однопоточный пул потоков.

ЗапланированныйExecutorService

планировщик (планировщик)

Для использования планировщика cron из компонента camel-spring или camel-quartz. Используйте пружину значения или кварц для встроенного планировщика

нет

Объект

свойства планировщика (планировщик)

Для настройки дополнительных свойств при использовании пользовательского планировщика или любого планировщика на основе Quartz, Spring.

Карта

startScheduler (планировщик)

Должен ли автоматически запускаться планировщик.

верно

логический

timeUnit (планировщик)

Единица времени для параметров initialDelay и delay. Существует 7 перечислений, и значение может быть одним из: НАНОСЕКУНДЫ, МИКРОСЕКУНДЫ, МИЛЛИСЕКУНДЫ, СЕКУНДЫ, МИНУТЫ, ЧАСЫ, ДНИ

МИЛЛИСЕКУНДЫ

TimeUnit

useFixedDelay (планировщик)

Управляет использованием фиксированной задержки или фиксированной скорости. Дополнительные сведения см. в разделе ScheduledExecutorService в JDK.

правда

логический

ключ доступа (защита)

Ключ доступа к Amazon AWS

Строка

секретный ключ (безопасность)

Секретный ключ Amazon AWS

Строка

Требуемые компоненты SQS

Вы должны предоставить amazonSQSClient в Реестр или ваш accessKey и secretKey для доступа SQS Amazon.

Уроки, извлеченные из объединения SQS и Lambda в проекте данных

Вкратце, Amazon SQS — это облегченная, полностью управляемая служба очередей сообщений, которая позволяет разделить и масштабировать микросервисы, распределенные системы и бессерверные приложения. SQS позволяет легко отправлять, хранить и получать сообщения между программными компонентами без потери сообщений.

AWS Lambda — это полностью управляемый, автоматически масштабируемый сервис, который позволяет запускать код на нескольких разных языках в бессерверной манере без необходимости предоставления каких-либо серверов. Вы можете настроить функцию Lambda для выполнения в ответ на различные события или организовать вызовы. Ваш код работает параллельно и обрабатывает каждый вызов отдельно, масштабируясь с размером рабочей нагрузки.

При настройке очереди SQS в качестве источника событий для Lambda функции Lambda автоматически запускаются при поступлении сообщений в очередь SQS. Служба Lambda автоматически масштабируется вверх и вниз в зависимости от количества находящихся в очереди сообщений. Таким образом, опрос, чтение и удаление сообщений из очереди будут автоматически обрабатываться встроенными функциями. Успешно обработанные сообщения будут удалены, а ошибочные будут возвращены в очередь или перенаправлены в DLQ без необходимости явно настраивать эти шаги в коде функции Lambda.

В недавнем проекте нам нужно было обрабатывать данные, которые будут поступать ежедневно, а также большими пакетами с загрузкой исторических данных через один и тот же конвейер обработки данных. Чтобы справляться с меняющимися нагрузками данных, SQS отделяет исходную систему от обработки и балансирует нагрузку для обоих вариантов использования. Мы использовали SQS для постановки в очередь метаданных новых файлов данных и функцию Lambda для обработки сообщений и передачи метаданных на следующие этапы конвейера. При тестировании нашего решения с быстрой отправкой тысяч сообщений в очередь мы заметили, что многие сообщения попадали в очередь недоставленных сообщений, даже если они не были ошибочными.

По метрикам CloudWatch мы не обнаружили ошибок выполнения за указанный период, но вместо этого был пик в метрике регулирования Lambda. Мы настроили DLQ для перехвата ошибочных сообщений, но в итоге получили полностью действительные и необработанные сообщения в DLQ. Как это произошло? Чтобы понять это, давайте углубимся в то, как запускаются и масштабируются функции Lambda, когда SQS настроен в качестве источника событий.

Давайте сначала кратко представим параметры SQS и Lambda, которые имеют отношение к этой проблеме.

SQS

ReceiveMessageWaitTimeSeconds : Время, в течение которого средство опроса ожидает новых сообщений, прежде чем вернуть ответ. Ваши сообщения могут поступать в очередь SQS неравномерно, иногда пачками, а иногда сообщения могут вообще не поступать. Значение по умолчанию равно 0, что соответствует постоянному опросу сообщений. Если очередь пуста, а ваше решение допускает некоторую задержку, может быть полезно не опрашивать очередь все время и возвращать пустые ответы. Вместо того, чтобы постоянно запрашивать сообщения, вы можете указать время ожидания от 1 до 20 секунд.

VisibilityTimeout: Продолжительность времени, в течение которого сообщение будет невидимым для потребителей после того, как оно будет прочитано из очереди. Когда средство опроса считывает сообщение из очереди SQS, это сообщение остается в очереди, но становится невидимым на период VisibilityTimeout . В течение этого времени прочитанное сообщение будет недоступно для любого другого модуля опроса, пытающегося прочитать то же сообщение, и дает начальному компоненту время на обработку и удаление сообщения из очереди.

maxReceiveCount: Определяет, сколько раз сообщение может быть доставлено обратно в исходную очередь, прежде чем оно будет перемещено в DLQ. Если обработка сообщения прошла успешно, потребитель удалит его из очереди. Когда при обработке сообщения возникает ошибка и его нельзя удалить из очереди, сообщение снова становится видимым в очереди с увеличенным ReceiveCount. Когда ReceiveCount для сообщения превышает maxReceiveCount для очереди, сообщение перемещается в очередь недоставленных сообщений.

Лямбда

Зарезервированный предел параллелизма: Количество выполнений функции Лямбда, которые могут выполняться одновременно. Для учетной записи существует ограничение на количество одновременно выполняемых функций Lambda (по умолчанию 1000), и оно распределяется между всеми вашими функциями Lambda. Зарезервировав часть его для одной функции, другие функции, работающие в то же время, не могут помешать масштабированию вашей функции.

Размер партии : Максимальное количество сообщений, которые Lambda извлекает из очереди SQS в одном пакете. Размер пакета связан с сопоставлением источника событий Lambda, которое определяет, что запускает функции Lambda. В этом случае они запускаются из SQS.

На рисунке 1 ниже показано, как Lambda фактически масштабируется, когда сообщения поступают в очередь SQS пакетами. Lambda использует длительный опрос для опроса сообщений в очереди, что означает, что он не опрашивает очередь все время, а с интервалом от 1 до 20 секунд, в зависимости от того, что вы настроили в качестве очереди 9.0038 ReceiveMessageWaitTimeSeconds . Внутренний опросчик службы Lambda считывает сообщения в виде пакетов из очереди и вызывает функцию Lambda синхронно с событием, содержащим пакет сообщений. Количество сообщений в пакете определяется параметром BatchSize , настроенным в сопоставлении источника событий Lambda.

Когда сообщения начинают поступать в очередь, Lambda сначала читает до 5 пакетов и вызывает функцию для каждого. Если сообщения все еще доступны, количество процессов, считывающих пакеты, увеличивается еще на 60 раз в минуту (рис. 2), пока не достигнет 1) зарезервированное ограничение параллелизма , настроенное для рассматриваемой функции Lambda, или 2) ограничение учетной записи на общее количество одновременных запусков Lambda (по умолчанию 1000), в зависимости от того, что меньше ( N  на рисунке).

Установив зарезервированный предел параллелизма для вашей Lambda, вы гарантируете, что она получит часть ресурсов Lambda учетной записи в любое время, но в то же время вы также ограничиваете свою функцию от масштабирования сверх этого ограничения, даже если будут ресурсы Lambda, доступные для использования вашей учетной записью. Когда этот предел достигнут, а в очереди все еще есть доступные сообщения, можно предположить, что эти сообщения останутся видимыми в очереди, ожидая, пока не появится свободная мощность Lambda для обработки этих сообщений. Вместо этого внутренний опросчик по-прежнему пытается вызывать новые функции Lambda для всех новых сообщений и, следовательно, приводит к регулированию вызовов Lambda (рис. 2). Почему тогда некоторые сообщения попадают в DLQ?

Давайте посмотрим, как проходит рабочий процесс для отдельного пакета сообщений в случае успеха или неудачи (рис. 3). Сначала внутренний опросчик Lambda считывает пакет сообщений из очереди, и эти сообщения остаются в очереди, но становятся невидимыми на время настроенного VisibilityTimeout. Затем он вызывает функцию синхронно, что означает, что он будет ждать ответа, который указывает на успешную обработку или ошибку, которая может быть вызвана, например. ошибка функционального кода, тайм-аут функции или дросселирование. В случае успешной обработки пакет сообщений удаляется из очереди. Однако в случае сбоя сообщение снова становится видимым.

Очередь SQS не осведомлена о том, что происходит за пределами сопоставления источника событий, если вызовы завершаются сбоем или регулируются. Он сохраняет сообщения в очереди невидимыми до тех пор, пока они не будут удалены или не станут видимыми по истечении времени VisibilityTimeout . Фактически это означает, что отрегулированные сообщения обрабатываются как любые другие ошибочные сообщения, поэтому их ReceiveCount увеличивается каждый раз, когда они становятся видимыми в очереди. При большом количестве входящих сообщений некоторые из сообщений могут быть отрегулированы, повторены, снова отрегулированы и повторены, пока не будет достигнуто ограничение в maxReceiveCount , а затем перемещен в DLQ.

Автоматическое масштабирование и параллелизм, достигаемые с помощью SQS и Lambda, звучат многообещающе, но, к сожалению, как и у всех сервисов AWS, у этой комбинации также есть свои ограничения. Регулирования допустимых сообщений можно избежать, если учесть следующие соображения:

Будьте осторожны при настройке зарезервированного параллелизма для вашей функции Lambda: чем меньше параллелизм, тем выше вероятность того, что сообщения будут регулироваться. AWS предлагает, чтобы зарезервированный параллелизм для лямбда-функции был равен 5 или больше.

Установите достаточно большое значение maxReceiveCount в свойствах вашей очереди SQS, чтобы отрегулированные сообщения в конечном итоге обрабатывались после пакета сообщений. AWS предлагает установить значение 5 или выше.

Увеличивая сообщение VisibilityTimeout исходной очереди, вы можете дать вашей Lambda больше времени для повторной отправки сообщений в случае пакетов сообщений. AWS предлагает установить это значение как минимум в 6 раз больше времени ожидания, которое вы настраиваете для своей функции Lambda.

Конечно, настройка этих параметров является актом балансировки с тем, что лучше всего соответствует цели вашего приложения.

Если вы не настроите DLQ, вы потеряете все ошибочные (или действительные и отрегулированные) сообщения. Если вы знакомы с этой темой, это кажется очевидным, но об этом стоит сказать, так как это очень важно. Что сейчас сбивает с толку в этой комбинации, так это то, что вы можете настроить очередь недоставленных сообщений как для SQS, так и для Lambda. В документации AWS указано:

« Убедитесь, что вы настраиваете очередь недоставленных сообщений в исходной очереди, а не в функции Lambda. Очередь недоставленных сообщений, которую вы настраиваете для функции, используется для очереди асинхронных вызовов функции, а не для очередей источников событий.

Чтобы понять это, нужно углубиться в разницу между синхронным и асинхронным вызовом лямбда-функций.

Когда вы вызываете функцию синхронно, Lambda запускает функцию и ожидает от нее ответа. Код функции возвращает ответ, и Lambda возвращает вам этот ответ с некоторыми дополнительными данными, включая, например. версия функции. Однако в случае асинхронного вызова Lambda отправляет событие вызова во внутреннюю очередь. Если событие успешно отправлено во внутреннюю очередь, Lambda возвращает ответ об успехе, не дожидаясь ответа от выполнения функции, в отличие от синхронного вызова. Lambda управляет внутренней очередью и пытается автоматически повторить неудачные события с помощью собственной логики. Если выполнение функции завершается ошибкой и после повторных попыток, событие отправляется в DLQ, сконфигурированный для лямбда-функции. При сопоставлении источника событий с SQS Lambda вызывается синхронно, поэтому нет повторных попыток, как при асинхронном вызове, а DLQ в Lambda бесполезен.

Недавно AWS запустил Lambda Destinations, что позволяет направлять результаты асинхронной функции в целевой ресурс, которым может быть SQS, SNS, другая функция Lambda или EventBridge. С помощью DLQ вы можете обрабатывать асинхронные сбои и перехватывать события сбоя, но с помощью Destinations вы можете получить более подробную информацию о выполнении функции как в случае успеха, так и в случае сбоя, например трассировки стека исключений кода. Хотя пункты назначения и DLQ можно использовать вместе и одновременно, AWS предлагает рассматривать пункты назначения как более предпочтительное решение.

Все описанные проблемы заявлены и вычитаются из документации AWS, но все же не совсем очевидны. Тщательно настроив параметры нашей очереди SQS, в основном за счет увеличения maxReceiveCount и VisibilityTimeOut, , мы смогли преодолеть проблемы с регулированием функций Lambda. Настроив DLQ на исходную очередь SQS, а не на Lambda, мы смогли перехватывать ошибочные или отрегулированные сообщения. Хотя добавление DLQ к исходному SQS само по себе ничего не решает, вам также необходимо каким-то образом обрабатывать ошибочные сообщения. Мы также настроили функцию Lambda для DLQ, чтобы записывать ошибочные сообщения в DynamoDB. Таким образом, у нас есть журнал необработанных сообщений в DynamoDB, и сообщения могут быть повторно отправлены или исследованы оттуда.

Конечно, всегда есть несколько вариантов архитектуры для решения подобных проблем в среде AWS.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *