Получить URL очереди AWS SQS?

URL-адрес очереди AWS SQS выглядит так:

sqs.us-east-1.amazonaws.com/1234567890/default_development

А вот детали в разбивке:

Always same | Stored in env var | Always same   | ?          | Stored in env var
sqs         | us-east-1         | amazonaws.com | 1234567890 | default_development

Таким образом, я могу восстановить URL-адрес очереди на основе известных мне вещей, кроме части 1234567890.

Что это за число и есть ли способ, если у меня есть кредиты AWS в env vars, получить его без жесткого кодирования другого env var?


person Jason Swett    schedule 02.09.2015    source источник


Ответы (2)


1234567890 должен быть номером вашей учетной записи AWS.

http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/ImportantIdentifiers.html

person E.J. Brennan    schedule 02.09.2015
comment
Я подозревал, что это 1234567890, но как мне получить этот номер? Нужно ли мне жестко закодировать его в свои env vars? Кажется странным, если так. - person Jason Swett; 03.09.2015
comment
Вызов API GetUser без имени пользователя вернет информацию о пользователе, выполняющем вызов: docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html - person E.J. Brennan; 03.09.2015
comment
@JasonSwett документ, цитируемый в ответе, предполагает, что тот факт, что вы задаете этот вопрос, означает, что вы планируете делать что-то, чего не должны делать: В вашей системе всегда храните весь URL-адрес очереди, поскольку Amazon SQS вернул его вы, когда создавали очередь (например, sqs.us-east-1. amazonaws.com/123456789012/queue2). Не создавайте URL-адрес очереди из отдельных компонентов каждый раз, когда вам нужно указать URL-адрес очереди в запросе, поскольку Amazon SQS может изменить компоненты, составляющие URL-адрес очереди. - person Michael - sqlbot; 03.09.2015
comment
Хороший замечание @Michael - нет гарантии, что имена очередей всегда будут построены таким образом. - person E.J. Brennan; 03.09.2015
comment
Ах, хороший улов. Думаю, этот комментарий даст правильный правильный ответ на мой вопрос, если вы хотите добавить его в качестве ответа. - person Jason Swett; 03.09.2015
comment
В документации больше не говорится, что вы не должны создавать URL очереди. Это, вероятно, означает, что теперь можно создать или жестко запрограммировать URL-адрес. - person Krzysztof Czelusniak; 19.07.2021

Если у вас нет прямого доступа к URL-адресу очереди (например, вы можете получить его прямо из CloudFormation, если создадите его там), вы можете вызвать GetQueueUrl API. Он принимает параметры QueueName и необязательный QueueOwnerAWSAccountId. Это был бы предпочтительный метод получения URL-адреса. Это правда, что URL-адрес является правильно сформированным URL-адресом на основе учетной записи и региона, и я не ожидал, что это изменится на данном этапе. Возможно, что в таких регионах, как регионы Китая или регионы Gov Cloud, все будет по-другому.

person Jason Wadsworth    schedule 28.03.2021