Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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í funkce, jako je podpora identit Azure, kanál HTTP a zpracování chyb. Úplný seznam knihoven pro správu najdete v modulu Azure SDK for Go.
V tomto článku se dozvíte základní kroky, jak používat knihovny 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í.
Pokud chcete nainstalovat balíček Go, spusťte go get příkaz.
Pokud například chcete balíček nainstalovat armcompute , spusťte následující příkaz:
go get github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute
Ve většině aplikací Go instalujete následující balíčky pro autentizaci:
- 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íčky naimportují 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 z identity Azure získáte přihlašovací údaje, 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ů.
Následující kód používá armcompute. Typ NewVirtualMachinesClient pro 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("<subscription ID>", cred, nil)
if err != nil {
// handle error
}
}
Referenční dokumentace k Azure SDK pro Go
Po vytvoření instance klienta ho použijte k volání rozhraní API k prostředkům Azure. Ve scénářích správy prostředků jsou většinou operace CRUD (vytvoření, čtení, aktualizace, odstranění).
Chcete-li najít operace pro určitý typ, postupujte takto:
- Přejděte do referenční dokumentace k sadě Azure SDK for Go.
- Vyhledejte balíček. (Stisknutím <Ctrl+F> se 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 typu a informace o využití 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 chcete compute/armcompute referenční dokumentaci, adresa URL je github.com/Azure/azure-sdk-for-go/sdk/compute/armcompute.
Tento příklad ukazuje, jak najít referenční dokumentaci pro operace skupin prostředků Azure:
- Přejděte na hlavní referenční dokumentaci 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 vidíte blízkou shodu s balíčkem resources/armresources. - Vyberte příslušný balíček pro vaši aplikaci.
- Přečtěte si část Začínáme nebo vyhledejte konkrétní operaci. Například při hledání "resourcegroupsclient.create" (pro vytvoření skupiny prostředků) se zobrazí funkce CreateOrUpdate.
- Přečtěte si, jak volání rozhraní API vytvořit skupinu prostředků Azure.
Dlouhotrvající operace
Dokončení některých operací může trvat dlouho, takže knihovny pro správu mají funkce, které podporují dlouhotrvající operace (LRO) prostřednictvím asynchronních volání. Tyto názvy funkcí začínají písmeny Begin, like BeginCreate a BeginDelete.
Vzhledem k tomu, že tyto funkce jsou asynchronní, váš kód neblokuje, zatímco funkce dokončí svou úlohu. Místo toho funkce okamžitě vrátí objekt poller. Kód pak zavolá synchronní funkci polleru, 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
PollUntilDonevyž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 Návrhové pokyny pro Azure SDK Go obsahuje pokročilejší příklad a obecné pokyny pro LRO.