Megosztás a következőn keresztül:


Az Azure SDK for Go felügyeleti kódtárainak használata

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 szükséges Go-csomagokat fogja telepíteni.

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 fogja telepíteni 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 a következőképpen fog létrehozni egy azidentity objektumot:

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 VirtualNetwork-ü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:

  1. Keresse meg az Azure SDK for Go referenciadokumentációját.
  2. 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.)
  3. Válassza ki a csomagot.
  4. Keresse meg a típust a csomag oldalán.
  5. 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:

  1. Keresse meg az Azure SDK for Go fő referenciadokumentációját a pkg.go.dev.
  2. Kattintson a <Ctrl+F> billentyűkombinációra, és írja be a kívánt értéket resourcemanager/resources/armresources. A keresési kifejezés beírása közben az erőforrások/armresources-csomag szoros egyezése jelenik meg.
  3. Válassza ki az alkalmazásnak megfelelő csomagot.
  4. 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.
  5. 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 Beginki: . 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.

További lépések