Aracılığıyla paylaş


Go için Azure SDK yönetim kitaplıklarına genel bakış

Go için Azure SDK nedir? makalesinde açıklandığı gibi, Go için Azure SDK'nın bir dizi yönetim ve istemci kitaplığı vardır. Yönetim kitaplıkları Azure Identity desteği, HTTP işlem hattı ve hata işleme gibi özellikleri paylaşır. Yönetim kitaplıklarının tam listesi için bkz. Go için Azure SDK modülü.

Bu makalede, Azure kaynaklarıyla etkileşimde bulunurken yönetim kitaplıklarını kullanmanın temel adımlarını öğreneceksiniz.

Go paketlerini yükleme

Çoğu projede sürüm oluşturma ve bağımlılık yönetimi için Go paketlerini yüklersiniz.

Go paketini yüklemek için komutunu çalıştırın go get .

Örneğin, paketi yüklemek armcompute için aşağıdaki komutu çalıştırın:

go get github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute

Go uygulamalarının çoğunda kimlik doğrulaması için aşağıdaki paketleri yüklersiniz:

  • github.com/Azure/azure-sdk-for-go/sdk/azcore/to
  • github.com/Azure/azure-sdk-for-go/sdk/azidentity

Go kodunuza paketleri aktarma

paketler indirildikten sonra aşağıdaki deyim aracılığıyla import uygulamanıza aktarılır:

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"
)

Azure'da kimlik doğrulaması

Azure aboneliğinde kod çalıştırmak için Azure'da kimlik doğrulaması yapmanız gerekir. azidentity paketi, Azure'da kimlik doğrulaması yapmak için birden çok seçeneği destekler. Bu seçenekler istemci/sır, sertifika ve yönetilen kimliktir.

Varsayılan kimlik doğrulama seçeneği, bu makalenin önceki bölümlerinde ayarlanan ortam değişkenlerini kullanan DefaultAzureCredential'dır. Go kodunuzda aşağıdaki gibi bir azidentity nesne oluşturursunuz:

cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
  // handle error
}

Kaynak Yönetimi istemcisi oluşturma

Azure Identity'den kimlik bilgilerini aldıktan sonra hedef Azure hizmetine bağlanmak için bir istemci oluşturun.

Örneğin, Azure İşlem hizmetine bağlanmak istediğinizi varsayalım. İşlem paketi bir veya daha fazla istemciden oluşur. İstemci, belirtilen abonelik içindeki işlevselliğine erişim sağlayan bir dizi ilgili API'yi gruplandırır. gereken API'lere erişmek için bir veya daha fazla istemci oluşturursunuz.

Aşağıdaki kod armcompute kullanır. Sanal makineleri yönetmek üzere bir istemci oluşturmak için NewVirtualMachinesClient türü :

client, err := armcompute.NewVirtualMachinesClient("<subscription ID>", cred, nil)
if err != nil {
  // handle error
}

Diğer Azure hizmetlerine bağlanmak için aynı desen kullanılır. Örneğin armnetwork paketini yükleyin ve sanal ağ (VNET ) kaynaklarını yönetmek için bir sanal ağ istemcisi oluşturun.

client, err := armnetwork.NewVirtualNetworksClient("<subscription ID>", cred, nil)
if err != nil {
  // handle error
}

Kod örneği:

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
    }
}

Go için Azure SDK başvuru belgelerini kullanma

Bir istemci örneği oluşturdıktan sonra Azure kaynaklarınıza API çağrıları yapmak için bu istemciyi kullanın. Kaynak yönetimi senaryolarında çoğu kullanım örneği CRUD (oluşturma, okuma, güncelleştirme, silme) işlemleridir.

Belirli bir türe yönelik işlemleri bulmak için şu adımları izleyin:

  1. Go için Azure SDK başvuru belgelerine gidin.
  2. Paketi arayın. (Ctrl+F< tuşlarına basıldığında> sayfadaki tüm düğümler arama için otomatik olarak genişletiliyor.)
  3. Paketi seçin.
  4. Paketin sayfasında türü arayın.
  5. Go kodunuz için türün açıklamasını ve kullanım bilgilerini okuyun.

Ayrıca, paketin adını github.com/Azure/azure-sdk-for-go/sdk/ öğesine ekleyerek URL'yi el ile de oluşturabilirsiniz.

Örneğin, başvuru belgelerini istiyorsanız compute/armcompute URL şeklindedir github.com/Azure/azure-sdk-for-go/sdk/compute/armcompute.

Bu örnekte, Azure kaynak grubu işlemlerine yönelik başvuru belgelerinin nasıl bulunacakları gösterilmektedir:

  1. pkg.go.dev ile ilgili ana Go için Azure SDK başvuru belgelerine gidin.
  2. Ctrl+F< tuşlarına basın> ve girinresourcemanager/resources/armresources. Arama terimini yazarken resources/armresources paketiyle yakın bir eşleşme görürsünüz.
  3. Uygulamanız için uygun paketi seçin.
  4. "Başlarken" bölümünü okuyun veya belirli bir işlemi arayın. Örneğin, "resourcegroupsclient.create" (kaynak grubu oluşturmak için) araması sizi CreateOrUpdate işlevine yönlendirir.
  5. Azure kaynak grubu oluşturmak için API çağrısı yapmayı öğrenin.

Uzun süreli işlemler

Bazı işlemlerin tamamlanması uzun sürebilir, bu nedenle yönetim kitaplıklarının zaman uyumsuz çağrılar aracılığıyla uzun süre çalışan işlemleri (LRO) destekleyen işlevleri vardır. Bu işlev adları ve Begingibi BeginCreate ile BeginDeletebaşlar.

Bu işlevler zaman uyumsuz olduğundan, işlev görevini tamamlarken kodunuz engellemez. Bunun yerine işlevi hemen bir poller nesnesi döndürür. Kodunuz, ardından, orijinal zaman uyumsuz işlev tamamlandığında dönen zaman uyumlu bir poller işlevini çağırır.

Aşağıdaki kod parçacığında bu desenin bir örneği gösterilmektedir.

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.

Önemli noktalar:

  • İşlev, PollUntilDone durumu almak için ne sıklıkta denemesi gerektiğini belirten bir yoklama aralığı gerektirir.
  • Aralık genellikle kısadır. Önerilen aralıklar için belirli Azure kaynağının belgelerine bakın.
  • Go Azure SDK Tasarım Yönergeleri sayfasının LRO bölümünde LRO için daha ileri bir örnek ve genel yönergeler bulunur.

Sonraki Adımlar