Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure SDK dla języka Go obejmuje biblioteki zarządzania i biblioteki klienta płaszczyzny danych. Ten artykuł zawiera omówienie, dzięki czemu można zrozumieć, czym są biblioteki, jak pasują do Azure przepływów pracy i gdzie przejść dalej dla wzorców specyficznych dla języka Go.
Biblioteki zarządzania
Użyj bibliotek zarządzania, aby aprowizować, konfigurować i zarządzać zasobami Azure. Koncentrują się na zarządzaniu zasobami, a nie na danych przechowywanych w nich. Biblioteki zarządzania wykonują operacje warstwy sterowania, które zarządzają zasobami Azure i konfiguracją usługi. Typowe zadania obejmują:
- Tworzenie lub aktualizowanie grup zasobów, sieci wirtualnych lub maszyn wirtualnych.
- Konfigurowanie ustawień zabezpieczeń, tożsamości, zasad dostępu i diagnostyki.
- Listowanie, tagowanie i usuwanie zasobów Azure w ramach subskrypcji.
- Automatyzowanie wdrażania, czyszczenia, zgodności i operacji platformy.
Pakiety bibliotek zarządzania mają nazwy, takie jak armcompute, armnetworki armkeyvault. Użyj bibliotek zarządzania w fazach wdrażania, konfiguracji i zarządzania cyklem życia aplikacji. Aby uzyskać szczegółową dokumentację pakietu, wyszukaj pakiet w pkg.go.dev.
Biblioteki klienta
Użyj bibliotek klienckich, gdy aplikacja Go musi pracować z danymi lub elementami środowiska uruchomieniowego wewnątrz już istniejącej usługi Azure. Biblioteki klienckie wykonują operacje płaszczyzny danych, które współpracują z danymi przechowywanymi w usłudze lub przepływającymi przez nią. Typowe zadania obejmują:
- Przekazywanie i pobieranie obiektów blob z konta storage.
- Wysyłanie i odbieranie komunikatów za pomocą usługi Service Bus lub Event Hubs.
- Odczytywanie, zapisywanie lub usuwanie rekordów w bazie danych.
- Pobieranie tajemnic z usługi Key Vault.
- Wykonywanie zapytań lub operacji względem zaaprowizowanych zasobów.
Pakiety bibliotek klienta mają nazwy, takie jak azblob, , azstorageazsecrets, azservicebusi azeventhubs. Użyj bibliotek klienckich po aprowizacji podstawowej usługi Azure przy użyciu bibliotek zarządzania. Aby uzyskać szczegółową dokumentację pakietu, wyszukaj pakiet w pkg.go.dev.
Korzystanie zarówno z bibliotek zarządzania, jak i klienta
Pojedyncze rozwiązanie języka Go może używać zarówno bibliotek zarządzania, jak i bibliotek klienckich w płaszczyznach kontroli i danych. Na przykład możesz użyć biblioteki zarządzania podczas konfiguracji, aby utworzyć konto magazynu (płaszczyzna sterowania), a następnie użyć biblioteki klienta w aplikacji do przekazywania i pobierania blobów (płaszczyzna danych). Zrozumienie rozróżnienia pomaga wybrać odpowiednią bibliotekę dla każdego zadania w przepływie pracy.
Aby zapoznać się z wzorcami specyficznymi dla języka Go i przykładami dla każdej płaszczyzny, zobacz następujące artykuły:
- Użyj Azure SDK dla operacji płaszczyzny sterowania.
- Użyj Azure SDK do operacji na płaszczyźnie danych.
Instalowanie pakietów języka Go
W większości projektów instalowane są pakiety Języka Go na potrzeby zarządzania wersjami i zależnościami.
Aby zainstalować pakiet Języka Go, uruchom go get polecenie .
Aby na przykład zainstalować armcompute pakiet, uruchom następujące polecenie:
go get github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute
W większości aplikacji języka Go zainstaluj następujące pakiety na potrzeby uwierzytelniania:
- github.com/Azure/azure-sdk-for-go/sdk/azcore/to
- github.com/Azure/azure-sdk-for-go/sdk/azidentity
Importowanie pakietów do kodu języka Go
Po pobraniu pakietów zaimportuj je do aplikacji przy użyciu instrukcji 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"
)
Uwierzytelnianie w Azure
Aplikacje Go korzystające z bibliotek Azure SDK powinny być uwierzytelniane za pomocą Microsoft Entra ID w połączeniu z biblioteką Azure Identity. Uwierzytelnianie oparte na tokenach jest bezpieczniejsze i możliwe do zarządzania niż parametry połączenia lub klucze. Zalecane poświadczenia zależą od tego, gdzie działa aplikacja: użyj tożsamości zarządzanych dla aplikacji hostowanych na platformie Azure, poświadczeń dewelopera lub głównej jednostki usługi na potrzeby projektowania lokalnego oraz głównej jednostki usługi dla większości scenariuszy lokalnych.
Domyślną opcją uwierzytelniania jest DefaultAzureCredential, która używa zmiennych środowiskowych ustawionych wcześniej w tym artykule. W kodzie języka Go utwórz azidentity obiekt w następujący sposób:
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
// handle error
}
Aby uzyskać więcej informacji na temat uwierzytelniania, zobacz Azure SDK na potrzeby uwierzytelniania języka Go.
Tworzenie klienta zarządzania zasobami
Po otrzymaniu poświadczeń z Azure Identity utwórz klienta, aby nawiązać połączenie z docelową usługą Azure.
Załóżmy na przykład, że chcesz nawiązać połączenie z usługą Azure Compute. Pakiet Compute zawiera jednego lub więcej klientów. Klient grupuje zestaw powiązanych interfejsów API, zapewniając dostęp do jego funkcji w ramach określonej subskrypcji. Aby uzyskać dostęp do potrzebnych interfejsów API, należy utworzyć co najmniej jednego klienta.
Poniższy kod używa armcompute. NewVirtualMachinesClient type aby utworzyć klienta do zarządzania maszynami wirtualnymi:
client, err := armcompute.NewVirtualMachinesClient("<subscription ID>", cred, nil)
if err != nil {
// handle error
}
Aby uzyskać więcej informacji na temat zarządzania zasobami Azure za pomocą języka Go, zobacz Użyj Azure SDK dla języka Go na potrzeby operacji płaszczyzny sterowania.
Użyj tego samego wzorca, aby nawiązać połączenie z innymi usługami Azure. Na przykład zainstaluj pakiet armnetwork i utwórz sieć wirtualną aby zarządzać zasobami sieci wirtualnej.
client, err := armnetwork.NewVirtualNetworksClient("<subscription ID>", cred, nil)
if err != nil {
// handle error
}
Przykładowy kod:
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
}
}
Aby uzyskać więcej informacji na temat używania Azure SDK dla języka Go dla usług Azure, zobacz Użyj Azure SDK dla języka Go na potrzeby operacji płaszczyzny danych.
Korzystanie z repozytorium Azure SDK for Go
Po utworzeniu wystąpienia klienta użyj go, aby wykonać wywołania interfejsu API do zasobów Azure. W przypadku scenariuszy zarządzania zasobami większość przypadków użycia to operacje CRUD (tworzenie, odczytywanie, aktualizowanie i usuwanie).
Aby znaleźć operacje dla określonego typu, przeglądaj źródła w repozytorium GitHub Azure SDK dla Go. Źródło zestawu SDK jest zorganizowane w katalogu sdk/ z bibliotekami zarządzania w obszarze sdk/resourcemanager/ i bibliotek klienckich w folderach specyficznych dla usługi, takich jak sdk/storage/ i sdk/security/keyvault/.
Aby zlokalizować źródło dla określonego typu, wykonaj następujące kroki:
- Przejdź do repozytorium Azure SDK for Go w GitHub.
- Przejdź do
sdk/resourcemanager/bibliotek zarządzania lubsdk/bibliotek klienckich. - Otwórz folder usługi, a następnie folder pakietu. Na przykład
sdk/resourcemanager/compute/armcompute/. - Znajdź plik źródłowy zawierający potrzebny typ. Typy klientów i ich metody są zwykle w plikach nazwanych po kliencie, takich jak
virtualmachines_client.go. - Przeczytaj komentarze typu i sygnatury metod, aby uzyskać informacje dotyczące użycia.
Możesz również skompilować adres URL bezpośrednio. Aby na przykład znaleźć źródło operacji grupy zasobów, przejdź do https://github.com/Azure/azure-sdk-for-go/tree/main/sdk/resourcemanager/resources/armresources.
Ten przykład pokazuje, jak znaleźć dokumentację dla operacji grupy zasobów Azure.
- Przejdź do repozytorium Azure SDK for Go w GitHub.
- Przejdź do
sdk/resourcemanager/resources/armresources/. - Otwórz
resource_groups_client.go, aby znaleźć typResourceGroupsClienti jego metodęCreateOrUpdate. - Przeczytaj komentarze i parametry metody, aby dowiedzieć się, jak wykonać wywołanie interfejsu API.
Aby uzyskać wygenerowaną dokumentację referencyjną, wyszukaj pakiet na pkg.go.dev.
Długotrwałe operacje
Ukończenie niektórych operacji trwa długo. Aby obsłużyć te operacje, biblioteki zarządzania udostępniają funkcje, które obsługują długotrwałe operacje (LRO) za pomocą wywołań asynchronicznych. Te nazwy funkcji zaczynają się od Begin, takich jak BeginCreate i BeginDelete.
Ponieważ te funkcje są asynchroniczne, kod nie blokuje się, gdy funkcja kończy swoje zadanie. Zamiast tego funkcja natychmiast zwraca obiekt poller . Następnie kod wywołuje synchroniczną funkcję poller, która jest zwracana po zakończeniu oryginalnej funkcji asynchronicznej.
Poniższy fragment kodu przedstawia przykład tego wzorca.
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.
Kluczowe punkty:
- Funkcja
PollUntilDonewymaga interwału sondowania, który określa, jak często powinna próbować sprawdzić status. Wartość domyślna interval to 30 sekund jeśli prześleszniljako parametr options, ale możesz go dostosować w zależności od potrzeb. - Interwał jest zwykle krótki. Zapoznaj się z dokumentacją dotyczącą określonego zasobu Azure, aby zapoznać się z zalecanymi interwałami.
- Sekcja LRO na stronie Wytyczne dotyczące projektowania języka Go Azure SDK zawiera bardziej zaawansowany przykład i ogólne wytyczne dotyczące LRO.
Aby uzyskać więcej informacji na temat wzorców, zobacz wzorce użycia Common w Azure SDK dla języka Go.
Dalsze kroki
Aby uzyskać więcej informacji na temat uwierzytelniania, konstrukcji klienta, operacji długoterminowych oraz wzorców obsługi usług, zobacz artykuły dotyczące płaszczyzny:
- Użyj Azure SDK dla języka Go do operacji związanych z płaszczyzną sterowania dla zarządzania przepływami pracy w języku Go.
- Użyj Azure SDK dla Go do operacji warstwy danych w kontekście wzorców dostępu do danych podczas działania aplikacji, które często następują po aprowizacji.
Aby zapoznać się z przykładami, zobacz