【问题标题】:storagegateway.ListGateways() returning "Invalid resource" with status code: 400storagegateway.ListGateways() 返回“无效资源”,状态码:400
【发布时间】:2018-06-26 19:18:56
【问题描述】:

我在使用 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 列出网关。

这很可能是因为我不是专家而忽略了的简单问题。也就是说,任何帮助将不胜感激。

【问题讨论】:

  • 完整的错误输出是什么?根据文档,“使用运行时类型断言和 awserr.Error 的 Code 和 Message 方法来获取有关错误的详细信息。”
  • 这里是完整的错误输出:InvalidGatewayRequestException InvalidGatewayRequestException: Invalid resource status code: 400
  • 好吧,我无法重新创建您的问题。所以在等待有人在这里解决的时候,也许你可以在 Github 中提及它issues page
  • 网关存在吗?还是开始了? "网关关闭后,除 StartGateway、DescribeGatewayInformation 和 ListGateways 外,您无法调用任何其他 API。有关详细信息,请参阅 ActivateGateway。您的应用程序无法读取或写入网关的存储卷,并且没有拍摄快照。"
  • @strongjz 是的,网关存在、已激活并已启动。我使用 AWS CLI 命令以及我现在尝试过的 python SDK 成功地获得了它们的列表。网关操作状态报告为活动状态,我正在生产中积极使用这些网关。

标签: amazon-web-services go aws-sdk aws-sdk-go aws-storage-gateway


【解决方案1】:

只需删除Marker: aws.String("1") 行,示例代码似乎就可以按预期工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-07
    • 1970-01-01
    • 2021-07-28
    • 2021-01-13
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多