Udostępnij za pośrednictwem


Wykonywanie zapytań dotyczących punktu końcowego usługi Blob Storage przy użyciu biblioteki zarządzania usługi Azure Storage

Punkt końcowy usługi Blob Storage stanowi podstawowy adres dla wszystkich obiektów na koncie magazynu. Podczas tworzenia konta magazynu należy określić typ punktu końcowego, którego chcesz użyć. Usługa Blob Storage obsługuje dwa typy punktów końcowych:

  • Standardowy punkt końcowy zawiera unikatową nazwę konta magazynu wraz ze stałą nazwą domeny. Format standardowego punktu końcowego to https://<storage-account>.blob.core.windows.net.
  • Punkt końcowy strefy DNS platformy Azure (wersja zapoznawcza) dynamicznie wybiera strefę usługi Azure DNS i przypisuje ją do konta magazynu podczas jego tworzenia. Format punktu końcowego strefy DNS platformy Azure to https://<storage-account>.z[00-99].blob.storage.azure.net.

Gdy aplikacja tworzy obiekt klienta usługi łączący się z zasobami danych usługi Blob Storage, przekazujesz identyfikator URI odwołujący się do punktu końcowego do konstruktora klienta usługi. Możesz utworzyć ciąg identyfikatora URI ręcznie lub wykonać zapytanie dotyczące punktu końcowego usługi w czasie wykonywania przy użyciu biblioteki zarządzania usługi Azure Storage.

Ważne

W przypadku odwoływania się do punktu końcowego usługi w aplikacji klienckiej zaleca się unikanie zależności od buforowanego adresu IP. Adres IP konta magazynu może ulec zmianie, a poleganie na buforowanym adresie IP może spowodować nieoczekiwane zachowanie.

Rekordy CNAM skojarzone z punktem końcowym konta magazynu mogą ulec zmianie bez powiadomienia. Aplikacja nie powinna mieć zależności od liczby rekordów CNAME ani domen podrzędnych skojarzonych z tymi rekordami CNAME.

Ponadto zaleca się honorowanie czasu wygaśnięcia (TTL) rekordu DNS i unikanie zastępowania go. Zastąpienie czasu wygaśnięcia DNS może spowodować nieoczekiwane zachowanie.

Aby uzyskać więcej informacji, zobacz Rekordy CNAME, poddomeny i adresy IP.

Biblioteka zarządzania usługi Azure Storage zapewnia programowy dostęp do dostawcy zasobów usługi Azure Storage. Dostawca zasobów to implementacja usługi Azure Storage usługi Azure Resource Manager. Biblioteka zarządzania umożliwia deweloperom zarządzanie kontami magazynu i konfiguracją konta, a także konfigurowanie zasad zarządzania cyklem życia, zasad replikacji obiektów i zasad niezmienności.

Z tego artykułu dowiesz się, jak wykonywać zapytania dotyczące punktu końcowego usługi Blob Storage przy użyciu biblioteki zarządzania usługi Azure Storage. Następnie użyjesz tego punktu końcowego do utworzenia BlobServiceClient obiektu w celu nawiązania połączenia z zasobami danych usługi Blob Storage.

konfigurowanie projektu

Aby pracować z przykładami kodu w tym artykule, wykonaj następujące kroki, aby skonfigurować projekt.

Instalowanie pakietów

Zainstaluj pakiety do pracy z bibliotekami używanymi w tym przykładzie.

Zainstaluj następujące pakiety przy użyciu polecenia dotnet add package:

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

Konfigurowanie kodu aplikacji

Dodaj niezbędne using dyrektywy lub import do kodu. Należy pamiętać, że przykłady kodu mogą dzielić funkcje między plikami, ale w tej sekcji wszystkie dyrektywy są wymienione razem.

Dodaj następujące using dyrektywy:

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

Informacje o bibliotece klienta:

  • Azure.Identity: zapewnia obsługę uwierzytelniania tokenów entra firmy Microsoft w zestawie Azure SDK i jest wymagany do połączeń bez hasła z usługami platformy Azure.
  • Azure.ResourceManager.Storage: obsługuje zarządzanie zasobami usługi Azure Storage, w tym grupami zasobów i kontami magazynu.
  • Azure.Storage.Blobs: zawiera klasy podstawowe, których można użyć do pracy z zasobami danych usługi Blob Storage.

Rejestrowanie dostawcy zasobów usługi Storage przy użyciu subskrypcji

Przed rozpoczęciem pracy z dostawcą zasobów należy zarejestrować się w ramach subskrypcji platformy Azure. Ten krok należy wykonać tylko raz na subskrypcję i ma zastosowanie tylko wtedy, gdy dostawca zasobów Microsoft.Storage nie jest obecnie zarejestrowany w ramach subskrypcji.

Możesz zarejestrować dostawcę zasobów usługi Storage lub sprawdzić stan rejestracji przy użyciu witryny Azure Portal, interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell.

Możesz również użyć bibliotek zarządzania platformy Azure, aby sprawdzić stan rejestracji i zarejestrować dostawcę zasobów usługi Storage, jak pokazano w poniższych przykładach:

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();
}

Uwaga

Aby wykonać operację rejestrowania, musisz mieć uprawnienia do następującej akcji RBAC platformy Azure: Microsoft.Storage/register/action. To uprawnienie jest uwzględniane w rolach Współautor i Właściciel .

Zapytanie dotyczące punktu końcowego usługi Blob Storage

Aby pobrać punkt końcowy usługi Blob Storage dla danego konta magazynu, musimy pobrać właściwości konta magazynu, wywołując operację Pobierz właściwości . Poniższe przykłady kodu używają bibliotek dostępu do danych i zarządzania, aby uzyskać punkt końcowy usługi Blob Storage dla określonego konta magazynu:

Aby uzyskać właściwości określonego konta magazynu, użyj następującej metody z obiektu StorageAccountCollection :

Ta metoda zwraca obiekt StorageAccountResource , który reprezentuje konto magazynu.

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

Tworzenie obiektu klienta przy użyciu punktu końcowego

Po utworzeniu punktu końcowego usługi Blob Storage dla konta magazynu można utworzyć wystąpienie obiektu klienta, aby pracować z zasobami danych. Poniższy przykładowy kod tworzy BlobServiceClient obiekt przy użyciu punktu końcowego pobranego we wcześniejszym przykładzie:

// 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 ...

Następne kroki

Wyświetl pełne przykłady kodu (GitHub):

Aby dowiedzieć się więcej na temat tworzenia obiektów klienta, zobacz Tworzenie obiektów klienta korzystających z zasobów danych i zarządzanie nimi.