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 que le Kit de développement logiciel (SDK) Azure pour Go ?, le Kit de développement logiciel (SDK) Azure pour Go dispose d’un ensemble de bibliothèques clientes et de gestion. Les bibliothèques de gestion partagent des fonctionnalités telles que la prise en charge d’Azure Identity, le pipeline HTTP et la gestion des erreurs. Pour obtenir la liste complète des bibliothèques de gestion, consultez le module Kit de développement logiciel (SDK) Azure pour Go.

Dans cet article, vous allez découvrir les étapes de base pour utiliser les 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, exécutez la go get commande.

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

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és, les packages sont importés dans votre application via 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 auprès d’Azure

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

L’option d’authentification par défaut est DefaultAzureCredential, qui utilise les variables d’environnement définies précédemment 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 Resource Management

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

Par exemple, supposons que vous souhaitez vous connecter au service De calcul Azure . Le package De calcul se compose d’un ou plusieurs clients. Un client regroupe un ensemble d’API associées, fournissant l’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.

Le code suivant utilise l’armcompute. Type NewVirtualMachinesClient pour créer un client pour gérer les 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("<subscription ID>", cred, nil)
    if err != nil {
        // handle error
    }
}

Utilisation de la documentation de référence sur le Kit de développement logiciel (SDK) Azure pour Go

Après avoir instancié un client, utilisez-le pour passer des appels d’API à vos ressources Azure. Pour les scénarios de gestion des ressources, la plupart des cas d’usage sont des opérations CRUD (créer, lire, mettre à jour, supprimer).

Pour rechercher des opérations pour un type spécifique, procédez comme suit :

  1. Accédez à la documentation de référence du Kit de développement logiciel (SDK) Azure pour Go.
  2. Recherchez le package. (Appuyer <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 et les informations d’utilisation du type pour votre code Go.

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

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

Cet exemple montre comment trouver 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 la section « Prise en main » ou recherchez une opération spécifique. Par exemple, la recherche de « resourcegroupsclient.create » (pour créer un groupe de ressources) vous amène à la fonction CreateOrUpdate.
  5. Découvrez comment effectuer l’appel d’API pour créer un groupe de ressources Azure.

Opérations de longue durée

Certaines opérations peuvent prendre beaucoup de temps pour terminer, de sorte que les bibliothèques de gestion ont des fonctions qui prennent en charge des opérations de longue durée (LRO) via des appels asynchrones. Ces noms de fonctions commencent par Begin, comme BeginCreate et BeginDelete.

Étant donné que ces fonctions sont asynchrones, votre code ne bloque pas tant que la fonction termine sa tâche. Au lieu de cela, la fonction retourne immédiatement un objet polleur . Votre code appelle ensuite une fonction de sondeur synchrone qui retourne lorsque la fonction asynchrone d'origine est 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 clés :

Étapes suivantes