Compartir a través de


Consulta de un punto de conexión de Blob Storage mediante la biblioteca de administración de Azure Storage.

Un punto de conexión de Blob Storage forma la dirección base de todos los objetos de una cuenta de almacenamiento. Al crear una cuenta de almacenamiento, se especifica el tipo de punto de conexión que desea usar. Blob Storage admite dos tipos de puntos de conexión.

  • Un punto de conexión estándar incluye el nombre de la cuenta de almacenamiento único junto con un nombre de dominio fijo. El formato de un punto de conexión estándar es https://<storage-account>.blob.core.windows.net.
  • Un punto de conexión de zona de Azure DNS (versión preliminar) selecciona dinámicamente una zona de Azure DNS y la asigna a la cuenta de almacenamiento cuando se crea. El formato de un punto de conexión de zona de Azure DNS es https://<storage-account>.z[00-99].blob.storage.azure.net.

Cuando la aplicación crea un objeto de cliente de servicio que se conecta a los recursos de datos de Blob Storage, se pasa un URI que hace referencia al punto de conexión al constructor de cliente de servicio. Puede construir manualmente la cadena de URI o puede consultar el punto de conexión de servicio en tiempo de ejecución mediante la biblioteca de administración de Azure Storage.

Importante

Al hacer referencia a un punto de conexión de servicio en una aplicación cliente, se recomienda evitar la dependencia de una dirección IP almacenada en caché. La dirección IP de la cuenta de almacenamiento está sujeta a cambios y, por su parte, confiar en una dirección IP almacenada en caché podría dar lugar a comportamientos inesperados.

Los CNAME asociados a un punto de conexión de cuenta de almacenamiento pueden cambiar sin previo aviso. La aplicación no debe depender del número de registros CNAME o de los subdominios asociados a esos registros CNAME.

Además, se recomienda respetar el período de vida (TTL) del registro DNS y evitar reemplazarlo. La invalidación del TTL de DNS podría dar lugar a comportamientos inesperados.

Para obtener más información, consulte registros CNAME, subdominios y direcciones IP.

La biblioteca de administración de Azure Storage proporciona acceso mediante programación al proveedor de recursos de Azure Storage. El proveedor de recursos es la implementación de Azure Storage de Azure Resource Manager. La biblioteca de administración permite a los desarrolladores administrar cuentas de almacenamiento y la configuración de cuentas, así como configurar directivas de administración del ciclo de vida, directivas de replicación de objetos y directivas de inmutabilidad.

En este artículo, aprenderá a consultar un punto de conexión de Blob Storage mediante la biblioteca de administración de Azure Storage. Después, use ese punto de conexión para crear un objeto BlobServiceClient para conectarse a los recursos de datos de Blob Storage.

Configuración del proyecto

Para trabajar con los ejemplos de código de este artículo, siga los pasos siguientes a fin de configurar el proyecto.

Instalar paquetes

Instale paquetes para trabajar con las bibliotecas usadas en este ejemplo.

Instale los siguientes paquetes mediante dotnet add package:

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

Configuración del código de la aplicación

Agregue las directivas necesarias using o import al código. Tenga en cuenta que los ejemplos de código pueden dividir la funcionalidad entre archivos, pero en esta sección todas las directivas se enumeran juntas.

Agregue las siguientes directivas using:

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

Información sobre la biblioteca cliente:

  • azure-identity: proporciona compatibilidad con la autenticación de tokens de Microsoft Entra en el SDK de Azure y es necesario para las conexiones sin contraseña a los servicios de Azure.
  • Azure.ResourceManager.Storage: admite la administración de recursos de Azure Storage, incluidos los grupos de recursos y las cuentas de almacenamiento.
  • Azure.Storage.Blobs: contiene las clases principales que puede usar para trabajar con recursos de datos de Blob Storage.

Registro de un proveedor de recursos de Storage con una suscripción

Un proveedor de recursos debe registrarse con su suscripción de Azure para poder trabajar con él. Este paso solo debe realizarse una vez por suscripción y solo se aplica si el proveedor de recursos Microsoft.Storage no está registrado actualmente en la suscripción.

Puede registrar el proveedor de recursos de Storage o comprobar el estado de registro mediante Azure Portal, la CLI de Azure o Azure PowerShell.

También puede usar las bibliotecas de administración de Azure para comprobar el estado de registro y registrar el proveedor de recursos de Storage, como se muestra en los ejemplos siguientes:

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

Nota

Para realizar la operación de registro, necesitará permisos para la siguiente acción de RBAC de Azure: Microsoft.Storage/register/action. Este permiso se incluye en los roles Colaborador y Propietario.

Consulta del punto de conexión de Blob Storage

Para recuperar el punto de conexión de Blob Storage para una cuenta de almacenamiento determinada, es necesario obtener las propiedades de la cuenta de almacenamiento mediante una llamada a la operación Obtener propiedades. Los ejemplos de código siguientes usan el acceso a los datos y las bibliotecas de administración para obtener un punto de conexión de Blob Storage para una cuenta de almacenamiento especificada:

Para obtener las propiedades de una cuenta de almacenamiento especificada, use el siguiente método desde un objeto StorageAccountCollection:

Este método devuelve un objeto StorageAccountResource, que representa la cuenta de almacenamiento.

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

Creación de un objeto de cliente mediante el punto de conexión

Una vez que tenga el punto de conexión de Blob Storage para una cuenta de almacenamiento, puede crear una instancia de un objeto de cliente para trabajar con recursos de datos. En el ejemplo de código siguiente se crea un objeto BlobServiceClient mediante el punto de conexión que recuperamos en el ejemplo anterior:

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

Pasos siguientes

Ver los ejemplos de código completos (GitHub):

Para obtener más información sobre cómo crear objetos de cliente, consulte Crear y administrar objetos de cliente que interactúan con los recursos de datos.