你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
- 项目
使用 Azure Resource Graph 的第一步是确保为 Go 安装了所需的包。 本快速入门将指导你完成将该包添加到 Go 安装的过程。
在此过程结束时,你已将该包添加到 Go 安装中,并将运行你的第一个 Resource Graph 查询。
先决条件
如果没有 Azure 订阅,请在开始之前创建一个免费帐户。
添加 Resource Graph 包
若要使 Go 能够查询 Azure Resource Graph,则必须添加该包。 此包适用于可使用 Go 的任何情况,包括 Windows 10 上的 bash 或本地安装的 bash。
az login
# Add the Resource Graph package for Go
go get -u github.com/Azure/azure-sdk-for-go/services/resourcegraph/mgmt/2021-03-01/resourcegraph
# Add the Azure auth package for Go
go get -u github.com/Azure/go-autorest/autorest/azure/auth
运行首个 Resource Graph 查询
将 Go 包添加到所选环境中后,即可尝试一个简单的 Resource Graph 查询。 该查询返回前五个 Azure 资源,以及每个资源的名称和资源类型 。
package main
import (
"fmt"
"os"
"context"
"strconv"
arg "github.com/Azure/azure-sdk-for-go/services/resourcegraph/mgmt/2021-03-01/resourcegraph"
"github.com/Azure/go-autorest/autorest/azure/auth"
)
func main() {
// Get variables from command line arguments
var query = os.Args[1]
var subList = os.Args[2:]
// Create and authorize a ResourceGraph client
argClient := arg.New()
authorizer, err := auth.NewAuthorizerFromCLI()
if err == nil {
argClient.Authorizer = authorizer
} else {
fmt.Printf(err.Error())
}
// Set options
RequestOptions := arg.QueryRequestOptions {
ResultFormat: "objectArray",
}
// Create the query request
Request := arg.QueryRequest {
Subscriptions: &subList,
Query: &query,
Options: &RequestOptions,
}
// Run the query and get the results
var results, queryErr = argClient.Resources(context.Background(), Request)
if queryErr == nil {
fmt.Printf("Resources found: " + strconv.FormatInt(*results.TotalRecords, 10) + "\n")
fmt.Printf("Results: " + fmt.Sprint(results.Data) + "\n")
} else {
fmt.Printf(queryErr.Error())
}
}
go build argQuery.go
argQuery "Resources | project name, type | limit 5" "<SubID>"
argQuery "Resources | project name, type | limit 5 | order by name asc" "<SubID>"
argQuery "Resources | project name, type | order by name asc | limit 5" "<SubID>"
假设环境中没有任何变化,则多次运行最后一个查询时,返回的结果将是一致的且按 Name 属性排序,但仍限制为前五个结果。
清理资源
如果希望从 Go 环境中删除已安装的包,可使用以下命令执行此操作:
# Remove the installed packages from the Go environment
go clean -i github.com/Azure/azure-sdk-for-go/services/resourcegraph/mgmt/2019-04-01/resourcegraph
go clean -i github.com/Azure/go-autorest/autorest/azure/auth
后续步骤
本快速入门介绍了如何将 Resource Graph 包添加到 Go 环境并运行第一个查询。 若要详细了解 Resource Graph 语言,请继续阅读查询语言详细信息页。