Aracılığıyla paylaş


Azure Depolama yönetim kitaplığını kullanarak Blob Depolama uç noktasını sorgulama

Blob Depolama uç noktası, depolama hesabı içindeki tüm nesnelerin temel adresini oluşturur. Depolama hesabı oluşturduğunuzda, kullanmak istediğiniz uç nokta türünü belirtirsiniz. Blob Depolama iki tür uç noktayı destekler:

  • Standart uç nokta, sabit bir etki alanı adıyla birlikte benzersiz depolama hesabı adını içerir. Standart uç noktanın biçimi şeklindedir https://<storage-account>.blob.core.windows.net.
  • Azure DNS bölgesi uç noktası (önizleme) bir Azure DNS bölgesini dinamik olarak seçer ve oluşturulduğunda depolama hesabına atar. Azure DNS Bölgesi uç noktasının biçimi şeklindedir https://<storage-account>.z[00-99].blob.storage.azure.net.

Uygulamanız Blob Depolama veri kaynaklarına bağlanan bir hizmet istemcisi nesnesi oluşturduğunda, uç noktaya başvuran bir URI'yi hizmet istemcisi oluşturucusuna geçirirsiniz. URI dizesini el ile oluşturabilir veya Azure Depolama yönetim kitaplığını kullanarak çalışma zamanında hizmet uç noktasını sorgulayabilirsiniz.

Önemli

İstemci uygulamasında bir hizmet uç noktasına başvururken, önbelleğe alınmış bir IP adresine bağımlılık almaktan kaçınmanız önerilir. Depolama hesabı IP adresi değiştirilebilir ve önbelleğe alınmış bir IP adresine güvenmek beklenmeyen davranışa neden olabilir.

Depolama hesabı uç noktasıyla ilişkili CNAM'ler bildirimde bulunmadan değişebilir. Uygulamanız CNAME kayıtlarının sayısına veya bu CNAME kayıtlarıyla ilişkili alt etki alanlarına bağımlılık almamalıdır.

Buna ek olarak, DNS kaydının yaşam süresine (TTL) uygun olmanız ve bu kaydı geçersiz kılmaktan kaçınmanız önerilir. DNS TTL'nin geçersiz kılınması beklenmeyen davranışlara neden olabilir.

Daha fazla bilgi için bkz . CNAME kayıtları, alt etki alanları ve IP adresleri.

Azure Depolama yönetim kitaplığı, Azure Depolama kaynak sağlayıcısına programlı erişim sağlar. Kaynak sağlayıcısı, Azure Resource Manager'ın Azure Depolama uygulamasıdır. Yönetim kitaplığı, geliştiricilerin depolama hesaplarını ve hesap yapılandırmasını yönetmesinin yanı sıra yaşam döngüsü yönetimi ilkelerini, nesne çoğaltma ilkelerini ve değişmezlik ilkelerini yapılandırmalarını sağlar.

Bu makalede, Azure Depolama yönetim kitaplığını kullanarak Blob Depolama uç noktasını sorgulamayı öğreneceksiniz. Ardından bu uç noktayı kullanarak Blob Depolama veri kaynaklarına bağlanacak bir BlobServiceClient nesne oluşturursunuz.

Projenizi ayarlama

Bu makaledeki kod örnekleriyle çalışmak için projenizi ayarlamak için bu adımları izleyin.

Paketleri yükleme

Bu örnekte kullanılan kitaplıklarla çalışmak için paketleri yükleyin.

kullanarak dotnet add packageaşağıdaki paketleri yükleyin:

dotnet add package Azure.Identity
dotnet add package Azure.ResourceManager.Storage
dotnet add package Azure.Storage.Blobs

Uygulama kodunu ayarlama

Koda gerekli using veya import yönergeleri ekleyin. Kod örneklerinin işlevleri dosyalar arasında bölebileceğini, ancak bu bölümde tüm yönergelerin birlikte listelendiğini unutmayın.

Aşağıdaki using yönergeleri ekleyin:

using Azure.Core;
using Azure.Identity;
using Azure.Storage.Blobs;
using Azure.ResourceManager;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.Storage;

İstemci kitaplığı bilgileri:

  • Azure.Identity: Azure SDK genelinde Microsoft Entra belirteci kimlik doğrulaması desteği sağlar ve Azure hizmetlerine parolasız bağlantılar için gereklidir.
  • Azure.ResourceManager. Depolama: Kaynak grupları ve depolama hesapları dahil olmak üzere Azure Depolama kaynaklarının yönetimini destekler.
  • Azure. Depolama. Bloblar: Blob Depolama veri kaynaklarıyla çalışmak için kullanabileceğiniz birincil sınıfları içerir.

