Amazon web services aws sdk go DescripteBacks()正在尝试获取stackid列表或从堆栈名称获取stackid

Amazon web services aws sdk go DescripteBacks()正在尝试获取stackid列表或从堆栈名称获取stackid,amazon-web-services,go,aws-sdk,Amazon Web Services,Go,Aws Sdk,首先我为我的英语道歉,我建议我是新手。 我想得到我的opsworks堆栈上所有stackId的列表, 或者像我在ruby sdk中那样给出stackname并获取stackid,这样我就可以在其他服务调用中使用,但现在我正试图让他们都熟悉sdk func main() { svc := opsworks.New(session.New(&aws.Config{ Region: aws.String("us-east-1"),

首先我为我的英语道歉,我建议我是新手。 我想得到我的opsworks堆栈上所有stackId的列表, 或者像我在ruby sdk中那样给出stackname并获取stackid,这样我就可以在其他服务调用中使用,但现在我正试图让他们都熟悉sdk

func main() {

        svc := opsworks.New(session.New(&aws.Config{
                Region:      aws.String("us-east-1"),
                Credentials: credentials.NewSharedCredentials("", "development"),
        })) 


        resp, err := svc.DescribeStacks()
        if err != nil {
                fmt.Println(err.Error())
                return
        }       

        fmt.Println(resp)
}
我省略“params”的原因是: 也就是说:“指定要描述的堆栈的堆栈ID数组。如果省略此参数,DescribeStacks将返回每个堆栈的描述。”

O继续获取或“调用svc.descripeBacks时参数不足” 或“alidationException:请不提供参数或一个或多个堆栈ID”或“!v(PANIC=reflect:reflect.Value.Interface对零值的调用)”

所以我尝试了很多方法。。不仅仅是我贴在这里的那张。。这就是为什么不同的结果。。。将()改为(零)等。。省略参数,这样我就可以得到所有堆栈的列表。
我肯定这很傻,你知道吗?我在谷歌等搜索,但所有的例子都是ec2或s3

得到了一个在github问题主站点上有效的响应

我明白了,谢谢你澄清。您在180498284中列出的示例实际上是获取所有堆栈ID列表的最佳方法

要从响应中检索单个堆栈ID,请使用opsworks.DescribeSackSoutput结构的字段。此结构有一个字段Stacks,它是opsworks.Stack结构的列表。StackId是此结构上的一个字段

resp, err := svc.DescribeStacks(nil)
if err != nil {
    return err
}

for _, stack := range resp.Stacks {
   stackName := aws.StringValue(stack.Name)
   if stackName == owstackname {
       fmt.Printf("found %s stackid\n", stackName)
       fmt.Println(aws.StringValue(stack.StackId))
   }
}

aws.StringValue函数是将SDK输入/输出结构的字符串指针类型转换为值的帮助程序。它还可以防止返回空字符串的值为nil。

调用
svc.DescribeStacks(nil)
对我很有效。您是否正确设置了凭据?似乎是这样,我的~/.aws/credentials中有不同的配置文件,这就是为什么以这种方式使用它。这就是我使用(nil)%得到的结果!v(PANIC=reflect:reflect.Value.Interface对零值的调用)为什么对你有效而对我无效?这个错误中没有任何东西告诉我我打开了sdk的问题。。因为当我改变区域时,我会得到另一条消息。。。这是因为opsworks只有一个端点。(us-east-1)