Přehled knihoven pro správu Azure SDK for Go
Jak je vysvětleno v článku Co je Sada Azure SDK for Go?, sada Azure SDK for 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 modulu Azure SDK for Go.
V tomto článku se dozvíte základní kroky použití knihoven pro správu k interakci s prostředky Azure.
Instalace balíčků Go
Ve většině projektů nainstalujete balíčky Go pro správu verzí a závislostí.
K instalaci balíčku Go použijte go get
příkaz.
Pokud například chcete balíček nainstalovat armcompute
, spusťte na příkazovém řádku následující příkaz:
go get github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute
Vevětšiněch
- github.com/Azure/azure-sdk-for-go/sdk/azcore/to
- github.com/Azure/azure-sdk-for-go/sdk/azidentity
Import balíčků do kódu Go
Po stažení se balíček naimportuje do vaší aplikace pomocí import
příkazu:
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"
)
Ověřování v Azure
Pokud chcete spouštět kód pro předplatné Azure, musíte se ověřit v Azure. Balíček azidentity podporuje více 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. V kódu Go vytvoříte azidentity
objekt následujícím způsobem:
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
// handle error
}
Vytvoření klienta správy prostředků
Jakmile budete mít přihlašovací údaje z identity Azure, vytvořte klienta pro připojení k cílové službě Azure.
Řekněme například, že se chcete připojit ke službě Azure Compute . Výpočetní balíček se skládá z jednoho nebo více klientů. Klient seskupí sadu souvisejících rozhraní API, která poskytují přístup k jeho funkcím v rámci zadaného předplatného. Pro přístup k požadovaným rozhraním API vytvoříte jednoho nebo více klientů.
V následujícím fragmentu kódu armcompute. Typ NewVirtualMachinesClient slouží k vytvoření klienta pro správu virtuálních počítačů:
client, err := armcompute.NewVirtualMachinesClient("<subscription ID>", cred, nil)
if err != nil {
// handle error
}
Stejný model se používá pro připojení k jiným službám Azure. Nainstalujte například balíček armnetwork a vytvořte klienta virtuální sítě pro správu prostředků virtuální sítě.
client, err := armnetwork.NewVirtualNetworksClient("<subscription ID>", cred, nil)
if err != nil {
// handle error
}
Ukázka kódu:
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
}
}
Referenční dokumentace k sadě Azure SDK for Go
Po vytvoření instance se klienti používají k volání rozhraní API pro vaše prostředky Azure. Ve scénářích správy prostředků je většina případů použití operace CRUD (operace CRUD (vytvoření, čtení, aktualizace nebo odstranění).
Pokud chcete vyhledat operace pro konkrétní typ, proveďte následující kroky:
- Přejděte do referenční dokumentace k sadě Azure SDK for Go.
- Vyhledejte balíček na stránce. (Stisknutím klávesy <Kombinace kláves Ctrl+F> automaticky rozbalí všechny uzly na stránce pro vyhledávání.)
- Vyberte balíček.
- Vyhledejte typ na stránce balíčku.
- Přečtěte si popis a informace o jeho použití v kódu Go.
Adresu URL můžete také vytvořit ručně tak, že k github.com/Azure/azure-sdk-for-go/sdk/
němu připojíte název balíčku .
Pokud například hledáte 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:
- Přejděte do hlavní referenční dokumentace k sadě Azure SDK for Go na pkg.go.dev.
- Vyberte <Ctrl+F> a zadejte
resourcemanager/resources/armresources
. Při zadávání hledaného termínu se zobrazí shoda s balíčkem resources/armresources . - Vyberte příslušný balíček pro vaši aplikaci.
- Přečtěte si části Začínáme nebo vyhledejte konkrétní operaci. Hledáním výrazu "resourcegroupsclient.create" (pokud chcete vytvořit skupinu prostředků) například přejdete na funkci CreateOrUpdate.
- V tuto chvíli si můžete přečíst, jak volání rozhraní API vytvořit skupinu prostředků Azure.
Dlouhotrvající operace
Vzhledem k tomu, že dokončení některých operací může trvat dlouho, knihovny pro správu obsahují funkce pro podporu dlouhotrvajících operací (LRO) prostřednictvím asynchronních volání. Tyto názvy funkcí začínají na Begin
. Příklady tohoto modelu jsou BeginCreate
a BeginDelete
.
Vzhledem k tomu, že tyto funkce jsou asynchronní, váš kód neblokuje, dokud funkce nedokončí svůj úkol. Místo toho funkce okamžitě vrátí objekt vrtule . Kód pak zavolá synchronní funkci vrtu, která se vrátí, když se původní asynchronní funkce dokončí.
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", "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.
Klíčové body:
- Funkce
PollUntilDone
vyžaduje interval dotazování, který určuje, jak často se má pokusit o získání stavu. - Interval je obvykle krátký. Doporučené intervaly najdete v dokumentaci ke konkrétnímu prostředku Azure.
- Část LRO na stránce Pokyny k návrhu go sady Azure SDK obsahuje rozšířený příklad a obecné pokyny pro LRO.