登录
首页 >  Golang >  Go问答

使用 AWS SDK for Go 如何获取 ARN

来源:stackoverflow

时间:2024-02-06 12:12:24 244浏览 收藏

“纵有疾风来,人生不言弃”,这句话送给正在学习Golang的朋友们,也希望在阅读本文《使用 AWS SDK for Go 如何获取 ARN》后,能够真的帮助到大家。我也会在后续的文章中,陆续更新Golang相关的技术文章,有好的建议欢迎大家在评论留言,非常感谢!

问题内容

有没有办法通过AWS SDK for Go检索资源的ARN?我在 DynamoDB 中创建了几个表,并且想要检索 ARN。

ARN 格式: arn:aws:服务:区域:帐户 ID:资源类型:资源 id

如何通过 SDK for Go 检索 account-idregion


正确答案


没有从 AWS SDK 获取区域的通用方法。一般来说,这里我们考虑简单的代码,为部署到任何环境的服务返回正确的 AWS 区域。

AWS 假设相反的过程。作为客户,您应该知道您的 AWS 资源部署在哪里,并且必须将区域注入到连接到 AWS 的应用程序中。

考虑一下在欧洲本地计算机上运行的代码,访问部署在 us-east-2 区域中的 AWS DynamoDB,或者需要将数据从区域 1 的数据库复制到区域 2 的数据库的代码。在这两种情况下,应用程序在没有提示的情况下无法获取正确的区域。

但是,在许多情况下,部署代码的环境可以提供该提示。

一些例子:

对于本地环境,您可以为 AWS SDK 配置默认区域 - https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-region。如果您使用 config.LoadDefaultConfig 创建客户端,您的服务将选择该区域

另一个示例是在 EC2 上运行您的服务。 EC2 提供包括当前区域和账户的 AWS 元数据。可以使用 client.GetMetadata 请求当前区域。GetInstanceIdentityDocument API 返回区域和帐户 ID。

如果您控制服务的部署方式,则可以尝试从环境中获取当前的区域和帐户 ID,否则常见的做法是在部署代码时使用区域和帐户 ID 设置 ENV 变量。

好了,本文到此结束,带大家了解了《使用 AWS SDK for Go 如何获取 ARN》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>