Práce s knihovnami pro správu Azure SDK pro Go

Jak je vysvětleno v článku co je Azure SDK pro go?, Azure SDK pro go obsahuje sadu knihoven pro správu a klienta. Knihovny pro správu sdílejí mnoho funkcí, jako je podpora identit Azure, kanál HTTP a zpracování chyb. Úplný seznam knihoven pro správu najdete na stránce Azure SDK pro go modul.

V tomto článku se seznámíte se základními kroky, jak používat knihovny pro správu k interakci s prostředky Azure.

Instalují se balíčky pro cestách.

Ve většině projektů nainstalujete balíčky přejít pro správu verzí a závislostí.

K instalaci balíčku přejít použijte go get příkaz.

Například pro instalaci armcompute balíčku spusťte na příkazovém řádku následující příkaz:

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

Ve většině aplikací směřuje nainstalujete následující balíčky pro ověřování a základní funkce:

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

Import balíčků do kódu na cestách

Po stažení se balíček do vaší aplikace naimportuje pomocí import příkazu:

import (
    "github.com/Azure/azure-sdk-for-go/sdk/armcore"
    "github.com/Azure/azure-sdk-for-go/sdk/resources/armresources"
    "github.com/Azure/azure-sdk-for-go/sdk/azidentity"
    "github.com/Azure/azure-sdk-for-go/sdk/to"
)

Ověřování do Azure

Pokud chcete spustit kód v rámci předplatného Azure, musíte se přihlásit k Azure. Balíček azidentity podporuje několik možností ověřování v Azure. Mezi tyto možnosti patří klient, tajný klíč, certifikát a spravovaná identita.

Výchozí možnost ověřování je DefaultAzureCredential, která používá proměnné prostředí nastavené dříve v tomto článku. Ve vašem kódu, vytvoříte azidentity objekt následujícím způsobem:

cred, err := azidentity.NewDefaultAzureCredential(nil)

Připojování k Azure

Jakmile budete mít pověření – například azidentity objekt, vytvoříte připojení k cílovému koncovému bodu správy prostředků Azure. Balíček armcore poskytuje zařízení pro připojení k koncovým bodům Azure Resource Manager. Mezi tyto koncové body patří veřejné a svrchované cloudy a Azure Stack.

con := armcore.NewDefaultConnection(cred, nil)

Vytvoření klienta správy prostředků

Jakmile budete mít připojení k Azure Resource Manager, vytvořte klienta pro připojení k cílové službě Azure.

Řekněme například, že se chcete připojit ke službě COMPUTE Azure . Balíček COMPUTE se skládá z jednoho nebo více klientů. Klient seskupuje sadu souvisejících rozhraní API a poskytuje přístup k jeho funkci v rámci zadaného předplatného. Vytvoříte jednoho nebo více klientů pro přístup k rozhraním API, která požadujete pomocí armcore.Connection objektu.

V následujícím fragmentu kódu armcompute. Typ NewVirtualMachinesClient se používá k vytvoření klienta pro správu virtuálních počítačů:

client := armcompute.NewVirtualMachinesClient(con, "<subscription ID>")

Stejný vzor se používá pro připojení k ostatním službám Azure. Například nainstalujte balíček armnetwork a vytvořte klienta VirtualNetwork pro správu prostředků virtuální sítě (VNET).

client := armnetwork.NewVirtualNetworksClient(con, "<subscription ID>")

Použití referenční dokumentace Azure SDK pro Go

Po vytvoření instance se klienti použijí k zajištění volání rozhraní API pro vaše prostředky Azure. V případě scénářů správy prostředků je většina případů použití operace CRUD (operace vytvoření, čtení, aktualizace/odstranění).

Chcete-li vyhledat operace pro určitý typ, proveďte následující kroky:

  1. Přejděte do Referenční dokumentace k Azure SDK pro go.
  2. Vyhledat na stránce Typ (Stisknutím klávesy F > automaticky rozbalíte všechny uzly na stránce pro hledání.)
  3. Vyberte balíček.
  4. Pro daný typ vyhledejte stránku balíčku.
  5. Přečtěte si popis typu a informace o jeho využití v kódu jazyka.

Můžete také ručně vytvořit adresu URL připojením názvu balíčku k github.com/Azure/azure-sdk-for-go/sdk/ .

Pokud hledáte například compute/armcompute referenční dokumentaci, adresa URL je github.com/Azure/azure-sdk-for-go/sdk/compute/armcompute .

Následující příklad ukazuje, jak najít referenční dokumentaci pro operace skupiny prostředků Azure:

  1. Přejděte na hlavní Azure SDK pro Go odkaz na pkg.go.dev.
  2. Rozbalte arm adresář
  3. Vyberte armresources
  4. Klikněte na > F a zadejte resourcegroup . Při psaní hledaného termínu se zobrazí Přibližná shoda s balíčkem Resource/armresources .
  5. Vyberte příslušný balíček pro vaši aplikaci.
  6. Přečtěte si část "Začínáme" nebo vyhledejte konkrétní operaci. Pokud třeba vyhledáte termín "vytvořit" (Pokud chcete vytvořit skupinu prostředků), budete mít na CreateOrUpdate funkci.
  7. V tomto okamžiku si můžete přečíst, jak se dá volat rozhraní API k vytvoření skupiny prostředků Azure.

Dlouhodobě běžící operace

Protože dokončení některých operací může trvat dlouhou dobu, knihovny pro správu obsahují funkce pro podporu dlouhotrvajících operací (LRO) prostřednictvím asynchronních volání. Názvy těchto funkcí začínají na Begin . Příklady tohoto modelu jsou BeginCreate a BeginDelete .

Jelikož jsou tyto funkce asynchronní, váš kód neblokuje, dokud funkce nedokončí svou úlohu. Místo toho funkce vrátí objekt cyklického dotazování okamžitě. Váš kód pak zavolá synchronní funkci cyklického dotazování, která se vrátí, když je původní asynchronní funkce dokončena.

Následující fragment kódu ukazuje příklad tohoto vzoru.

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", "additonal_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, 5*time.Second)
if err != nil {
	// handle error...
}

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

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

Klíčové body:

  • PollUntilDoneFunkce vyžaduje interval dotazování, který určuje, jak často se má pokusit získat stav.
  • Interval je obvykle krátký. Doporučené intervaly najdete v dokumentaci ke konkrétnímu prostředku Azure.
  • Část LRO stránky s pokyny pro navrhování návrhu sady Azure SDK obsahuje pokročilý příklad přesunutí a obecné pokyny pro LRO.

Další kroky