Go + Azure:调用方法返回undefined

时间:2017-06-05 12:21:23

标签: azure go

我尝试使用Go Azure SDK来调用通知中心api

我已经安装了SDK并导入了GO文件:

package hub

import (

    "fmt"

    "github.com/Azure/azure-sdk-for-go/arm/notificationhubs"
)

func GetHub() {
    if resourceType, err := notificationhubs.Get("sourceGroupName", "NameSpaceValue", "NameOfTheHub"); err != nil {
        fmt.Println("Error occured")
        return
    }
    fmt.Println("Success")

}

然而,当我试图破坏他的代码我得到了这个错误

undefined: notificationhubs.Get

我不确定这是什么意思,因为我的IDE不会抱怨导入Azure SDK所以我假设SDK已正确导入。

2 个答案:

答案 0 :(得分:1)

您尝试使用的功能不存在(https://godoc.org/github.com/Azure/azure-sdk-for-go/arm/notificationhubs)。

您可能正在尝试使用函数GroupClient.Get;如果是这种情况,您需要获取GroupClient类型的对象,然后在其上调用函数Get

答案 1 :(得分:0)

@ cd1是正确的! Get方法不直接属于您导入的命名空间,而是属于该命名空间中存在的客户端。为了以这种方式与NotificationsHub交互,实例化GroupClient然后运行Get命令。

import (
    hubs "github.com/Azure/azure-sdk-for-go/arm/notificationshub"
)

func main() {
    // Implementation details of your program ...
    client := hubs.NewGroupClient("<YOUR SUBSCRIPTION ID>")
    client.Authorizer = // Your initialized Service Principal Token

    results, err := client.Get("<RESOURCE GROUP NAME>", "<NAMESPACE NAME>", "<NOTIFICATION HUB NAME>")
    if err != nil {
        return
    }
}