Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Jak wyjaśniono w artykule Co to jest zestaw Azure SDK dla języka Go?, zestaw Azure SDK dla języka Go zawiera zestaw bibliotek zarządzania i klienta. Biblioteki zarządzania udostępniają funkcje, takie jak obsługa tożsamości platformy Azure, potok HTTP i obsługa błędów. Aby uzyskać pełną listę bibliotek zarządzania, zobacz moduł Azure SDK for Go.
W tym artykule przedstawiono podstawowe kroki korzystania z bibliotek zarządzania do interakcji z zasobami platformy Azure.
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 instalujesz 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 pakiety są importowane do aplikacji za pomocą 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 na platformie Azure
Aby uruchomić kod dla subskrypcji platformy Azure, musisz uwierzytelnić się na platformie Azure. Pakiet azidentity obsługuje wiele opcji uwierzytelniania na platformie Azure. Te opcje obejmują klienta/tajny klucz, certyfikat i tożsamość zarządzaną.
Domyślną opcją uwierzytelniania jest DefaultAzureCredential, która używa zmiennych środowiskowych ustawionych wcześniej w tym artykule. W kodzie języka Go utworzysz azidentity obiekt w następujący sposób:
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
// handle error
}
Tworzenie klienta zarządzania zasobami
Po otrzymaniu poświadczeń z usługi Azure Identity utwórz klienta, aby nawiązać połączenie z docelową usługą platformy Azure.
Załóżmy na przykład, że chcesz nawiązać połączenie z usługą Azure Compute . Pakiet obliczeniowy składa się z co najmniej jednego klienta. 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 typ , aby utworzyć klienta do zarządzania maszynami wirtualnymi:
client, err := armcompute.NewVirtualMachinesClient("<subscription ID>", cred, nil)
if err != nil {
// handle error
}
Ten sam wzorzec jest używany do nawiązywania połączenia z innymi usługami platformy Azure. Na przykład zainstaluj pakiet armnetwork i utwórz klienta sieci wirtualnej w celu zarządzania 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
}
}
Dokumentacja referencyjna dotycząca korzystania z zestawu Azure SDK dla języka Go
Po utworzeniu wystąpienia klienta użyj go, aby wykonywać wywołania interfejsu API do zasobów platformy 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, wykonaj następujące kroki:
- Przejdź do dokumentacji referencyjnej zestawu Azure SDK dla języka Go.
- Wyszukaj pakiet. (Naciśnięcie < Ctrl+F> automatycznie rozwija wszystkie węzły na stronie do wyszukiwania).
- Wybierz pakiet.
- Wyszukaj typ na stronie pakietu.
- Przeczytaj opis typu i informacje o użyciu dla kodu języka Go.
Możesz również ręcznie skompilować adres URL, dołączając nazwę pakietu do github.com/Azure/azure-sdk-for-go/sdk/.
Jeśli na przykład chcesz uzyskać dokumentację referencyjną compute/armcompute , adres URL to github.com/Azure/azure-sdk-for-go/sdk/compute/armcompute.
W tym przykładzie pokazano, jak znaleźć dokumentację referencyjną operacji grupy zasobów platformy Azure:
- Przejdź do głównej dokumentacji referencyjnej zestawu Azure SDK dla języka Go w pkg.go.dev.
- Naciśnij <Ctrl+F> i wprowadź polecenie
resourcemanager/resources/armresources. Podczas wpisywania terminu wyszukiwania pojawi się bliskie dopasowanie z pakietem resources/armresources. - Wybierz odpowiedni pakiet dla aplikacji.
- Przeczytaj sekcję "Wprowadzenie" lub wyszukaj określoną operację. Na przykład wyszukiwanie ciągu "resourcegroupsclient.create" (aby utworzyć grupę zasobów) prowadzi do funkcji CreateOrUpdate.
- Przeczytaj, jak wykonać wywołanie interfejsu API w celu utworzenia grupy zasobów platformy Azure.
Długotrwałe operacje
Niektóre operacje mogą trwać długo, więc biblioteki zarządzania mają funkcje, które obsługują długotrwałe operacje (LRO) za pośrednictwem 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. - Interwał jest zwykle krótki. Zapoznaj się z dokumentacją dla określonego zasobu platformy Azure, aby zapoznać się z zalecanymi interwałami.
- Sekcja LRO na stronie Wskazówki dotyczące projektowania zestawu Azure SDK języka Go zawiera bardziej zaawansowany przykład oraz ogólne wskazówki dotyczące LRO.