Delen via


Overzicht van de Azure SDK voor Go-beheerbibliotheken

Zoals uitgelegd in het artikel Wat is de Azure SDK voor Go?, bevat de Azure SDK voor Go een set beheer- en clientbibliotheken. De beheerbibliotheken delen veel functies, zoals ondersteuning voor Azure Identity, HTTP-pijplijn en foutafhandeling. U vindt de volledige lijst met de beheerbibliotheken op de azure SDK voor Go-modulepagina.

In dit artikel leert u de basisstappen voor het gebruik van de beheerbibliotheken om te communiceren met Azure-resources.

Go-pakketten installeren

In de meeste projecten installeert u de Go-pakketten voor versiebeheer en afhankelijkheidsbeheer.

Gebruik de go get opdracht om een Go-pakket te installeren.

Als u bijvoorbeeld het armcompute pakket wilt installeren, voert u het volgende uit op de opdrachtregel:

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

In de meeste Go-apps installeert u de volgende pakketten voor verificatie:

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

Pakketten importeren in uw Go-code

Nadat het pakket is gedownload, wordt het in uw app geïmporteerd via de import instructie:

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

Verifiëren bij Azure

Als u code wilt uitvoeren voor een Azure-abonnement, moet u zich verifiëren bij Azure. Het azidentity-pakket ondersteunt meerdere opties voor verificatie bij Azure. Deze opties omvatten client/geheim, certificaat en beheerde identiteit.

De standaardverificatieoptie is DefaultAzureCredential, die gebruikmaakt van de omgevingsvariabelen die eerder in dit artikel zijn ingesteld. In uw Go-code maakt u als volgt een azidentity object:

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

Een Resource Management-client maken

Zodra u een referentie van Azure Identity hebt, maakt u een client om verbinding te maken met de Azure-doelservice.

Stel dat u verbinding wilt maken met de Azure Compute-service . Het rekenpakket bestaat uit een of meer clients. Een client groepeerde een set gerelateerde API's en biedt toegang tot de functionaliteit binnen het opgegeven abonnement. U maakt een of meer clients voor toegang tot de API's die u nodig hebt.

In het volgende codefragment wordt de armcompute weergegeven. Het type NewVirtualMachinesClient wordt gebruikt om een client te maken voor het beheren van virtuele machines:

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

Hetzelfde patroon wordt gebruikt om verbinding te maken met andere Azure-services. Installeer bijvoorbeeld het armnetwork-pakket en maak een virtuele netwerkclient om VNET-resources (virtual network ) te beheren.

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

Codevoorbeeld:

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

Referentiedocumentatie voor Azure SDK voor Go gebruiken

Zodra er een instantie is gemaakt, worden clients gebruikt om API-aanroepen uit te voeren op uw Azure-resources. Voor resourcebeheerscenario's zijn de meeste use-cases CRUD-bewerkingen (Create/Read/Update/Delete).

Voer de volgende stappen uit om de bewerkingen voor een specifiek type op te zoeken:

  1. Blader naar de referentiedocumentatie voor Azure SDK voor Go.
  2. Zoek op de pagina naar het pakket. (Drukken op <Met Ctrl+F> worden automatisch alle knooppunten op de pagina uitgebreid om te zoeken.)
  3. Selecteer het pakket.
  4. Zoek op de pagina van het pakket naar het type.
  5. Lees de beschrijving en informatie van het type over het gebruik ervan in uw Go-code.

U kunt de URL ook handmatig bouwen door de naam van het pakket toe te voegen aan github.com/Azure/azure-sdk-for-go/sdk/.

Als u bijvoorbeeld op zoek bent naar de compute/armcompute referentiedocumentatie, is github.com/Azure/azure-sdk-for-go/sdk/compute/armcomputede URL .

In het volgende voorbeeld ziet u hoe u de referentiedocumentatie voor bewerkingen van Azure-resourcegroepen kunt vinden:

  1. Blader naar de belangrijkste referentiedocumentatie voor Azure SDK voor Go op pkg.go.dev.
  2. Selecteer <Ctrl+F> en voer in resourcemanager/resources/armresources. Terwijl u de zoekterm typt, ziet u een nauwe overeenkomst met het pakket resources/armresources .
  3. Selecteer het juiste pakket voor uw toepassing.
  4. Lees de secties Aan de slag of zoek naar een specifieke bewerking. Als u bijvoorbeeld zoekt naar de term 'resourcegroupsclient.create' (als u een resourcegroep wilt maken), leidt u naar de functie CreateOrUpdate.
  5. Op dit moment kunt u lezen hoe u de API-aanroep maakt om een Azure-resourcegroep te maken.

Langlopende bewerkingen

Aangezien het lang kan duren voordat sommige bewerkingen zijn voltooid, bevatten de beheerbibliotheken functies ter ondersteuning van langlopende bewerkingen (LRO) via asynchrone aanroepen. Deze functienamen beginnen met Begin. Voorbeelden van dit patroon zijn BeginCreate en BeginDelete.

Omdat deze functies asynchroon zijn, wordt uw code pas geblokkeerd als de taak van de functie is voltooid. In plaats daarvan retourneert de functie onmiddellijk een poller-object . Uw code roept vervolgens een synchrone poller-functie aan die wordt geretourneerd wanneer de oorspronkelijke asynchrone functie is voltooid.

In het volgende codefragment ziet u een voorbeeld van dit patroon.

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.

Belangrijkste punten:

  • Voor de PollUntilDone functie is een polling-interval vereist waarmee wordt aangegeven hoe vaak moet worden geprobeerd om de status op te halen.
  • Het interval is doorgaans kort. Raadpleeg de documentatie voor de specifieke Azure-resource voor aanbevolen intervallen.
  • De sectie LRO van de pagina Ontwerprichtlijnen voor Go Azure SDK bevat een geavanceerd voorbeeld en algemene richtlijnen voor LRO.

Volgende stappen