Partager via


Vue d’ensemble des bibliothèques de gestion du Kit de développement logiciel (SDK) Azure pour Go

Comme expliqué dans l’article Qu’est-ce qu’Azure SDK pour Go ?, Azure SDK pour Go contient un ensemble de bibliothèques de client et de gestion. Les bibliothèques de gestion partagent de nombreuses fonctionnalités comme la prise en charge des identités Azure, le pipeline HTTP et la gestion des erreurs. La liste complète des bibliothèques de gestion est disponible dans la page du module Azure SDK pour Go.

Dans cet article, vous allez découvrir les étapes de base de l’utilisation des bibliothèques de gestion pour interagir avec les ressources Azure.

Installation des packages Go

Dans la plupart des projets, vous installez les packages Go pour la gestion des versions et des dépendances.

Pour installer un package Go, utilisez la commande go get.

Par exemple, pour installer le package armcompute, exécutez la commande suivante sur la ligne de commande :

go get github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute

Dans la plupart des applications Go, vous installez les packages suivants pour l’authentification :

  • github.com/Azure/azure-sdk-for-go/sdk/azcore/to
  • github.com/Azure/azure-sdk-for-go/sdk/azidentity

Importation de packages dans votre code Go

Une fois téléchargé, le package est importé dans votre application avec l’instruction import :

import (
    "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/compute/armcompute"
)

Authentification sur Azure

Pour exécuter du code sur un abonnement Azure, vous devez vous authentifier sur Azure. Le package azidentity prend en charge plusieurs options pour s’authentifier sur Azure. Ces options comprennent un client/secret, un certificat et une identité managée.

L’option d’authentification par défaut est DefaultAzureCredential, qui utilise les variables d’environnement définies plus haut dans cet article. Dans votre code Go, vous créez un azidentity objet comme suit :

cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
  // handle error
}

Création d’un client de gestion des ressources

Une fois que vous avez des informations d’identification à partir d’Azure Identity, créez un client pour vous connecter au service Azure cible.

Supposons, par exemple, que vous voulez vous connecter au service Azure Compute. Le package Compute se compose d’un ou de plusieurs clients. Un client regroupe un ensemble d’API connexes qui donnent accès à ses fonctionnalités dans l’abonnement spécifié. Vous créez un ou plusieurs clients pour accéder aux API dont vous avez besoin.

Dans l’extrait de code suivant, le type armcompute.NewVirtualMachinesClient est utilisé afin de créer un client pour gérer des machines virtuelles :

client, err := armcompute.NewVirtualMachinesClient("<subscription ID>", cred, nil)
if err != nil {
  // handle error
}

Le même modèle est utilisé pour se connecter à d’autres services Azure. Par exemple, installez le package armnetwork et créez un client de réseau virtuel pour gérer les ressources de réseau virtuel (VNET).

client, err := armnetwork.NewVirtualNetworksClient("<subscription ID>", cred, nil)
if err != nil {
  // handle error
}

Exemple de code :

package main

import (
	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute"
)

func main() {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		// handle error
	}
	client, err := armcompute.NewVirtualMachinesClient("SubID", cred, nil)
	if err != nil {
        // handle error
    }
}

Utilisation de la documentation de référence Azure SDK pour Go

Une fois instanciés, les clients sont utilisés pour effectuer des appels d’API sur vos ressources Azure. Pour les scénarios de gestion des ressources, la plupart des cas d’utilisation sont des opérations CRUD (création/lecture/mise à jour/suppression).

Pour rechercher les opérations d’un type spécifique, effectuez les étapes suivantes :

  1. Accédez à la Documentation de référence Azure SDK pour Go.
  2. Recherchez la page du package. (Appuyez sur <Ctrl+F> développe automatiquement tous les nœuds de la page pour la recherche.)
  3. Sélectionnez le package.
  4. Recherchez le type dans la page du package.
  5. Lisez la description du type et les informations sur son utilisation dans votre code Go.

Vous pouvez également créer manuellement l’URL en ajoutant le nom du package à github.com/Azure/azure-sdk-for-go/sdk/.

Par exemple, si vous recherchez la documentation de référence de compute/armcompute, l’URL est github.com/Azure/azure-sdk-for-go/sdk/compute/armcompute.

L’exemple suivant montre comment rechercher la documentation de référence pour les opérations de groupe de ressources Azure :

  1. Accédez à la documentation de référence principale du Kit de développement logiciel (SDK) Azure pour Go sur pkg.go.dev.
  2. Sélectionnez <Ctrl+F> , puis entrez resourcemanager/resources/armresources. Lorsque vous tapez le terme de recherche, vous voyez une correspondance étroite avec le package resources/armresources .
  3. Sélectionnez le package approprié pour votre application.
  4. Lisez les sections « Getting Started » ou recherchez une opération spécifique. Par exemple, la recherche du terme « resourcegroupsclient.create » (si vous souhaitez créer un groupe de ressources) vous amène à la fonction CreateOrUpdate.
  5. À ce stade, vous pouvez lire comment effectuer l’appel d’API pour créer un groupe de ressources Azure.

Opérations de longue durée

Comme certaines opérations peuvent prendre du temps, les bibliothèques de gestion contiennent des fonctions pour prendre en charge les opérations longues avec des appels asynchrones. Ces noms de fonctions commencent par Begin. Des exemples de ce modèle sont BeginCreate et BeginDelete.

Comme ces fonctions sont asynchrones, votre code n’est pas bloqué pendant que la fonction exécute sa tâche. À la place, la fonction retourne immédiatement un objet poller. Votre code appelle ensuite une fonction de polleur synchrone qui retourne une fois la fonction asynchrone d’origine terminée.

L’extrait de code suivant montre un exemple de ce modèle.

ctx := context.Background()
// Call an asynchronous function to create a client. The return value is a poller object.
poller, err := client.BeginCreate(ctx, "resource_identifier", "additional_parameter")

if err != nil {
	// handle error...
}

// Call the poller object's PollUntilDone function that will block until the poller object
// has been updated to indicate the task has completed.
resp, err = poller.PollUntilDone(ctx, nil)
if err != nil {
	// handle error...
}

// Print the fact that the LRO completed.
fmt.Printf("LRO done")

// Work with the response ("resp") object.

Points essentiels :

  • La fonction PollUntilDone nécessite un intervalle d’interrogation qui spécifie la fréquence à laquelle elle doit essayer d’obtenir l’état.
  • L’intervalle est généralement court. Consultez la documentation de la ressource Azure spécifique pour connaître les intervalles recommandés.
  • La section sur les opérations longues de la page des instructions de conception du SDK Azure pour Go contient un exemple avancé et des instructions générales pour les opérations longues.

Étapes suivantes