May*_*tel 4 go amazon-sqs amazon-web-services aws-regions
我有一个 SQS URL,其中也包含区域。我正在使用官方 Go SDK 在此 SQS 上执行操作,这需要 AWS 区域来初始化会话。目前,我已经编写了一个实用程序函数来解析 URL 并返回 AWS 区域。
示例网址:https://sqs.us-east-1.amazonaws.com/774557911234/my_sqs_name
示例初始化代码:
sess, err := session.NewSession()
if err != nil {
return
}
s := sqs.New(sess, aws.NewConfig().WithRegion(getRegionFromSQSURL(config.SQSURL))
Run Code Online (Sandbox Code Playgroud)
从 URL 获取区域的示例函数
func getRegionFromSQSURL(url string) string {
return strings.Split(url, ".")[1]
}
Run Code Online (Sandbox Code Playgroud)
只是想知道这是否是正确的方法。
是否存在 SQS URL 中的 URL 区域与 SQS 存在的区域不同的情况?
我是否应该在服务中再添加一个要设置的环境变量?
从这里引用: https: //docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-message-identifiers.html
重要的
在您的系统中,请始终按照 Amazon SQS 在您创建队列时返回给您的方式存储整个队列 URL(例如, http://sqs.us-east-2.amazonaws.com/123456789012/queue2)。每次需要在请求中指定队列 URL 时,请勿从其单独的组件构建队列 URL,因为 Amazon SQS 可以更改构成队列 URL 的组件。
正如所解释的,他们将来有时可能会出于某种原因更改 URL 的结构。队列区域可能仍会保留在 url 中的某个位置,但不一定位于您期望的位置。
因此,综合考虑,我认为引入新的环境变量是正确的方法。
| 归档时间: |
|
| 查看次数: |
2802 次 |
| 最近记录: |