Depolama kaynak sağlayıcısını bir aboneliğe kaydetme

Bir kaynak sağlayıcısıyla çalışabilmeniz için önce Azure aboneliğinize kaydolmanız gerekir. Bu adımın abonelik başına yalnızca bir kez yapılması gerekir ve yalnızca Microsoft.Depolama kaynak sağlayıcısı aboneliğinize kayıtlı değilse geçerlidir.

Azure portalını, Azure CLI'yi veya Azure PowerShell'i kullanarak Depolama kaynak sağlayıcısını kaydedebilir veya kayıt durumunu kontrol edebilirsiniz.

Aşağıdaki örneklerde gösterildiği gibi kayıt durumunu denetlemek ve Depolama kaynak sağlayıcısını kaydetmek için Azure yönetim kitaplıklarını da kullanabilirsiniz:

public static async Task RegisterSRPInSubscription(SubscriptionResource subscription)
{
    ResourceProviderResource resourceProvider = 
        await subscription.GetResourceProviderAsync("Microsoft.Storage");

    // Check the registration state of the resource provider and register, if needed
    if (resourceProvider.Data.RegistrationState == "NotRegistered")
        resourceProvider.Register();
}

Dekont

Kayıt işlemini gerçekleştirmek için şu Azure RBAC eylemi için izinlere ihtiyacınız vardır: Microsoft.Depolama/register/action. Bu izin Katkıda Bulunan ve Sahip rollerine dahil edilir.

Blob Depolama uç noktasını sorgulama

Belirli bir depolama hesabının Blob Depolama uç noktasını almak için Özellikleri Al işlemini çağırarak depolama hesabı özelliklerini almalıyız. Aşağıdaki kod örnekleri, belirtilen bir depolama hesabı için Blob Depolama uç noktası almak için hem veri erişimi hem de yönetim kitaplıklarını kullanır:

Belirtilen depolama hesabının özelliklerini almak için bir Depolama AccountCollection nesnesinden aşağıdaki yöntemi kullanın:

Bu yöntem, depolama hesabını temsil eden bir Depolama AccountResource nesnesi döndürür.

public static async Task<Uri> GetBlobServiceEndpoint(
    string storageAccountName,
    TokenCredential credential)
{
    // TODO: replace with your subscription ID and resource group name
    // You can locate your subscription ID on the Subscriptions blade
    // of the Azure portal (https://portal.azure.com)
    const string subscriptionId = "<subscription-id>";
    const string rgName = "<resource-group-name>";

    ArmClient armClient = new(credential);

    // Create a resource identifier, then get the subscription resource
    ResourceIdentifier resourceIdentifier = new($"/subscriptions/{subscriptionId}");
    SubscriptionResource subscription = armClient.GetSubscriptionResource(resourceIdentifier);

    // Get a resource group
    ResourceGroupResource resourceGroup = await subscription.GetResourceGroupAsync(rgName);

    // Get a collection of storage account resources
    StorageAccountCollection accountCollection = resourceGroup.GetStorageAccounts();

    // Get the properties for the specified storage account
    StorageAccountResource storageAccount = await accountCollection.GetAsync(storageAccountName);

    // Return the primary endpoint for the blob service
    return storageAccount.Data.PrimaryEndpoints.BlobUri;
}

Uç noktayı kullanarak istemci nesnesi oluşturma

Depolama hesabı için Blob Depolama uç noktasına sahip olduktan sonra, veri kaynaklarıyla çalışmak için bir istemci nesnesi örneği oluşturabilirsiniz. Aşağıdaki kod örneği, önceki örnekte aldığımız uç noktayı kullanarak bir BlobServiceClient nesne oluşturur:

// Create an instance of DefaultAzureCredential for authorization
TokenCredential credential = new DefaultAzureCredential();

// TODO: replace with your storage account name
string storageAccountName = "<storage-account-name>";

// Call out to our function that retrieves the blob service endpoint for the given storage account
Uri blobURI = await AccountProperties.GetBlobServiceEndpoint(storageAccountName, credential);
Console.WriteLine($"URI: {blobURI}");

// Now that we know the endpoint, create the client object
BlobServiceClient blobServiceClient = new(blobURI, credential);

// Do something with the storage account or its resources ...

Sonraki adımlar

Kod örneklerinin tamamını görüntüleyin (GitHub):

İstemci nesneleri oluşturma hakkında daha fazla bilgi edinmek için bkz . Veri kaynaklarıyla etkileşim kuran istemci nesneleri oluşturma ve yönetme.