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 bir dizi yönetim ve istemci kitaplığı içerir. Yönetim kitaplıkları Azure Identity desteği, HTTP işlem hattı ve hata işleme gibi birçok özelliği paylaşır. Yönetim kitaplıklarının tam listesini Go için Azure SDK modül sayfasında bulabilirsiniz.
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 kullanın go get
.
Örneğin, paketi yüklemek armcompute
için komut satırında aşağıdakileri çalıştırırsınız:
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 kodunuz içine paketleri içeri aktarma
paket 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/gizli dizi, 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 bilgileriniz olduktan 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 parçacığında armcompute. NewVirtualMachinesClient türü , sanal makineleri yönetmek üzere bir istemci oluşturmak için kullanılı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("SubID", cred, nil)
if err != nil {
// handle error
}
}
Go için Azure SDK başvuru belgelerini kullanma
Örnek eklendikten sonra istemciler, Azure kaynaklarınız için API çağrıları yapmak için kullanılır. Kaynak yönetimi senaryolarında kullanım örneklerinin çoğu CRUD (Oluşturma/Okuma/Güncelleştirme/Silme) işlemleridir.
Belirli bir türe yönelik işlemleri aramak için aşağıdaki adımları uygulayın:
- Go için Azure SDK başvuru belgelerine göz atın.
- Sayfada paketi arayın. (Basıldığında <Ctrl+F> tuşları sayfadaki arama için tüm düğümleri otomatik olarak genişletir.)
- Paketi seçin.
- Paketin sayfasında türü arayın.
- Go kodunuzda türün açıklamasını ve kullanımı hakkındaki bilgileri okuyun.
Ayrıca, paketin github.com/Azure/azure-sdk-for-go/sdk/
adını öğesine ekleyerek URL'yi el ile de oluşturabilirsiniz.
Örneğin, başvuru belgelerini arıyorsanız compute/armcompute
URL şeklindedir github.com/Azure/azure-sdk-for-go/sdk/compute/armcompute
.
Aşağıdaki örnekte, Azure kaynak grubu işlemleri için başvuru belgelerinin nasıl bulunacakları gösterilmektedir:
- pkg.go.dev ile ilgili ana Go için Azure SDK başvuru belgelerine göz atın.
- Ctrl+F> tuşlarına basın <ve girin
resourcemanager/resources/armresources
. Arama terimini yazarken resources/armresources paketiyle yakın bir eşleşme görürsünüz. - Uygulamanız için uygun paketi seçin.
- "Başlarken" bölümlerini okuyun veya belirli bir işlemi arayın. Örneğin, "resourcegroupsclient.create" terimini aramak (kaynak grubu oluşturmak istiyorsanız) sizi CreateOrUpdate işlevine yönlendirir.
- Bu noktada, Azure kaynak grubu oluşturmak için API çağrısı yapmayı okuyabilirsiniz.
Uzun süre çalışan işlemler
Bazı işlemlerin tamamlanması uzun zaman alabildiği için yönetim kitaplıkları, zaman uyumsuz çağrılar aracılığıyla uzun süre çalışan işlemleri (LRO) destekleyen işlevler içerir. Bu işlev adları ile Begin
başlar. Bu desene örnek olarak ve BeginDelete
verilebilirBeginCreate
.
Bu işlevler zaman uyumsuz olduğundan, işlev görevini tamamlayana kadar kodunuz engellemez. Bunun yerine işlevi hemen bir poller nesnesi döndürür. Kodunuz daha sonra özgün zaman uyumsuz işlev tamamlandığında döndüren 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 bir taşıma gelişmiş örneği ve LRO için genel yönergeler bulunur.
Sonraki adımlar
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin