【问题标题】:list emr clusters using go使用 go 列出 emr 集群
【发布时间】:2022-07-29 21:23:14
【问题描述】:

我正在尝试使用 go 列出 emr 集群。

这是我返回空白的代码。我在 python 中做了“同样的”,结果正确。

running := "RUNNING"

waiting := "WAITING"

emr_states := []*string {&running, &waiting}

var abc emr.ListClustersInput

abc.SetClusterStates(emr_states)

sess := session.Must(session.NewSession())

svc := emr.New(sess)

list_clusters_output, err := svc.ListClusters(&abc)

_ = err


println(fmt.Sprintf("type of list clusters output is %s", reflect.TypeOf(list_clusters_output)))

println(fmt.Sprintf("type of *list clusters output is %s", reflect.TypeOf(*list_clusters_output)))


list_clusters_output_dereffed := *list_clusters_output

println(list_clusters_output_dereffed.String())

我得到的输出是

type of list clusters output is *emr.ListClustersOutput
type of *list clusters output is emr.ListClustersOutput
{
}

有一个集群正在运行,我已使用 python 脚本成功返回。

【问题讨论】:

  • 你检查过err

标签: go amazon-emr aws-sdk-go


【解决方案1】:

想通了。我在会话中缺少区域指示。

下面的完整解决方案。

package main

import (
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/emr" 
)

func main() {

    starting := "STARTING"

    running := "RUNNING"

    waiting := "WAITING"

    emr_states := []*string {&starting, &running, &waiting}
    
    var abc emr.ListClustersInput
    
    abc.SetClusterStates(emr_states)

    sess := session.Must(session.NewSession())

    reggie := "us-east-1"

    sess.Config.Region = &reggie

    svc := emr.New(sess)

    list_clusters_output, err := svc.ListClusters(&abc)

    if err != nil {
        println(err.Error())
    }

    list_clusters_output_dereffed := *list_clusters_output

    println(list_clusters_output_dereffed.GoString())
    
}

【讨论】:

    猜你喜欢
    • 2019-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    • 1970-01-01
    • 2020-02-11
    • 1970-01-01
    相关资源
    最近更新 更多