获取 AWS SQS 队列 URL?

3

AWS SQS队列URL的格式如下:

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凭证,有没有办法获取它,而不是硬编码另一个环境变量?

2个回答

1

我怀疑1234567890是这样的,但是我如何获取那个数字?我需要将它硬编码到我的环境变量中吗?如果是这样的话,似乎有点奇怪。 - Jason Swett
不提供用户名的GetUser API调用将返回有关发起调用的用户的信息:http://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html - E.J. Brennan
1
@JasonSwett该回答中引用的文档表明,你提出这个问题意味着你计划做一些不应该做的事情:“在你的系统中,始终将完整的队列URL存储为Amazon SQS在创建队列时返回给你的(例如,http://sqs.us-east-1.amazonaws.com/123456789012/queue2)。不要每次需要在请求中指定队列URL时都从其各个组成部分构建队列URL,因为Amazon SQS可能会更改构成队列URL的组件。” - Michael - sqlbot
1
好观点 @Michael - 不能保证队列名称总是以这种方式构建。 - E.J. Brennan
啊,好发现。我猜那个评论如果你想把它作为答案添加进去的话,会是一个合适的正确答案。 - Jason Swett
文档不再说明不应该构建队列URL。这可能意味着现在可以构建或硬编码URL。 - Krzysztof Czelusniak

0
如果您无法直接访问队列URL(例如,如果您可以从CloudFormation直接创建它),您可以调用GetQueueUrl API。它接受QueueName和可选的QueueOwnerAWSAccountId参数。这将是获取URL的首选方法。确实,URL是基于账户和区域的格式良好的URL,并且在这一点上我不希望它发生变化。但是,在中国区域或政府云区域可能会有所不同。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接