Sdílet prostřednictvím


Dotazování na koncový bod služby Blob Storage pomocí knihovny pro správu služby Azure Storage

Koncový bod služby Blob Storage tvoří základní adresu všech objektů v rámci účtu úložiště. Při vytváření účtu úložiště určíte, jaký typ koncového bodu chcete použít. Blob Storage podporuje dva typy koncových bodů:

  • Standardní koncový bod obsahuje jedinečný název účtu úložiště spolu s pevným názvem domény. Formát standardního koncového bodu je https://<storage-account>.blob.core.windows.net.
  • Koncový bod zóny Azure DNS (Preview) dynamicky vybere zónu Azure DNS a přiřadí ji k účtu úložiště při jeho vytvoření. Formát koncového bodu zóny Azure DNS je https://<storage-account>.z[00-99].blob.storage.azure.net.

Když vaše aplikace vytvoří objekt klienta služby, který se připojuje k datovým prostředkům služby Blob Storage, předáte identifikátor URI odkazující na koncový bod do konstruktoru klienta služby. Řetězec identifikátoru URI můžete sestavit ručně nebo můžete za běhu zadat dotaz na koncový bod služby pomocí knihovny pro správu služby Azure Storage.

Důležité

Při odkazování na koncový bod služby v klientské aplikaci se doporučuje vyhnout se závislosti na IP adrese uložené v mezipaměti. IP adresa účtu úložiště se může změnit a spoléhat se na IP adresu uloženou v mezipaměti může vést k neočekávanému chování.

CNAMEs, které jsou přidružené ke koncovému bodu účtu úložiště, se můžou bez předchozího upozornění změnit. Vaše aplikace by neměla záviset na počtu záznamů CNAME ani poddoménách přidružených k těmto záznamům CNAME.

Kromě toho doporučujeme dodržovat hodnotu TTL (Time to Live) záznamu DNS a vyhnout se jeho přepsání. Přepsání hodnoty TTL DNS může vést k neočekávanému chování.

Další informace najdete v tématu záznamy CNAME, subdomény a IP adresy.

Knihovna pro správu Azure Storage poskytuje programový přístup k poskytovateli prostředků Azure Storage. Poskytovatel prostředků je implementace Azure Storage Azure Resource Manageru. Knihovna pro správu umožňuje vývojářům spravovat účty úložiště a konfiguraci účtu a také konfigurovat zásady správy životního cyklu, zásady replikace objektů a zásady neměnnosti.

V tomto článku se dozvíte, jak dotazovat koncový bod služby Blob Storage pomocí knihovny pro správu služby Azure Storage. Tento koncový bod pak použijete k vytvoření objektu BlobServiceClient pro připojení k datovým prostředkům blob Storage.

Nastavení projektu

Pokud chcete pracovat s příklady kódu v tomto článku, nastavte projekt pomocí následujícího postupu.

Instalace balíčků

Nainstalujte balíčky pro práci s knihovnami použitými v tomto příkladu.

Nainstalujte následující balíčky pomocí dotnet add package:

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

Nastavení kódu aplikace

Přidejte do kódu potřebné using direktivy nebo import direktivy. Všimněte si, že příklady kódu mohou rozdělit funkce mezi soubory, ale v této části jsou všechny direktivy uvedeny společně.

Přidejte následující using direktivy:

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

Informace o klientské knihovně:

  • Azure.Identity: Poskytuje podporu ověřování tokenů Microsoft Entra napříč sadou Azure SDK a je potřeba pro připojení bez hesla ke službám Azure.
  • Azure.ResourceManager.Storage: Podporuje správu prostředků Azure Storage, včetně skupin prostředků a účtů úložiště.
  • Azure.Storage.Blobs: Obsahuje primární třídy, které můžete použít pro práci s datovými prostředky služby Blob Storage.

Registrace poskytovatele prostředků úložiště v předplatném

Než s ním budete moct pracovat, musí být poskytovatel prostředků zaregistrovaný ve vašem předplatném Azure. Tento krok je potřeba provést jenom jednou pro každé předplatné a platí jenom v případě, že poskytovatel prostředků Microsoft.Storage není aktuálně zaregistrovaný ve vašem předplatném.

Poskytovatele prostředků úložiště můžete zaregistrovat nebo zkontrolovat stav registrace pomocí webu Azure Portal, Azure CLI nebo Azure PowerShellu.

Knihovny pro správu Azure můžete také použít ke kontrole stavu registrace a registraci poskytovatele prostředků úložiště, jak je znázorněno v následujících příkladech:

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

Poznámka:

K provedení operace registrace budete potřebovat oprávnění pro následující akci Azure RBAC: Microsoft.Storage/register/action. Toto oprávnění je součástí rolí Přispěvatel a Vlastník .

Dotaz na koncový bod služby Blob Storage

K načtení koncového bodu služby Blob Storage pro daný účet úložiště potřebujeme získat vlastnosti účtu úložiště voláním operace Získat vlastnosti . Následující ukázky kódu používají k získání koncového bodu služby Blob Storage pro zadaný účet úložiště jak přístup k datům, tak knihovny pro správu:

Chcete-li získat vlastnosti pro zadaný účet úložiště, použijte následující metodu z StorageAccountCollection objektu:

Tato metoda vrátí objekt StorageAccountResource , který představuje účet úložiště.

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

Vytvoření objektu klienta pomocí koncového bodu

Jakmile budete mít koncový bod služby Blob Storage pro účet úložiště, můžete vytvořit instanci klientského objektu pro práci s datovými prostředky. Následující ukázka kódu vytvoří BlobServiceClient objekt pomocí koncového bodu, který jsme získali v předchozím příkladu:

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

Další kroky

Prohlédněte si úplné ukázky kódu (GitHub):

Další informace o vytváření klientských objektů najdete v tématu Vytváření a správa klientských objektů, které pracují s datovými prostředky.