Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De Azure SDK voor Go bevat zowel beheerbibliotheken als clientbibliotheken voor gegevensvlakken. Dit artikel bevat een overzicht, zodat u begrijpt wat de bibliotheken zijn, hoe deze in Azure werkstromen passen en waar u naartoe kunt gaan voor specifieke Go-patronen.
Beheerbibliotheken
Gebruik de beheerbibliotheken om Azure resources in te richten, te configureren en te beheren. Ze richten zich op het beheren van de resources zelf in plaats van de gegevens die erin zijn opgeslagen. Beheerbibliotheken voeren beheervlakbewerkingen uit, waarmee Azure resources en serviceconfiguratie worden beheerd. Typische taken zijn onder andere:
- Het maken of bijwerken van resourcegroepen, virtuele netwerken of virtuele machines.
- Beveiligingsinstellingen, identiteiten, toegangsbeleid en diagnostische gegevens configureren.
- Het weergeven, taggen en verwijderen van Azure resources in een abonnement.
- Implementatie-, opschonings-, nalevings- en platformbewerkingen automatiseren.
Beheerbibliotheekpakketten hebben namen zoals armcompute, armnetworken armkeyvault. Gebruik beheerbibliotheken tijdens de installatie-, configuratie- en governancefasen van een toepassingslevenscyclus. Zoek naar het pakket op pkg.go.dev voor gedetailleerde pakketdocumentatie.
Clientbibliotheken
Gebruik de clientbibliotheken wanneer uw Go-toepassing moet werken met gegevens- of runtimeoppervlakken binnen een al ingerichte Azure-service. Clientbibliotheken voeren gegevensvlakbewerkingen uit, die werken met de gegevens die zijn opgeslagen in of stromen via een service. Typische taken zijn onder andere:
- Blobs uploaden en downloaden vanuit een opslagaccount.
- Berichten verzenden en ontvangen met Service Bus of Event Hubs.
- Records lezen, schrijven of verwijderen in een database.
- Geheimen ophalen uit Key Vault.
- Query's of bewerkingen uitvoeren op toegewezen middelen.
Clientbibliotheekpakketten hebben namen zoals azblob, azstorage, azsecrets, azservicebus en azeventhubs. Gebruik clientbibliotheken nadat u de onderliggende Azure-service al hebt ingericht met behulp van beheerbibliotheken. Zoek naar het pakket op pkg.go.dev voor gedetailleerde pakketdocumentatie.
Beheer- en clientbibliotheken gebruiken
Eén Go-oplossing kan zowel beheer- als clientbibliotheken gebruiken in besturings- en gegevensvlakken. U kunt bijvoorbeeld een beheerbibliotheek gebruiken tijdens de installatie om een opslagaccount (besturingsvlak) te maken en vervolgens een clientbibliotheek in de toepassing gebruiken om blobs (gegevensvlak) te uploaden en te downloaden. Als u het onderscheid begrijpt, kunt u de juiste bibliotheek kiezen voor elke taak in uw werkstroom.
Zie de volgende artikelen voor Go-specifieke patronen en voorbeelden voor elk vliegtuig:
- Gebruik de Azure SDK voor Go voor besturingsvlakbewerkingen.
- Gebruik de Azure SDK voor Go voor gegevensvlakbewerkingen.
Go-pakketten installeren
In de meeste projecten installeert u de Go-pakketten voor versiebeheer en afhankelijkheidsbeheer.
Voer de go get opdracht uit om een Go-pakket te installeren.
Voer bijvoorbeeld de volgende opdracht uit om het armcompute pakket te installeren:
go get github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute
Installeer in de meeste Go-apps 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 u de pakketten hebt gedownload, importeert u ze in uw app met behulp van 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
Go-apps die gebruikmaken van Azure SDK-bibliotheken moeten worden geverifieerd met behulp van Microsoft Entra ID met de Azure Identiteitsbibliotheek. Verificatie op basis van tokens is veiliger en beheerbaarer dan verbindingsreeksen of sleutels. De aanbevolen referentie is afhankelijk van waar de app wordt uitgevoerd: beheerde identiteiten gebruiken voor Azure gehoste apps, ontwikkelaarsreferenties of een service-principal voor lokale ontwikkeling en een service-principal voor de meeste on-premises scenario's.
De standaardverificatieoptie is DefaultAzureCredential, die gebruikmaakt van de omgevingsvariabelen die eerder in dit artikel zijn ingesteld. Maak in uw Go-code als volgt een azidentity object:
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
// handle error
}
Zie Azure SDK voor Go-verificatie voor meer informatie over verificatie.
Een Resource Management-client maken
Nadat u een referentie hebt opgehaald uit Azure Identity, maakt u een client om verbinding te maken met de doel-Azure-service.
Stel dat u verbinding wilt maken met de service Azure Compute. Het pakket Compute bestaat uit een of meer clients. Een client groepeert 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.
De volgende code maakt gebruik van de armcompute. Type NewVirtualMachinesClient om een client te maken voor het beheren van virtuele machines:
client, err := armcompute.NewVirtualMachinesClient("<subscription ID>", cred, nil)
if err != nil {
// handle error
}
Zie Gebruik de Azure SDK voor Go voor besturingsvlakbewerkingen voor meer informatie over het beheren van Azure resources met Go.
Gebruik hetzelfde patroon om verbinding te maken met andere Azure-services. Installeer bijvoorbeeld het armnetwork-pakket en maak een virtual netwerk client voor het beheren van virtuele netwerkbronnen.
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("<subscription ID>", cred, nil)
if err != nil {
// handle error
}
}
Zie voor meer informatie over het gebruik van de Azure SDK voor Go voor Azure-services De Azure SDK voor Go gebruiken voor bewerkingen in het gegevensvlak.
De Azure SDK voor Go-opslagplaats gebruiken
Nadat u een client hebt geïnstitueer, gebruikt u deze om API-aanroepen te maken naar uw Azure resources. Voor resourcebeheerscenario's zijn de meeste gebruiksvoorbeelden CRUD-bewerkingen (maken, lezen, bijwerken, verwijderen).
Als u bewerkingen voor een specifiek type wilt zoeken, bladert u door de bron in de Azure SDK voor Go GitHub-opslagplaats. De SDK-bron is ingedeeld onder de map sdk/, met beheerbibliotheken onder sdk/resourcemanager/ en clientbibliotheken in servicespecifieke mappen, zoals sdk/storage/ en sdk/security/keyvault/.
Voer de volgende stappen uit om de bron voor een specifiek type te vinden:
- Ga naar de Azure SDK for Go repository op GitHub.
- Navigeer naar
sdk/resourcemanager/beheerbibliotheken ofsdk/voor clientbibliotheken. - Open de servicemap en vervolgens de pakketmap. Bijvoorbeeld:
sdk/resourcemanager/compute/armcompute/. - Zoek het bronbestand met het type dat u nodig hebt. Clienttypen en hun methoden zijn meestal in bestanden met de naam van de client, zoals
virtualmachines_client.go. - Lees de opmerkingen en methodesignaturen van het type voor gebruiksinformatie.
U kunt de URL ook rechtstreeks bouwen. Ga bijvoorbeeld naar https://github.com/Azure/azure-sdk-for-go/tree/main/sdk/resourcemanager/resources/armresources om de bron van de resourcegroepbewerkingen te vinden.
In dit voorbeeld ziet u hoe u de bron voor Azure resourcegroepbewerkingen kunt vinden:
- Ga naar de Azure SDK voor Go-repository op GitHub.
- Navigeer naar
sdk/resourcemanager/resources/armresources/. - Open
resource_groups_client.goom het typeResourceGroupsClienten de bijbehorende methodeCreateOrUpdatete vinden. - Lees de opmerkingen en parameters van de methode om te begrijpen hoe u de API-aanroep maakt.
Zoek naar het pakket op pkg.go.dev voor gegenereerde referentiedocumentatie.
Langlopende bewerkingen
Het duurt lang voordat sommige bewerkingen zijn voltooid. Voor het afhandelen van deze bewerkingen bieden de beheerbibliotheken functies die ondersteuning bieden voor langlopende bewerkingen (LRO) via asynchrone aanroepen. Deze functienamen beginnen met Begin, zoals BeginCreate en BeginDelete.
Omdat deze functies asynchroon zijn, wordt uw code niet geblokkeerd terwijl de functie de taak heeft 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
PollUntilDonefunctie is een polling-interval vereist waarmee wordt aangegeven hoe vaak moet worden geprobeerd om de status op te halen. De interval wordt standaard ingesteld op 30 seconden als unildoorgeeft voor de parameter opties, maar u kunt deze aanpassen op basis van uw behoeften. - Het interval is doorgaans kort. Raadpleeg de documentatie voor de specifieke Azure resource voor aanbevolen intervallen.
- De sectie LRO van de pagina Go Azure SDK Ontwerprichtlijnen heeft een geavanceerder voorbeeld en algemene richtlijnen voor LRO.
Zie de Common-gebruikspatronen in Azure SDK voor Go voor meer informatie over patronen.
Volgende stappen
Zie de vlakspecifieke artikelen voor meer informatie over verificatie, clientconstructie, langdurige werking en service-walkthroughpatronen:
- Gebruik de Azure SDK voor Go voor besturingsvlakbewerkingen voor beheergerichte Go-werkstromen.
- Gebruik de Azure SDK voor Go voor bewerkingen in het gegevensvlak voor runtimegegevenstoegangspatronen die vaak volgen op inrichting.
Zie Azure SDK voor Go-voorbeelden op GitHub voor voorbeelden.