Freigeben über


Übersicht über das Azure SDK für Go-Verwaltungsbibliotheken

Wie im Artikel "Was ist das Azure SDK für Go?" erläutert, verfügt das Azure SDK für Go über eine Reihe von Verwaltungs- und Clientbibliotheken. Die Verwaltungsbibliotheken teilen Features wie Azure Identity-Unterstützung, HTTP-Pipeline und Fehlerbehandlung. Die vollständige Liste der Verwaltungsbibliotheken finden Sie im Azure SDK für go-Modul.

In diesem Artikel lernen Sie die grundlegenden Schritte zum Verwenden der Verwaltungsbibliotheken für die Interaktion mit Azure-Ressourcen kennen.

Installieren von Go-Paketen

In den meisten Projekten installieren Sie die Go-Pakete für versionsverwaltung und Abhängigkeitsverwaltung.

Führen Sie den go get Befehl aus, um ein Go-Paket zu installieren.

Führen Sie beispielsweise den folgenden Befehl aus, um das armcompute Paket zu installieren:

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

In den meisten Go-Apps installieren Sie die folgenden Pakete für die Authentifizierung:

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

Importieren von Paketen in Ihren Go-Code

Nach dem Herunterladen werden die Pakete über die import Anweisung in Ihre App importiert:

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"
)

Authentifizieren bei Azure

Um Code für ein Azure-Abonnement auszuführen, müssen Sie sich bei Azure authentifizieren. Das Azidentity-Paket unterstützt mehrere Optionen zur Authentifizierung bei Azure. Zu diesen Optionen gehören Client/Geheimnis, Zertifikat und verwaltete Identität.

Die Standardauthentifizierungsoption ist DefaultAzureCredential, die zuvor in diesem Artikel festgelegte Umgebungsvariablen verwendet. Im Go-Code erstellen Sie wie folgt ein azidentity Objekt:

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

Erstellen eines Ressourcenverwaltungsclients

Nachdem Sie eine Anmeldeinformation von Azure Identity erhalten haben, erstellen Sie einen Client, um eine Verbindung mit dem Azure-Zieldienst herzustellen.

Angenommen, Sie möchten eine Verbindung mit dem Azure Compute-Dienst herstellen. Das Compute-Paket besteht aus einem oder mehreren Clients. Ein Client gruppiert eine Reihe verwandter APIs und ermöglicht den Zugriff auf seine Funktionalität innerhalb des angegebenen Abonnements. Sie erstellen einen oder mehrere Clients, um auf die erforderlichen APIs zuzugreifen.

Der folgende Code verwendet den Armcompute. NewVirtualMachinesClient-Typ zum Erstellen eines Clients zum Verwalten virtueller Computer:

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

Dasselbe Muster wird verwendet, um eine Verbindung mit anderen Azure-Diensten herzustellen. Installieren Sie z. B. das Armnetwork-Paket , und erstellen Sie einen virtuellen Netzwerkclient zum Verwalten von VNET-Ressourcen (Virtual Network).

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

Codebeispiel:

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
    }
}

Verwenden der Referenzdokumentation zum Azure SDK für Go

Nachdem Sie einen Client instanziiert haben, verwenden Sie ihn, um API-Aufrufe an Ihre Azure-Ressourcen zu tätigen. Bei Ressourcenverwaltungsszenarien sind die meisten Anwendungsfälle CRUD-Vorgänge (Erstellen, Lesen, Aktualisieren, Löschen).

Führen Sie die folgenden Schritte aus, um Vorgänge für einen bestimmten Typ zu finden:

  1. Wechseln Sie zur Referenzdokumentation zum Azure SDK für Go.
  2. Suchen Sie nach dem Paket. (Durch Drücken von <STRG+F> werden automatisch alle Knoten auf der Seite für die Suche erweitert.)
  3. Wählen Sie das Paket aus.
  4. Suchen Sie nach dem Typ auf der Seite des Pakets.
  5. Lesen Sie die Beschreibung und Verwendungsinformationen des Typs für Ihren Go-Code.

Sie können die URL auch manuell erstellen, indem Sie den Namen des Pakets github.com/Azure/azure-sdk-for-go/sdk/anfügen.

Wenn Sie beispielsweise die compute/armcompute Referenzdokumentation benötigen, lautet github.com/Azure/azure-sdk-for-go/sdk/compute/armcomputedie URL .

In diesem Beispiel wird gezeigt, wie Sie die Referenzdokumentation für Azure-Ressourcengruppenvorgänge finden:

  1. Wechseln Sie zur Referenzdokumentation zum Azure SDK für go zu pkg.go.dev.
  2. Wählen Sie <STRG+F> aus, und geben Sie resourcemanager/resources/armresources ein. Während Sie den Suchbegriff eingeben, sehen Sie eine genaue Übereinstimmung mit dem resources/armresources-Paket.
  3. Wählen Sie das entsprechende Paket für Ihre Anwendung aus.
  4. Lesen Sie den Abschnitt "Erste Schritte", oder suchen Sie nach einem bestimmten Vorgang. Die Suche nach "resourcegroupsclient.create" (zum Erstellen einer Ressourcengruppe) führt Sie beispielsweise zur CreateOrUpdate-Funktion.
  5. Erfahren Sie, wie Sie den API-Aufruf ausführen, um eine Azure-Ressourcengruppe zu erstellen.

Zeitintensive Vorgänge

Einige Vorgänge können lange dauern, sodass die Verwaltungsbibliotheken Funktionen haben, die lange ausgeführte Vorgänge (LRO) über asynchrone Aufrufe unterstützen. Diese Funktionsnamen beginnen mit Begin, wie BeginCreate und BeginDelete.

Da diese Funktionen asynchron sind, blockiert Ihr Code nicht, während die Funktion ihre Aufgabe beendet. Stattdessen gibt die Funktion ein Pollerobjekt sofort zurück . Der Code ruft dann eine synchrone Pollerfunktion auf, die zurückkehrt, wenn die ursprüngliche asynchrone Funktion abgeschlossen ist.

Der folgende Codeausschnitt zeigt ein Beispiel für dieses Muster.

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.

Die wichtigsten Punkte:

  • Für die PollUntilDone Funktion ist ein Abrufintervall erforderlich, das angibt, wie oft versucht werden soll, den Status abzurufen.
  • Das Intervall ist in der Regel kurz. In der Dokumentation finden Sie die spezifische Azure-Ressource für empfohlene Intervalle.
  • Der LRO-Abschnitt der Seite "Go Azure SDK Design Guidelines" enthält ein erweitertes Beispiel und allgemeine Richtlinien für LRO.

Nächste Schritte