Creare un'entità servizio. Prendere nota dell'ID applicazione (client) dell'entità servizio e del segreto. Assicurarsi di seguire anche le istruzioni per assegnare il ruolo Collaboratore nella sottoscrizione all'applicazione. Il ruolo Collaboratore è un ruolo di amministratore con privilegi che concede l'autorizzazione per gestire tutte le risorse nella sottoscrizione.
Prima di passare alla sezione successiva, assicurarsi di aver annotato l'ID sottoscrizione (Guid), l'ID tenant (Guid) e l'ID client/applicazione (Guid) e il segreto per l'entità servizio.
2. Impostare le variabili di ambiente di autenticazione
Usando le informazioni di autenticazione di Azure, impostare le variabili di ambiente appropriate in modo che il codice possa eseguire l'autenticazione in Azure.
Impostare le variabili di ambiente seguenti. Sostituire i segnaposto con i valori appropriati della sezione precedente.
Prompt dei comandi di Windows
set AZURE_SUBSCRIPTION_ID="<azure_subscription_id>"
set AZURE_TENANT_ID="<active_directory_tenant_id>"
set AZURE_CLIENT_ID="<service_principal_appid>"
set AZURE_CLIENT_SECRET="<service_principal_password>"
3. Creare un gruppo di risorse
Creare una directory in cui testare ed eseguire il codice Go di esempio e impostarla come directory corrente.
Eseguire go mod init per creare un modulo nella directory corrente.
Console
go mod init <module_path>
Punti principali:
Il <module_path> parametro è in genere una posizione in un repository GitHub, ad esempio github.com/<your_github_account_name>/<directory>.
Quando si crea un'app da riga di comando come test e non si pubblica l'app, <module_path> non è necessario fare riferimento a una posizione effettiva.
Eseguire go per scaricare, compilare e installare i moduli necessari di Azure SDK per Go.
Console
go get github.com/Azure/azure-sdk-for-go/sdk/azcore
go get github.com/Azure/azure-sdk-for-go/sdk/azcore/to
go get github.com/Azure/azure-sdk-for-go/sdk/azidentity
go get github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources
Importante
I pacchetti per la versione corrente delle librerie di gestione delle risorse di Azure si trovano in sdk/**/arm**. I pacchetti per la versione precedente delle librerie di gestione si trovano in /services. Se si usa la versione precedente, vedere la Guida alla migrazione di Azure SDK for Go.
Creare un file denominato main.go e aggiungere il codice seguente. Ogni sezione del codice è commentata per spiegarne lo scopo.
Go
package main
// Import key modules.import (
"context""log""os""github.com/Azure/azure-sdk-for-go/sdk/azcore""github.com/Azure/azure-sdk-for-go/sdk/azcore/to""github.com/Azure/azure-sdk-for-go/sdk/azidentity""github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources"
)
// Define key global variables.var (
subscriptionId = os.Getenv("AZURE_SUBSCRIPTION_ID")
location = "eastus"
resourceGroupName = "myResourceGroup"// !! IMPORTANT: Change this to a unique name in your subscription.
ctx = context.Background()
)
// Define the function to create a resource group.funccreateResourceGroup(subscriptionId string, credential azcore.TokenCredential)(armresources.ResourceGroupsClientCreateOrUpdateResponse, error) {
rgClient, _ := armresources.NewResourceGroupsClient(subscriptionId, credential, nil)
param := armresources.ResourceGroup{
Location: to.Ptr(location),
}
return rgClient.CreateOrUpdate(ctx, resourceGroupName, param, nil)
}
// Define the standard 'main' function for an app that is called from the command line.funcmain() {
// Create a credentials object.
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("Authentication failure: %+v", err)
}
// Call your function to create an Azure resource group.
resourceGroup, err := createResourceGroup(subscriptionId, cred)
if err != nil {
log.Fatalf("Creation of resource group failed: %+v", err)
}
// Print the name of the new resource group.
log.Printf("Resource group %s created", *resourceGroup.ResourceGroup.ID)
}
Punti principali:
Il subscriptionId valore viene recuperato dalla AZURE_SUBSCRIPTION_ID variabile di ambiente.
Le location stringhe e resourceGroupName vengono impostate per testare i valori. Se necessario, modificare questi valori in un valore appropriato per la località e la sottoscrizione.
Eseguire go mod tidy per pulire le dipendenze nel file in base al go.mod codice sorgente.
Dopo aver aggiunto il codice, passare alla sezione successiva. Il codice viene eseguito in una sezione successiva.
8. Aggiornare la funzione principale
Nelle sezioni precedenti è stato aggiunto il codice per main.go creare, aggiornare ed eliminare un gruppo di risorse. È stato aggiunto anche il codice per elencare tutti i gruppi di risorse in una sottoscrizione di Azure. Per eseguire tutte queste funzioni in sequenza:
In main.gosostituire la main funzione con il codice seguente:
Go
funcmain() {
// Create a credentials object.
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("Authentication failure: %+v", err)
}
// Call your function to create an Azure resource group.
resourceGroup, err := createResourceGroup(subscriptionId, cred)
if err != nil {
log.Fatalf("Creation of resource group failed: %+v", err)
}
// Print the name of the new resource group.
log.Printf("Resource group %s created", *resourceGroup.ResourceGroup.ID)
// Call your function to add a tag to your new resource group.
updatedRG, err := updateResourceGroup(subscriptionId, cred)
if err != nil {
log.Fatalf("Update of resource group failed: %+v", err)
}
log.Printf("Resource Group %s updated", *updatedRG.ResourceGroup.ID)
// Call your function to list all the resource groups.
rgList, err := listResourceGroups(subscriptionId, cred)
if err != nil {
log.Fatalf("Listing of resource groups failed: %+v", err)
}
log.Printf("Your Azure subscription has a total of %d resource groups", len(rgList))
// Call your function to delete the resource group you created.if err := deleteResourceGroup(subscriptionId, cred); err != nil {
log.Fatalf("Deletion of resource group failed: %+v", err)
}
log.Printf("Resource group deleted")
}
Eseguire il codice e osservare l'output.
Console
go run .
Output
2024/07/31 15:29:06 Resource group /subscriptions/<subscription ID>/resourceGroups/myResourceGroup created
2024/07/31 15:29:07 Resource Group /subscriptions/<subscription ID>/resourceGroups/myResourceGroup updated
2024/07/31 15:29:07 Your Azure subscription has a total of 8 resource groups
2024/07/31 15:30:25 Resource group deleted
Nota
L'eliminazione del gruppo di risorse può richiedere alcuni minuti.
Progettare soluzioni end-to-end in Microsoft Azure per creare Funzioni di Azure, implementare e gestire app Web, sviluppare soluzioni che usano Archiviazione di Azure e altro ancora.