Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Go için Azure SDK hem yönetim kitaplıklarını hem de veri düzlemi istemci kitaplıklarını içerir. Bu makalede, kitaplıkların ne olduğunu, Azure iş akışlarına nasıl sığdıklarını ve Go'ya özgü desenler için sonraki adımlarını anlamanızı sağlayan bir genel bakış sunulmaktadır.
Yönetim kitaplıkları
Azure kaynaklarını sağlamak, yapılandırmak ve yönetmek için yönetim kitaplıklarını kullanın. Bunlar, içinde depolanan veriler yerine kaynakları yönetmeye odaklanır. Yönetim kitaplıkları, Azure kaynaklarını ve hizmet yapılandırmasını yöneten control plane işlemleri gerçekleştirir. Tipik görevler şunlardır:
- Kaynak gruplarını, sanal ağları veya sanal makineleri oluşturma veya güncelleştirme.
- Güvenlik ayarlarını, kimlikleri, erişim ilkelerini ve tanılamayı yapılandırma.
- Abonelik genelinde Azure kaynaklarını listeleme, etiketleme ve silme.
- Dağıtım, temizleme, uyumluluk ve platform işlemlerini otomatikleştirme.
Yönetim kitaplığı paketlerinin , armcomputeve armnetworkgibi armkeyvaultadları vardır. Bir uygulama yaşam döngüsünün kurulum, yapılandırma ve idare aşamaları sırasında yönetim kitaplıklarını kullanın. Ayrıntılı paket belgeleri için pkg.go.dev üzerinde paketi arayın.
Müşteri kütüphaneleri
Go uygulamanızın, zaten sağlanmış bir Azure hizmeti içindeki veri veya çalışma zamanı kaynaklarıyla çalışması gerektiğinde istemci kütüphanelerini kullanın. İstemci kitaplıkları, bir hizmette depolanan veya hizmet üzerinden akan verilerle çalışan veri düzlemi işlemleri gerçekleştirir. Tipik görevler şunlardır:
- Depolama hesabına blobları yükleme ve indirme.
- Service Bus veya Event Hubs ile ileti gönderme ve alma.
- Veritabanındaki kayıtları okuma, yazma veya silme.
- Key Vault'tan gizli bilgiler alınıyor.
- Sağlanan kaynaklarda sorguları veya işlemleri yürütme.
İstemci kitaplığı paketlerinin , , azblob, azstorageazsecretsve azservicebusgibi azeventhubsadları vardır. Yönetim kitaplıklarını kullanarak temel Azure hizmetini önceden sağladıktan sonra istemci kitaplıklarını kullanın. Ayrıntılı paket belgeleri için pkg.go.dev üzerinde paketi arayın.
Hem yönetim hem de istemci kitaplıklarını kullanma
Tek bir Go çözümü, denetim ve veri düzlemleri arasında hem yönetim hem de istemci kitaplıklarını kullanabilir. Örneğin, kurulum sırasında bir depolama hesabı (denetim düzlemi) oluşturmak için bir yönetim kitaplığı kullanabilir ve ardından blobları (veri düzlemi) karşıya yüklemek ve indirmek için uygulamada bir istemci kitaplığı kullanabilirsiniz. Ayrımı anlamak, iş akışınızdaki her görev için doğru kitaplığı seçmenize yardımcı olur.
Her düzlem için Go'ya özgü desenler ve örnekler için şu makalelere bakın:
- Denetim düzlemi işlemleri için Go için Azure SDK kullanın.
- Veri düzlemi işlemleri için Go için Azure SDK kullanın.
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, armcompute paketini yüklemek 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ükleyin:
- github.com/Azure/azure-sdk-for-go/sdk/azcore/to
- github.com/Azure/azure-sdk-for-go/sdk/azidentity
Go kodunuza paketleri aktarma
Paketleri indirdikten sonra import deyimini kullanarak bunları uygulamanıza aktarın.
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 kimlik doğrulaması
Azure SDK kitaplıklarını kullanan Go uygulamaları, Azure Identity kitaplığı ile Microsoft Entra ID kullanarak kimlik doğrulaması yapmalıdır. Belirteç tabanlı kimlik doğrulaması, bağlantı dizelerine veya anahtarlara göre daha güvenli ve yönetilebilir. Önerilen kimlik bilgileri uygulamanın nerede çalıştığına bağlıdır: Azure barındırılan uygulamalar için yönetilen kimlikleri, yerel geliştirme için geliştirici kimlik bilgilerini veya hizmet sorumlusunu ve çoğu şirket içi senaryo için hizmet sorumlusunu kullanın.
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şturun:
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
// handle error
}
Kimlik doğrulaması hakkında daha fazla bilgi için Azure SDK for Go kimlik doğrulaması sayfasına bakın.
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 Compute hizmetine bağlanmak istediğinizi varsayalım. Compute 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, sanal makineleri yönetmek üzere bir istemci oluşturmak için armcompute.NewVirtualMachinesClient türünü kullanır.
client, err := armcompute.NewVirtualMachinesClient("<subscription ID>", cred, nil)
if err != nil {
// handle error
}
Go ile Azure kaynaklarını yönetme hakkında daha fazla bilgi için bkz. Denetim düzlemi işlemleri için Go için Azure SDK kullanma.
Diğer Azure hizmetlerine bağlanmak için aynı düzeni kullanın. Örneğin, armnetwork paketini yükleyin ve sanal ağ kaynaklarını yönetmek için bir virtual network 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
}
}
Azure hizmetleri için Go Azure SDK kullanma hakkında daha fazla bilgi için bkz. Veri düzlemi işlemleri için Go için Azure SDK kullanma.
Go için Azure SDK deposunu 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 ait işlemleri bulmak için Azure SDK Go GitHub deposundaki kaynağa göz atın. SDK kaynağı sdk/ dizini altında, sdk/resourcemanager/ altında yönetim kitaplıkları ve sdk/storage/ ve sdk/security/keyvault/ gibi hizmete özgü klasörlerdeki istemci kitaplıklarıyla düzenlenir.
Belirli bir türün kaynağını bulmak için şu adımları izleyin:
- GitHub'da Go deposu için
Azure SDK gidin. -
sdk/resourcemanager/yönetim kitaplıklarına veyasdk/istemci kitaplıklarına git. - Hizmet klasörünü ve ardından paket klasörünü açın. Örneğin,
sdk/resourcemanager/compute/armcompute/. - İhtiyacınız olan türü içeren kaynak dosyayı bulun. İstemci türleri ve yöntemleri, genellikle istemcinin adıyla uyumlu
virtualmachines_client.gogibi dosyalarda bulunur. - Kullanım bilgileri için türün açıklamalarını ve yöntem imzalarını okuyun.
URL'yi doğrudan da oluşturabilirsiniz. Örneğin, kaynak grubu işlem kaynağını bulmak için https://github.com/Azure/azure-sdk-for-go/tree/main/sdk/resourcemanager/resources/armresources adresine gidin.
Bu örnekte, Azure kaynak grubu işlemleri için kaynağın nasıl bulunacakları gösterilmektedir:
- Azure SDK for Go deposuna GitHub'da gidin.
-
sdk/resourcemanager/resources/armresources/adresine gidin. -
resource_groups_client.gotürünü veResourceGroupsClientyöntemini bulmak içinCreateOrUpdateaçın. - API çağrısının nasıl yapılacağını anlamak için yöntemin açıklamalarını ve parametrelerini okuyun.
Oluşturulan başvuru belgeleri için pkg.go.dev üzerinde paketi arayın.
Uzun süreli işlemler
Bazı işlemlerin tamamlanması uzun sürer. Bu işlemleri yönetmek için yönetim kitaplıkları, zaman uyumsuz çağrılar aracılığıyla uzun süreli işlemleri (LRO) destekleyen işlevler sağlar. Bu işlev adları, Begin ile başlar, örneğin BeginCreate ve BeginDelete.
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,
PollUntilDonedurumu almak için ne sıklıkta denemesi gerektiğini belirten bir yoklama aralığı gerektirir. interval varsayılan olarak 30 saniyedir options parametresinilverilirse, ancak ihtiyaçlarınıza göre ayarlayabilirsiniz. - 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ü LRO için daha gelişmiş bir örnek ve genel yönergelere sahiptir.
Desenler hakkında daha fazla bilgi için, Go için Azure SDK'daki Common kullanım desenlerine bakın.
Sonraki Adımlar
Kimlik doğrulama, istemci oluşturma, uzun süreli çalışma işlemleri ve hizmet kılavuz desenleri hakkında daha fazla bilgi için alanına özgü makalelere bakın.
- Yönetim odaklı Go iş akışları için kontrol düzlemi işlemleri yapmak amacıyla Azure SDK'sini Go için kullanın.
- Veri düzlemi işlemleri için Go için Azure SDK kullanın genellikle sağlamayı izleyen çalışma zamanı veri erişim desenleri için.
Örnekler için bkz. GitHub'daki Azure SDK for Go örnekleri.