使用go sdk v2获取aws ec2示例元数据

nhaq1z21  于 2023-03-10  发布在  Go
关注(0)|答案(2)|浏览(146)

我举个例子:https://aws.github.io/aws-sdk-go-v2/docs/sdk-utilities/ec2-imds/
和go.mod正在使用:示例github.com/aws/aws-sdk-go-v2/feature/ec2/imdsv1.12.15
但localip打印为:&{{0xc 0002 d1680} {Map[{}:{[{假假{Map[]}}]}}
有人能用这个吗?

isr3a4wc

isr3a4wc1#

如果有人感兴趣,这就解决了问题:https://github.com/natemarks/ec2metadata

4uqofj5v

4uqofj5v2#

client.GetMetadata函数返回具有Content元素的GetMetadataOutput对象,该Content元素是类型io.Reader的HTTP resp.Body。该元素需要另外转换为字符串,例如,通过如下函数

func copyToString(r io.Reader) (res string, err error) {
    var sb strings.Builder
    if _, err = io.Copy(&sb, r); err == nil {
        res = sb.String()
    }
    return
}

因此,AWS示例的正确版本应返回

localip_str, err := copyToString(localip.Content)

相关问题