Přehled knihoven Azure SDK pro Go

Azure SDK for Go zahrnuje knihovny pro správu i klientské knihovny roviny dat. Tento článek obsahuje přehled, abyste pochopili, co jsou knihovny, jak se vejdou do Azure pracovních postupů a kde přejít k dalším vzorům specifickým pro Go.

Knihovny pro správu

Pomocí knihoven pro správu můžete zřizovat, konfigurovat a řídit Azure prostředky. Zaměřují se na správu samotných prostředků, nikoli na data uložená v nich. Knihovny pro správu provádějí operace řídicího plánu, které spravují prostředky Azure a konfiguraci služeb. Mezi typické úlohy patří:

  • Vytváření nebo aktualizace skupin prostředků, virtuálních sítí nebo virtuálních počítačů
  • Konfigurace nastavení zabezpečení, identit, zásad přístupu a diagnostiky
  • Výpis, označování a odstraňování prostředků Azure v rámci předplatného
  • Automatizace nasazení, vyčištění, dodržování předpisů a operací platformy

Balíčky knihovny pro správu mají názvy jako armcompute, armnetworka armkeyvault. Používejte knihovny pro správu během fází instalace, konfigurace a zásad správného řízení životního cyklu aplikace. Podrobnou dokumentaci k balíčku najdete v pkg.go.dev.

Klientské knihovny

Klientské knihovny použijte, když aplikace Go potřebuje pracovat s daty nebo moduly runtime uvnitř již zřízené služby Azure. Klientské knihovny provádějí operace datového plánu, které manipulují s daty uloženými ve službě nebo procházející službou. Mezi typické úlohy patří:

  • Nahrávání a stahování binárních velkých objektů (blob) z účtu úložiště.
  • Odesílání a příjem zpráv pomocí služby Service Bus nebo Event Hubs
  • Čtení, zápis nebo odstraňování záznamů v databázi
  • Načítání tajných kódů z Key Vault
  • Spouštění dotazů nebo operací se zřízenými prostředky

Balíčky klientské knihovny mají názvy jako azblob, , azstorageazsecrets, azservicebus, a azeventhubs. Klientské knihovny použijte po zřízení základní služby Azure pomocí knihoven pro správu. Podrobnou dokumentaci k balíčku najdete v pkg.go.dev.

Použití řídicích a klientských knihoven

Jedno řešení Go může používat jak správu, tak klientské knihovny napříč řídicími rovinami a rovinami dat. Můžete například použít knihovnu pro správu během instalace k vytvoření účtu úložiště (řídicí roviny) a následnému použití klientské knihovny v aplikaci k nahrání a stažení objektů blob (roviny dat). Pochopení rozdílu vám pomůže zvolit správnou knihovnu pro každý úkol v pracovním postupu.

Vzory a příklady specifické pro Go pro každou rovinu najdete v těchto článcích:

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 nainstalujte pro ověřování následující balíčky:

  • 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í balíčků je naimportujte do aplikace pomocí příkazu import :

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

Aplikace Go, které používají knihovny Azure SDK, by se měly ověřovat pomocí Microsoft Entra ID s knihovnou Azure Identity. Ověřování na základě tokenů je bezpečnější a spravovatelné než připojovací řetězce nebo klíče. Doporučené přihlašovací údaje závisí na tom, kde se aplikace spouští: pro aplikace hostované na Azure používejte spravované identity; pro místní vývoj přihlašovací údaje vývojáře nebo instanční objekt; a instanční objekt pro většinu místních scénářů.

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
}

Další informace o ověřování najdete v tématu Azure SDK pro Go - ověřování.

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

Po získání přihlašovacích údajů z Azure Identity vytvořte klienta pro připojení k cílové Azure službě.

Předpokládejme například, že se chcete připojit ke službě Azure Compute. Balíček Kompute 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
}

Další informace o správě prostředků Azure pomocí Jazyka Go najdete v tématu Použití Azure SDK pro operace řídicí roviny.

Stejný vzor použijte pro připojení k jiným službám Azure. Nainstalujte například balíček armnetwork a vytvořte klienta virtual network klienta 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
    }
}

Další informace o použití Azure SDK pro go pro služby Azure najdete v tématu Použití Azure SDK pro operace roviny dat.

Použití úložiště Azure SDK for Go

Po vytvoření instance klienta ho použijte k volání rozhraní API do vašich Azure prostředků. Ve scénářích správy prostředků jsou většinou operace CRUD (vytvoření, čtení, aktualizace, odstranění).

Pokud chcete vyhledat operace pro určitý typ, vyhledejte zdroj v úložišti Azure SDK pro Go GitHub. Zdroj sady SDK je uspořádaný do adresáře sdk/ s knihovnami pro správu v adresáři sdk/resourcemanager/ a klientských knihoven ve složkách specifických pro službu, jako jsou sdk/storage/ a sdk/security/keyvault/.

Chcete-li najít zdroj pro určitý typ, postupujte takto:

  1. Přejděte na úložiště Azure SDK pro Go na GitHub.
  2. Přejděte do sdk/resourcemanager/ knihoven pro správu nebo sdk/ klientských knihoven.
  3. Otevřete složku služby a pak složku balíčku. Například: sdk/resourcemanager/compute/armcompute/.
  4. Najděte zdrojový soubor obsahující požadovaný typ. Typy klientů a jejich metody jsou obvykle v souborech pojmenovaných po klientovi, například virtualmachines_client.go.
  5. Přečtěte si komentáře k typu a signatury metod pro informace o použití.

Adresu URL můžete také vytvořit přímo. Pokud například chcete najít zdroj operací skupiny prostředků, přejděte na https://github.com/Azure/azure-sdk-for-go/tree/main/sdk/resourcemanager/resources/armresources.

Tento příklad ukazuje, jak najít zdroj pro operace s skupinou prostředků Azure:

  1. Přejděte na úložiště Azure SDK pro Go na GitHub.
  2. Přejděte na sdk/resourcemanager/resources/armresources/.
  3. Otevřete resource_groups_client.go a vyhledejte typ ResourceGroupsClient a jeho metodu CreateOrUpdate.
  4. Přečtěte si komentáře a parametry metody, abyste pochopili, jak provést volání rozhraní API.

Vygenerovanou referenční dokumentaci vyhledejte balíček na pkg.go.dev.

Dlouhotrvající operace

Některé operace trvají dlouho, než se dokončí. Pro zpracování těchto operací poskytují knihovny pro správu funkce, které podporují dlouhotrvající operace (LRO) prostřednictvím asynchronních volání. Tyto názvy funkcí začínají písmeny Begin, například 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 PollUntilDone vyžaduje interval dotazování, který určuje, jak často se má pokusit o získání stavu. Výchozí hodnota interval je 30 sekund pokud pro parametr možností předáte nil, ale můžete ho upravit podle svých potřeb.
  • 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 Azure SDK obsahuje pokročilejší příklad a obecné pokyny pro LRO.

Další podrobnosti o vzorech najdete v Příkazy použití v Azure SDK pro Go.

Další kroky

Další informace o ověřování, konstrukci klienta, dlouhotrvajících operacích a vzorech návodů pro služby najdete v článcích specifických pro rovinu:

Příklady najdete v Azure SDK ukázek Go na GitHub.