我在使用 go sdk 使用以下代码列出一个区域中的所有存储网关时遇到问题:
package main
import (
"fmt"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/storagegateway"
)
func newSess() (sess *session.Session) {
sess, err := session.NewSession(&aws.Config{
Region: aws.String("us-east-2"),
})
if err != nil {
fmt.Printf("Error creating session: %s\n", err)
return
}
return sess
}
func main() {
sgw := storagegateway.New(newSess())
input := &storagegateway.ListGatewaysInput{
Limit: aws.Int64(5),
Marker: aws.String("1"),
}
result, err := sgw.ListGateways(input)
if err != nil {
fmt.Printf("Error listing gateways %s\n", err)
return
}
fmt.Println(result)
}
我的环境如下:
- Go版本:1.9.2 darwin/amd64
- 操作系统:macOS 10.13.2
- aws-sdk-go: v1.12.63
SDK 正在使用 ~/.aws/config
中指定的默认配置文件,而且凭据也正确。此外,我能够单独使用 awscli 列出网关。
这很可能是我不是专家而忽略的简单问题。也就是说,我们将不胜感激。
最佳答案
通过简单地删除 Marker: aws.String("1")
行,示例代码似乎按我预期的方式工作。
关于amazon-web-services - storagegateway.ListGateways() 返回 "Invalid resource",状态码为 : 400,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48309084/