Аутентификация и соединение с БД по HTTP API, совместимому с Amazon SQS
Эндпоинт
Эндпоинт подключения отображается в консоли управления
Предварительные требования
Для аутентификации требуется:
- Создать сервисный аккаунт.
- Назначить сервисному аккаунту роли:
- Для чтения из потока данных:
ydb.viewer. - Для записи в поток данных:
ydb.editor. - Для создания и удаления очереди:
ydb.editor.
- Для чтения из потока данных:
- Создать статический ключ доступа для сервисного аккаунта. Надежно сохраните идентификатор и секретный ключ.
Аутентификация
В HTTP API, совместимом с Amazon SQS, аутентификация выполняется через подпись запросов Signature Version 4
Для этого необходимы:
<access_key_id>— идентификатор статического ключа доступа.<secret_access_key>— секретная часть статического ключа доступа.
Настройте AWS CLI:
-
Запустите интерактивную настройку профиля:
aws configure -
Укажите полученный ранее идентификатор ключа сервисного аккаунта:
AWS Access Key ID [****************ver_]: <идентификатор_ключа_сервисного_аккаунта> -
Укажите полученный ранее секретный ключ сервисного аккаунта:
AWS Secret Access Key [****************w5lb]: <секретный_ключ_сервисного_аккаунта> -
Укажите имя региона по умолчанию
kz1:Default region name [kz1]: kz1 -
Укажите формат выходных данных по умолчанию
json:Default output format [None]: json -
Чтобы посмотреть текущие настройки профиля, выполните команду:
aws configure listРезультат:
Name Value Type Location ---- ----- ---- -------- profile <not set> None None access_key ****************aBc1 shared-credentials-file secret_key ****************DeF2 shared-credentials-file region kz1 config-file ~/.aws/config
Пример создания очереди
В примере используются:
<sqs_api_endpoint>— эндпоинт.<stream_name>— имя создаваемого потока данных.
-
Установите AWS CLI
, если он еще не установлен. -
Создайте очередь:
aws --endpoint "<sqs_api_endpoint>" sqs create-queue \ --queue-name "<stream_name>"Будет создан поток данных с указанным именем и разделяемым (общим) читателем
ydb-sqs-consumer.Для создания FIFO-очереди укажите атрибут
FifoQueue=true. Имя такой очереди рекомендуется заканчивать на.fifo:aws --endpoint "<sqs_api_endpoint>" sqs create-queue \ --queue-name "<stream_name>.fifo" \ --attributes FifoQueue=true
Пример записи и чтения сообщения
В примере используются:
<sqs_api_endpoint>— эндпоинт.<stream_name>— имя потока данных.
-
Установите AWS CLI
, если он еще не установлен. -
Получите
QueueUrlпотока:QUEUE_URL="$(aws --endpoint "<sqs_api_endpoint>" sqs get-queue-url \ --queue-name "<stream_name>" \ --query 'QueueUrl' --output text)" -
Отправьте сообщение в поток:
aws --endpoint "<sqs_api_endpoint>" sqs send-message \ --queue-url "$QUEUE_URL" \ --message-body "test message" -
Прочитайте сообщение из потока:
aws --endpoint "<sqs_api_endpoint>" sqs receive-message \ --queue-url "$QUEUE_URL" \ --wait-time-seconds 20 \ --max-number-of-messages 1
Основную документацию по работе с Data Streams через HTTP API, совместимый с Amazon SQS, и больше примеров читайте в документации YDB