入门
欢迎使用华为云开发者工具套件(Go SDK)。Go SDK让您轻松编程即可访问云服务。
本教程介绍如何安装和使用Go SDK,并提供示例,方便您快速入门。
我们支持的Go SDK基于Gophercloud开发。
前提条件
- 已经申请到云平台账号,并开通所需的服务。
- 使用Go SDK时,推荐使用Go 1.9.1版本。
SDK获取和安装
请从GitHub上获取Go SDK源代码:
https://github.com/huaweicloud/huaweicloud-sdk-release/tree/master/go-sdk
在Linux系统上进行安装:
安装前,必须确保GOPATH环境变量指向待安装Gophercloud的目标目录:
mkdir $HOME/go mkdir -p $HOME/go/src export GOPATH=$HOME/go
下载源代码,解压安装到go的src目录下,然后执行go build 命令:
# unzip source code unzip -d $GOPATH/src xxxxxx.zip #run go build cd $GOPATH/src/github.com/gophercloud/gophercloud go build
开始使用
配置相关的参数,完成认证,然后就可以调用SDK来访问服务的API。参数详情请参考表1。
package main import ( "github.com/gophercloud/gophercloud/auth/token" "github.com/gophercloud/gophercloud" "github.com/gophercloud/gophercloud/openstack/compute/v2/servers" "github.com/gophercloud/gophercloud/openstack" "fmt" ) func main() { //设置认证参数 tokenOpts := token.TokenOptions{ IdentityEndpoint: "https://iam.example.com/v3", Username: "{username}", Password: "{password}", DomainID: "{domainid}", ProjectID: "{projectid}", } //初始化provider client provider, providerErr := openstack.AuthenticatedClient(tokenOpts) if providerErr != nil { fmt.Println("init provider client error:", providerErr) panic(providerErr) } //初始化service client sc, serviceErr := openstack.NewComputeV2(provider, gophercloud.EndpointOpts{}) if serviceErr != nil { fmt.Println("init compute service client error:", serviceErr) panic(serviceErr) } //列出所有服务器 allPages, err := servers.List(sc, servers.ListOpts{}).AllPages() if err != nil { fmt.Println("request server list error:", err) panic(err) } //解析返回值 allServers, err := servers.ExtractServers(allPages) if err != nil { fmt.Println("extract response data error:", err) if ue, ok := err.(*gophercloud.UnifiedError); ok { fmt.Println("ErrCode:", ue.ErrorCode()) fmt.Println("Message:", ue.Message()) } return } //打印信息 fmt.Println("List Servers:") for _, s := range allServers { fmt.Println("server ID is :", s.ID) fmt.Println("server name is :", s.Name) fmt.Println("server Status is :", s.Status) fmt.Println("server AvailbiltyZone is :", s.AvailbiltyZone) } }
- ProviderClient 是所有 OpenStack 服务需要的顶级客户端。该客户端包含所有认证详情,如URL及token ID,通过认证后,编写的Go代码就可访问API。
- 访问某个服务时,还需要该服务的Service Client,详见各服务对应的章节。
名称 |
说明 |
取值样例 |
---|---|---|
IdentityEndpoint |
认证服务(IAM)的Endpoint。 “https://iam.example.com/v3”中的“example”为“区域.云平台域名”,参数详情可以访问这里了解。 |
https://iam.cn-north-1.myhuaweicloud.com/v3 |
ProjectID |
项目ID。如何获取项目ID请参考如何获取domain_name、project_name和project_id ?。 |
- |
DomainID |
账号ID。如何获取账号ID请参考如何获取domain_name、project_name和project_id ?。 |
- |
相关文档
相关产品
