快速入門:使用 Go 建立管理群組
管理群組是可協助您跨多個訂用帳戶管理容器存取、原則及合規性的容器。 建立這些容器來建置可與 Azure 原則和 Azure 角色型存取控制搭配使用的高效率階層。 如需有關管理群組的詳細資訊,請參閱使用 Azure 管理群組來組織資源。
在目錄中建立的第一個管理群組可能需要 15 分鐘的時間才能完成。 第一次在 Azure 中設定目錄的管理群組服務時會執行一些程序。 程序完成時,您會收到通知。 如需詳細資訊,請參閱管理群組的初始設定。
必要條件
如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶。
Azure 服務主體,包括 clientId 和 clientSecret。 如果您沒有可與 Azure 原則搭配使用的服務主體,或想要建立新帳戶,請參閱適用於 .NET 驗證的 Azure 管理程式庫。 請略過安裝 .NET Core 套件的步驟,因為我們會在接下來的步驟中進行。
如果未啟用階層保護,則租用戶中的任何 Microsoft Entra ID 使用者都可以建立管理群組,而不需將管理群組寫入權限指派給該使用者。 這個新管理群組會變成根管理群組或預設管理群組的子系,而建立者會獲得擁有者角色指派。 管理群組服務允許此功能,因此在根層級不需要角色指派。 建立根管理群組時,使用者無法存取該群組。 若要開始使用管理群組,服務允許在根層級建立初始管理群組。 如需詳細資訊,請參閱每個目錄的根管理群組。
Azure Cloud Shell
Azure Cloud Shell 是裝載於 Azure 中的互動式殼層環境,可在瀏覽器中使用。 您可以使用 Bash 或 PowerShell 搭配 Cloud Shell,與 Azure 服務共同使用。 您可以使用 Cloud Shell 預先安裝的命令,執行本文提到的程式碼,而不必在本機環境上安裝任何工具。
要啟動 Azure Cloud Shell:
選項 | 範例/連結 |
---|---|
選取程式碼或命令區塊右上角的 [試試看]。 選取 [試試看] 並不會自動將程式碼或命令複製到 Cloud Shell 中。 | |
請前往 https://shell.azure.com,或選取 [啟動 Cloud Shell] 按鈕,在瀏覽器中開啟 Cloud Shell。 | |
選取 Azure 入口網站右上方功能表列上的 [Cloud Shell] 按鈕。 |
若要使用 Azure Cloud Shell:
啟動 Cloud Shell。
選取程式碼區塊 (或命令區塊) 上的 [複製] 按鈕以複製程式碼或命令。
透過在 Windows 和 Linux 上選取 Ctrl+Shift+V;或在 macOS 上選取 Cmd+Shift+V,將程式碼或命令貼到 Cloud Shell 工作階段中。
選取 Enter 鍵執行程式碼或命令。
新增管理群組套件
若要啟用 Go 來管理管理群組,必須新增套件。 此套件適用於可使用 Go 的任何位置,包括 bash on Windows 10 或安裝在本機上。
確認已安裝最新的 Go (至少 1.15)。 如果尚未安裝,請在 Golang.org 下載。
確認已安裝最新的 Azure CLI (至少 2.5.1)。 如果尚未安裝,請參閱 安裝 Azure CLI。
注意
需要 Azure CLI,才能讓 Go 在下列範例中使用
auth.NewAuthorizerFromCLI()
方法。 如需其他選項的相關資訊,請參閱 Azure SDK for Go - 其他驗證詳細資料。透過 Azure CLI 進行驗證。
az login
在您選擇的 Go 環境中,安裝管理群組所需的套件:
# Add the management group package for Go go install github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2020-05-01/managementgroups@latest # Add the Azure auth package for Go go install github.com/Azure/go-autorest/autorest/azure/auth@latest
應用程式設定
將 Go 套件新增至您選擇的環境後,就可以設定用來建立管理群組的 Go 應用程式。
建立 Go 應用程式,並將下列來源儲存為
mgCreate.go
:package main import ( "context" "fmt" "os" mg "github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2020-05-01/managementgroups" "github.com/Azure/go-autorest/autorest/azure/auth" ) func main() { // Get variables from command line arguments var mgName = os.Args[1] // Create and authorize a client mgClient := mg.NewClient() authorizer, err := auth.NewAuthorizerFromCLI() if err == nil { mgClient.Authorizer = authorizer } else { fmt.Printf(err.Error()) } // Create the request Request := mg.CreateManagementGroupRequest{ Name: &mgName, } // Run the query and get the results var results, queryErr = mgClient.CreateOrUpdate(context.Background(), mgName, Request, "no-cache") if queryErr == nil { fmt.Printf("Results: " + fmt.Sprint(results) + "\n") } else { fmt.Printf(queryErr.Error()) } }
建置 Go 應用程式:
go build mgCreate.go
使用已編譯的 Go 應用程式來建立管理群組。 以您的新管理群組名稱取代
<Name>
:mgCreate "<Name>"
結果是根管理群組中的新管理群組。
清除資源
如果您想要從 Go 環境中移除已安裝的套件,則可以使用下列命令:
# Remove the installed packages from the Go environment
go clean -i github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2020-05-01/managementgroups
go clean -i github.com/Azure/go-autorest/autorest/azure/auth
下一步
在本快速入門中,您已建立管理群組來組織您的資源階層。 管理群組可以保留訂用帳戶或其他管理群組。
若要深入了解管理群組,以及如何管理您的資源階層,請繼續: