Az Azure SDK for Go felügyeleti kódtárainak áttekintése
Amint azt a Go-hoz készült Azure SDK című cikk ismerteti, az Azure SDK for Go felügyeleti és ügyfélkódtárakat tartalmaz. A felügyeleti kódtárak számos funkcióval rendelkeznek, például az Azure Identity támogatásával, a HTTP-folyamattal és a hibakezeléssel. A felügyeleti kódtárak teljes listáját az Azure SDK for Go modul oldalán találja.
Ebben a cikkben megismerheti, hogyan használhatja a felügyeleti kódtárakat az Azure-erőforrások kezeléséhez.
Go-csomagok telepítése
A legtöbb projektben a verziószámozáshoz és a függőségkezeléshez telepíti a Go-csomagokat.
Go-csomag telepítéséhez használja a go get
parancsot.
A csomag telepítéséhez armcompute
például a következőt kell futtatnia a parancssorban:
go get github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute
A legtöbb Go-alkalmazásban a következő csomagokat telepíti hitelesítésre:
- github.com/Azure/azure-sdk-for-go/sdk/azcore/to
- github.com/Azure/azure-sdk-for-go/sdk/azidentity
Csomagok importálása a Go-kódba
Miután letöltötte a csomagot, az alábbi utasítással importálja a csomagot az import
alkalmazásba:
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"
)
Hitelesítés az Azure-ba
Ha kódot szeretne futtatni egy Azure-előfizetésen, hitelesítenie kell magát az Azure-ban. Az azidentity csomag több lehetőséget is támogat az Azure-beli hitelesítéshez. Ezek a lehetőségek közé tartozik az ügyfél/titkos kód, a tanúsítvány és a felügyelt identitás.
Az alapértelmezett hitelesítési beállítás a DefaultAzureCredential, amely a cikkben korábban beállított környezeti változókat használja. A Go-kódban az alábbiak szerint hozhat létre objektumot azidentity
:
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
// handle error
}
Erőforrás-kezelési ügyfél létrehozása
Miután rendelkezik az Azure Identity hitelesítő adataival, hozzon létre egy ügyfelet a cél Azure-szolgáltatáshoz való csatlakozáshoz.
Tegyük fel például, hogy csatlakozni szeretne az Azure Compute szolgáltatáshoz. A Számítási csomag egy vagy több ügyfélből áll. Az ügyfél egy kapcsolódó API-kat csoportosít, amelyek hozzáférést biztosítanak a funkcióhoz a megadott előfizetésen belül. Hozzon létre egy vagy több ügyfelet a szükséges API-k eléréséhez.
A következő kódrészletben az armcompute. A NewVirtualMachinesClient típussal létrehoz egy ügyfelet a virtuális gépek kezeléséhez:
client, err := armcompute.NewVirtualMachinesClient("<subscription ID>", cred, nil)
if err != nil {
// handle error
}
Ugyanezzel a mintával csatlakozhat más Azure-szolgáltatásokhoz is. Telepítse például az armnetwork csomagot, és hozzon létre egy virtuális hálózati ügyfelet a virtuális hálózati erőforrások kezeléséhez.
client, err := armnetwork.NewVirtualNetworksClient("<subscription ID>", cred, nil)
if err != nil {
// handle error
}
Kódminta:
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
}
}
Az Azure SDK for Go referenciadokumentációjának használata
A példányosítás után az ügyfelek API-hívásokat kezdeményeznek az Azure-erőforrásokon. Erőforrás-kezelési forgatókönyvek esetén a legtöbb használati eset CRUD (létrehozási/olvasási/frissítési/törlési) műveletek.
Egy adott típus műveleteinek kereséséhez hajtsa végre a következő lépéseket:
- Keresse meg az Azure SDK for Go referenciadokumentációját.
- Keresse meg a csomagot a lapon. (Nyomja le a <A Ctrl+F> billentyűkombináció automatikusan kibontja a lapon lévő összes csomópontot a kereséshez.)
- Válassza ki a csomagot.
- Keresse meg a típust a csomag oldalán.
- Olvassa el a típus leírását és a használattal kapcsolatos információkat a Go-kódban.
Az URL-címet manuálisan is létrehozhatja a csomag github.com/Azure/azure-sdk-for-go/sdk/
nevének hozzáfűzésével.
Ha például a compute/armcompute
referenciadokumentációt keresi, az URL-cím a következő github.com/Azure/azure-sdk-for-go/sdk/compute/armcompute
: .
Az alábbi példa bemutatja, hogyan keresheti meg az Azure-erőforráscsoport-műveletek referenciadokumentációját:
- Keresse meg az Azure SDK for Go fő referenciadokumentációját a pkg.go.dev.
- Válassza a Ctrl+F billentyűkombinációt<, és írja be az enter billentyűt
resourcemanager/resources/armresources
.> A keresési kifejezés beírása közben az erőforrások/armresources-csomag szoros egyezése jelenik meg. - Válassza ki az alkalmazásnak megfelelő csomagot.
- Olvassa el az "Első lépések" szakaszokat, vagy keressen rá egy adott műveletre. Ha például a "resourcegroupsclient.create" kifejezést keresi (ha erőforráscsoportot szeretne létrehozni), a CreateOrUpdate függvényhez vezet.
- Ezen a ponton megtudhatja, hogyan hívhatja meg az API-t egy Azure-erőforráscsoport létrehozásához.
Hosszú ideig futó műveletek
Mivel egyes műveletek végrehajtása hosszú időt vehet igénybe, a felügyeleti kódtárak olyan függvényeket tartalmaznak, amelyek támogatják a hosszú ideig futó műveleteket (LRO) aszinkron hívásokon keresztül. Ezek a függvénynevek a következőkből indulnak Begin
ki: . Példák erre a mintára: BeginCreate
és BeginDelete
.
Mivel ezek a függvények aszinkronok, a kód csak akkor tiltja le a kódot, ha a függvény befejezi a feladatát. Ehelyett a függvény azonnal visszaad egy poller objektumot. A kód ezután meghív egy szinkron poller függvényt, amely az eredeti aszinkron függvény befejeződésekor ad vissza.
Az alábbi kódrészlet erre a mintára mutat példát.
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.
Főbb pontok:
- A
PollUntilDone
függvényhez lekérdezési időköz szükséges, amely meghatározza, hogy milyen gyakran próbálja meg lekérni az állapotot. - Az időköz általában rövid. A javasolt időközökért tekintse meg az adott Azure-erőforrás dokumentációját.
- A Go Azure SDK tervezési irányelvei oldal LRO szakasza speciális példát és általános irányelveket mutat be az LRO-hoz.