我需要从 Go SDK(https://docs.aws.amazon.com/sdk-for-go/api/service/apigateway/#Usage)中获取以下数据中的值。我使用的是高浪 1.17.下面是我的 lambda 函数返回的数据。Decoded Data: { map[]}All the usage: map[4wxq8mcov8:[[0xc000353848 0xc000353870]]]{EndDate: "2021-08-31",Items: {4wxq8mcov8: [[12,975]]},StartDate: "2021-08-31",UsagePlanId: "w4wuvt"}我只想要来自 Items: {api_key: [[这个数字,还有这个数字]]},我只想要数组中的两个数字。示例返回数据,我想要 12 和 975 -Items: { 4wxq8mcov8: [[12,975]] }我如何获取数据,然后将两个数字除以得到百分比?获得百分比后,我将使用该数字与使用计划进行比较,以查看是否达到阈值。如果阈值是<=除号,我将通过SNS向slack或电子邮件发送消息。现在,我的重点是从项目映射中获取数字。提前感谢您。
1 回答

犯罪嫌疑人X
TA贡献2080条经验 获得超4个赞
要获得这两个数字,您必须从地图中获取它们。如果你总是知道键,并且你知道数组中只有一个元素,你可以这样做
u := getUsagePlanInfo(srv)
items := u.Items
quota := *items["4wxq8mcov8"][0][0]
remaining := *items["4wxq8mcov8"][0][1]
为了更安全,你应该这样做
if item, ok := items["4wxq8mcov8"]; ok && len(item) > 0 && len(item[0]) > 1 {
quota := *item[0][0]
remaining := *item[0][1]
fmt.Printf("%d, %d\n", quota, remaining)
}
如果您有多个键,或者您不知道该键,则必须迭代映射并获取每个键的值
- 1 回答
- 0 关注
- 114 浏览
添加回答
举报
0/150
提交
取消