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 istemci kitaplıklarını kullanarak program aracılığıyla Azure hizmetlerinde depolanan verilerle nasıl etkileşim kuracağınızı öğrenin. Yönetim kitaplıkları ve istemci kitaplıklarının nasıl bir araya geldiği hakkında daha üst düzey bir giriş için bakınız: Overview of the Azure SDK for Go Management Libraries. Bu makale, bir kaynak zaten mevcut olduktan sonra kullandığınız Go veri düzlemi desenlerine odaklanır ve sağlama ve yapılandırma çalışmaları için denetim düzlemi işlemlerine geri dönüp bakar.
Azure veri düzlemi nedir?
Azure veri düzlemi blobları karşıya yükleme, ileti gönderme, veritabanlarını sorgulama ve gizli dizileri alma gibi Azure hizmetlerindeki verilerle etkileşim kurmak için kullandığınız API kümesidir. Kontrol düzlemi kaynakları sağlıyor ve yapılandırıyor, veri düzlemi ise çalışma zamanında uygulama kodunuzun çağırdığı düzlemdir. Yaygın bir Go iş akışı, kurulum veya otomasyonda kontrol düzlemi kodunu bir kez kullanmak ve ardından veri yolu istemcilerini her gün çalışan uygulama yolunda bulundurmaktır.
Go için Azure SDK, azblob gibi hizmete özgü paketler aracılığıyla veri düzlemini kullanıma sunar. azservicebus, azeventhubs, azsecrets ve azcosmos. Her paket önceden sağlanan bir kaynağa bağlanır ve tutarlı bir desen izler:
-
azidentitypaketini kullanarak kimlik doğrulayın. - Hizmet uç noktası veya bağlantı dizesi kullanarak tür belirtilmiş bir istemci oluşturun.
- Verileri okumak, yazmak veya işlemek için istemcideki yöntemleri çağırın.
- Sayfalandırılmış sonuçları ve hataları ele almak.
Go veri düzlemi işlemleri için yaygın senaryolar şunlardır:
- Blob Depolama'dan dosya yükleme ve indirme
- Service Bus veya Event Hubs ile ileti gönderme ve alma
- Cosmos DB'de belgeleri depolama ve sorgulama
- Key Vault sırlar, anahtarlar ve sertifikalar alma
- Application Insights ile uygulama performansını izleme
Kimlik Doğrulaması
Veri düzlemi işlemleri, denetim düzlemi işlemleri için kullanılan azidentity paketinden aynı kimlik bilgisi türlerini destekler. Tüm kimlik bilgileri türleri arabirimini azcore.TokenCredential uygular, böylece istemci kodunu değiştirmeden bunları değiştirebilirsiniz.
Veri düzlemi istemcileri abonelik kimliği yerine bir hizmet uç noktası (URL veya ad alanı) ve bir kimlik bilgisi alır:
// Create credential that auto-discovers authentication
cred, err := azidentity.NewDefaultAzureCredential(nil)
// Blob Storage - pass the storage account URL
blobClient, err := azblob.NewClient("https://mystorageaccount.blob.core.windows.net/", cred, nil)
// Key Vault secrets - pass the vault URL
secretClient, err := azsecrets.NewClient("https://mykeyvault.vault.azure.net/", cred, nil)
// Service Bus - pass the fully qualified namespace
sbClient, err := azservicebus.NewClient("mynamespace.servicebus.windows.net", cred, nil)
Bazı hizmetler, belirteç tabanlı kimlik doğrulamasının kullanılamadığı ortamlar için bağlantı dizelerini de destekler:
// Connection string authentication (when token auth is not available)
client, err := azservicebus.NewClientFromConnectionString(connectionString, nil)
Azure çalışan üretim iş yükleri için yönetilen kimliği kullanın. Yerel geliştirme için, DefaultAzureCredential ortam değişkenlerinden veya diğer kaynaklardan az loginkimlik bilgilerini otomatik olarak bulur.
Kimlik bilgisi türleri ve en iyi yöntemler hakkında tam kılavuz için Azure SDK for Go ile Authentication ve azidentity paketi belgeleri bölümüne bakın.
Sayfalandırma
Birçok veri düzlemi işlemi büyük olabilecek koleksiyonlar döndürür. SDK, bu işlemler için bir çağrı düzeni kullanır:
// Create a pager for listing large result sets
pager := client.NewListSecretPropertiesPager(nil)
// Iterate through pages until no more results
for pager.More() {
page, err := pager.NextPage(ctx)
if err != nil {
return err
}
for _, item := range page.Value {
fmt.Println(*item.ID)
}
}
Tür döndüren *Pager yöntemler, tüm veri düzlemi paketlerinde aynı yineleme deseni izler.
Sayfalandırma ve diğer yaygın desenler hakkında daha fazla bilgi için Go için Azure SDK'daki Yaygın kullanım desenleri kısmına bakın.
Hata yönetimi
Veri düzlemi işlemleri, belirli hata kodları için inceleyebileceğiniz yapılandırılmış hatalar döndürür:
import "github.com/Azure/azure-sdk-for-go/sdk/azcore"
// Check if the error is an Azure service error with structured details
var respErr *azcore.ResponseError
if errors.As(err, &respErr) {
fmt.Printf("Error code: %s\n", respErr.ErrorCode)
fmt.Printf("Status code: %d\n", respErr.StatusCode)
}
Yaygın veri düzlemi hata kodları , BlobNotFound, MessageLockLostve SecretNotFoundhata kodlarıdırRequestEntityTooLarge. Hata kodlarının tam listesi için her hizmetin belgelerine bakın.
"Blob örneği yükle"
Örneğimizde üretime hazır bir desen sergilenmektedir: DefaultAzureCredential kullanarak kimlik doğrulaması yapma, bir blob istemcisi oluşturma, zaman aşımı ile veri yükleme ve doğrulama. Bu düzen tüm veri düzlemi istemcileri için geçerlidir. Hizmet uç noktasını ve istemci türünü değiştirerek Service Bus, Event Hubs, Cosmos DB veya Key Vault için uyarlayın.
package main
import (
"context"
"fmt"
"log"
"time"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
)
func main() {
accountURL := "https://<storage-account-name>.blob.core.windows.net/"
containerName := "demo"
blobName := "hello.txt"
data := []byte("hello from Go")
// Create credential that auto-discovers authentication
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to create credential: %v", err)
}
// Set a timeout to prevent hanging on network issues
ctx, cancel := context.WithTimeout(context.Background(), time.Minute)
defer cancel()
// Create a client for the storage account
client, err := azblob.NewClient(accountURL, cred, nil)
if err != nil {
log.Fatalf("failed to create blob client: %v", err)
}
// Upload data directly from a byte slice
_, err = client.UploadBuffer(ctx, containerName, blobName, data, nil)
if err != nil {
log.Fatalf("failed to upload blob: %v", err)
}
fmt.Printf("uploaded %s to container %s\n", blobName, containerName)
}
Blob Depolama
azblob paketi, büyük ölçüde ölçeklenebilir bir nesne depolama hizmeti olan Azure Blob Depolama veri düzlemi erişimi sağlar. Bu paket, uygulamanızın çalışma zamanında verileri okumak ve yazmak için kullandığı pakettir. Depolama hesaplarını ve kapsayıcıları sağlamak için ayrı armstorage denetim düzlemi paketini kullanın.
Dosyaları ve belgeleri karşıya yüklemek ve indirmek, blobları ve kapsayıcıları listelemek ve yönetmek, meta verileri ve içerik özelliklerini ayarlamak, büyük dosyalar için paralel karşıya yüklemeler uygulamak ve veri işleme işlem hatları oluşturmak için kullanın.
go get github.com/Azure/azure-sdk-for-go/sdk/storage/azblob
Başlamak için Hızlı Başlangıç: Go için Azure Blob Depolama istemci modülü'ne bakın.
Paket belgeleri için bkz. azblob package reference.
Cosmos DB
azcosmos paketi, küresel olarak dağıtılmış, çok modelli bir veritabanı olan Azure Cosmos DB veri düzlemi erişimi sağlar. Herhangi bir ölçekte düşük gecikme süreli okuma ve yazma işlemlerine ihtiyaç duyan uygulamalar oluşturmak için bu uygulamayı kullanın.
Belgeler üzerinde CRUD işlemleri gerçekleştirmek, kapsayıcılara karşı SQL sorguları çalıştırmak, verimli veri erişimi için bölümleme stratejilerini yönetmek, büyük sonuç kümeleri üzerinde sayfalandırmayı işlemek ve çok öğeli toplu işlemleri yürütmek için kullanın.
go get github.com/Azure/azure-sdk-for-go/sdk/data/azcosmos
Başlamak için bkz. Quickstart: Go için Azure SDK ile NoSQL için Azure Cosmos DB kullanma.
Paket belgeleri için bkz. azcosmos package reference.
Event Hubs
azeventhubs paketi, yüksek aktarım hızına sahip olay akışı için gerçek zamanlı bir veri alımı hizmeti olan Azure Event Hubs veri düzlemi erişimi sağlar.
Verimli aktarım hızı için toplu işleme ile olaylar göndermek, tüketici gruplarını kullanarak olayları almak ve işlemek, bölüm atamasını ve denetim noktası oluşturmayı yönetmek, sipariş garantileri için bölüm anahtarlarını kullanarak olayları yönlendirmek ve günlük alımı ve telemetri işlem hatları oluşturmak için bunu kullanın.
go get github.com/Azure/azure-sdk-for-go/sdk/messaging/azeventhubs
Başlamak için bkz . Hızlı Başlangıç: Go kullanarak Event Hubs'a olay gönderme veya olay alma.
Paket belgeleri için bkz. azeventhubs paket başvurusu.
Key Vault
azsecrets, azkeys ve azcertificates paketleri Azure Key Vault için veri düzlemi erişimi sağlar. Bu paketler, uygulamanızın çalışma zamanında gizli bilgileri almak ve şifreleme işlemleri gerçekleştirmek için kullandığı araçlardır. Vault örneklerini sağlamak ve yapılandırmak için ayrı armkeyvault denetim düzlemi paketini kullanarak.
Gizli dizileri (veritabanı parolaları, API anahtarları) alıp ayarlamak, imzalama ve şifreleme için şifreleme anahtarları oluşturup yönetmek, otomatik yenileme ile TLS/SSL sertifikalarını yönetmek, gizli sürümleri izlemek ve döndürme stratejileri uygulamak ve gecikme süresini ve API çağrılarını azaltmak için gizli dizileri önbelleğe almak için kullanın.
go get github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets
go get github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys
go get github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azcertificates
Key Vault kullanmaya başlamak için, Go için Quickstart: Azure Key Vault sertifika istemci kitaplığı bölümüne bakın.
Paket belgeleri için azsecrets, azkeys ve azcertificates paket başvurularına bakın.
Service Bus
azservicebus paketi, güvenilir zaman uyumsuz iletişim için tam olarak yönetilen bir ileti aracısı olan Azure Service Bus için veri düzlemi erişimi sağlar.
Nokta-nokta iletişim için kuyruklarda mesaj göndermek ve almak, dağıtım desenleri için konular yayınlamak ve abonelik işlemleri yapmak, verimli aktarım hızı için toplu mesajlar göndermek, gelecekteki teslimatlar için mesajlar zamanlamak ve mesaj tamamlanması ve bırakılması ile uzun yoklama alıcılarını uygulamak için kullanın.
go get github.com/Azure/azure-sdk-for-go/sdk/messaging/azservicebus
Azure Service Bus kullanmaya başlamak için bkz. Quickstart: Azure Service Bus kuyruklarına ileti gönderme ve bu kuyruklardan ileti alma (Go).
Paket belgeleri için bkz. azservicebus package reference.
Uygulama Öngörüleri
ApplicationInsights-Go modülü, Azure uygulama performansı izleme (APM) hizmeti olan Azure Uygulaması Insights ile telemetri tümleştirmesi sağlar.
Özel olayları ve ölçümleri izlemek, API yanıt sürelerini ve hatalarını izlemek, hizmetler arasında dağıtılmış izleme uygulamak, bağlamsal özelliklerle özel durumları günlüğe kaydetmek ve örnekleme ile telemetri hacmini denetlemek için bunu kullanın.
go get github.com/microsoft/ApplicationInsights-Go
Hizmet belgeleri için bkz. Application Insights'a genel bakış.
Sonraki Adımlar
- Go yönetim kitaplıkları için Azure SDK Genel bakış
- Kontrol düzlemi işlemleri için Go için Azure SDK kullanın
- Go kimlik doğrulaması için Azure SDK
- GitHub üzerinde Go dili için Azure SDK örnekleri