You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用AWS SDK for Go获取EC2实例类型的MemoryInfo.SizeInMiB

解决AWS SDK for Go提取EC2实例内存信息的问题

不需要自己定义冗长结构体,直接用AWS SDK返回的结构化对象就能拿到MemoryInfo.SizeInMiB,完全没必要绕JSON序列化这一步——SDK的结构体里有不少未导出字段和自定义类型,转JSON反而会引发错误。

直接遍历返回结果里的InstanceTypes切片,逐个访问字段即可,示例代码如下:

// 假设你已经获取到resp *ec2.DescribeInstanceTypesOutput
for _, instanceType := range resp.InstanceTypes {
    if instanceType.MemoryInfo != nil && instanceType.MemoryInfo.SizeInMiB != nil {
        memorySize := *instanceType.MemoryInfo.SizeInMiB
        // 这里即可使用内存大小值,比如打印或存储
        println(instanceType.InstanceType, "内存大小:", memorySize, "MiB")
    }
}

需要注意的是,SDK返回的结构体字段多为指针类型(比如SizeInMiB是*int64),所以要先做非空判断,避免空指针panic后再解引用取值。

如果之前尝试JSON序列化失败,大概率是因为SDK结构体包含标准JSON包无法处理的类型(比如自定义时间类型、未导出字段),完全没必要走这条路,直接使用SDK提供的结构化访问方式才是正确的做法。

内容的提问来源于stack exchange,提问作者marcus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 03:09:14