Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo mostra como se conectar aos recursos do Armazenamento do Microsoft Azure usando a biblioteca de gerenciamento do Armazenamento do Microsoft Azure para .NET. Depois de conectado, você pode criar, atualizar e excluir contas de armazenamento e gerenciar as configurações da conta de armazenamento. Para saber mais sobre as diferenças entre o gerenciamento de recursos e o acesso a dados usando bibliotecas de clientes do Armazenamento do Microsoft Azure, consulte Visão geral das bibliotecas de clientes do Armazenamento do Microsoft Azure.
Referência de API | NuGet | GitHub | Enviar comentários
Pré-requisitos
- Assinatura do Azure - criar uma gratuitamente
- O último SDK do .NET para seu sistema operacional. Obtenha o SDK e não o runtime.
Configurar o seu projeto
Esta seção fornece instruções sobre como preparar um projeto para funcionar com a biblioteca de gerenciamento do Armazenamento do Microsoft Azure para .NET.
No diretório do projeto, instale pacotes para as bibliotecas de cliente do Azure Storage Resource Manage e do Azure Identity usando o comando dotnet add package. O pacote Azure.Identity é necessário para conexões sem senha com os serviços do Azure.
dotnet add package Azure.Identity
dotnet add package Azure.ResourceManager.Storage
Adicione essas diretivas using ao topo do seu arquivo de código:
using Azure.Identity;
using Azure.ResourceManager;
Informações da biblioteca de gerenciamento:
- Azure.ResourceManager.Storage: contém as classes primárias que representam as coleções, os recursos e os dados para gerenciar contas de armazenamento.
Autorizar acesso e criar um cliente
Para conectar um aplicativo e gerenciar recursos de conta de armazenamento, crie um objeto ArmClient. Esse objeto cliente é o ponto de entrada para todos os clientes do ARM (Azure Resource Manager). Como todas as APIs de gerenciamento passam pelo mesmo ponto de extremidade, você só precisa criar um nível ArmClient superior para interagir com os recursos.
Atribuir permissões de gerenciamento com o RBAC do Azure
O Azure fornece funções internas que concedem permissões para chamar operações de gerenciamento. O Armazenamento do Azure também fornece funções internas especificamente para uso com o provedor de recursos de Armazenamento do Microsoft Azure. Para saber mais, confira Funções internas para operações de gerenciamento.
Autorizar o acesso usando DefaultAzureCredential
Você pode autorizar um objeto ArmClient usando um token de autorização do Microsoft Entra. No exemplo de código neste artigo, usamos DefaultAzureCredential para autorizar o objeto cliente. A classe DefaultAzureCredential fornece um fluxo de autenticação TokenCredential padrão para aplicativos que serão implantados no Azure. Para saber mais, consulte DefaultAzureCredential.
Para autorizar com a ID do Microsoft Entra, você precisará usar uma entidade de segurança. O tipo de entidade de segurança necessário depende do local em que o aplicativo é executado. Use a tabela a seguir como guia:
| Onde o aplicativo é executado | Entidade de segurança | Diretrizes |
|---|---|---|
| Computador local (desenvolvimento e teste) | Entidade de serviço | Para saber como registrar o aplicativo, configurar um grupo do Microsoft Entra, atribuir funções e configurar variáveis de ambiente, confira Autorizar o acesso usando entidades de serviço do desenvolvedor |
| Computador local (desenvolvimento e teste) | Identidade do usuário | Para saber como configurar um grupo do Microsoft Entra, atribuir funções e entrar no Azure, confira Autorizar o acesso usando credenciais de desenvolvedor |
| Hospedada no Azure | Identidade gerenciada | Para saber como habilitar uma identidade gerenciada e atribuir funções, veja as diretrizes para autorizar o acesso usando uma identidade gerenciada atribuída pelo sistema ou uma identidade gerenciada atribuída pelo usuário |
| Hospedado fora do Azure (por exemplo, aplicativos locais) | Entidade de serviço | Para saber como registrar o aplicativo, atribuir funções e configurar variáveis de ambiente, confira Autorizar o acesso em aplicativos locais usando uma entidade de serviço de aplicativo |
Uma maneira fácil e segura de autorizar o acesso e se conectar aos recursos da conta de armazenamento é obter um token OAuth criando uma instância de DefaultAzureCredential. Depois, você pode usar essa credencial para criar um objeto ArmClient.
O seguinte exemplo cria um objeto ArmClient autorizado usando DefaultAzureCredential e, em seguida, obtém o recurso de assinatura para a ID de assinatura especificada:
ArmClient armClient = new ArmClient(new DefaultAzureCredential());
// Create a resource identifier, then get the subscription resource
ResourceIdentifier resourceIdentifier = new($"/subscriptions/{subscriptionId}");
SubscriptionResource subscription = armClient.GetSubscriptionResource(resourceIdentifier);
Se você souber exatamente qual tipo de credencial usa para autenticar usuários, poderá obter um token OAuth usando outras classes na biblioteca de clientes de identidade do Azure para .NET. Essas classes são derivadas da classe TokenCredential.
Para saber mais sobre como autorizar operações de gerenciamento, consulte Atribuir permissões de gerenciamento com o RBAC do Azure.
Registrar o provedor de recursos de armazenamento com uma assinatura
Um provedor de recursos deve ser registrado com sua assinatura do Azure antes que você possa trabalhar com ele. Essa etapa só precisa ser feita uma vez por assinatura e só se aplica se o provedor de recursos Microsoft.Storage não estiver registrado na sua assinatura no momento.
Você pode registrar o provedor de recursos de armazenamento ou verificar o status do registro usando o portal do Azure, a CLI do Azure ou o Azure PowerShell.
Você também pode usar as bibliotecas de gerenciamento do Azure para verificar o status do registro e registrar o provedor de recursos de armazenamento, conforme mostrado no seguinte exemplo:
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();
}
Observação
Para executar a operação de registro, você precisa de permissões para a seguinte ação do RBAC do Azure: Microsoft.Storage/register/action. A permissão está incluída nas funções internas de Colaborador e de Proprietário.
Criar um cliente para gerenciar recursos de conta de armazenamento
Depois de criar um objeto ArmClient e registrar o provedor de recursos de Armazenamento, você pode criar objetos cliente nos níveis do grupo de recursos e da conta de armazenamento. O exemplo de código a seguir mostra como criar objetos cliente para um determinado grupo de recursos e uma conta de armazenamento:
// Get a resource group
ResourceGroupResource resourceGroup = await subscription.GetResourceGroupAsync(rgName);
// Get a collection of storage account resources
StorageAccountCollection accountCollection = resourceGroup.GetStorageAccounts();
// Get a specific storage account resource
StorageAccountResource storageAccount = await accountCollection.GetAsync(storageAccountName);
Entender a hierarquia de recursos do cliente
Para reduzir o número de clientes necessários para executar tarefas comuns e o número de parâmetros redundantes que cada um desses clientes usa, o SDK de gerenciamento fornece uma hierarquia de objetos que reflete a hierarquia de objetos no Azure. Cada cliente de recurso no SDK tem métodos para acessar os clientes de recursos de seus filhos que já estão no escopo da assinatura e do grupo de recursos adequados.
Há três níveis padrão de hierarquia para cada tipo de recurso. Para recursos de conta de armazenamento, a hierarquia é a seguinte:
- StorageAccountCollection: representa as operações que você pode executar em uma coleção de contas de armazenamento pertencentes a um recurso pai específico, como um grupo de recursos.
-
StorageAccountResource: representa um objeto cliente de conta de armazenamento completo e contém uma propriedade Data expondo os detalhes como um tipo de
StorageAccountData. Uma instância de classe tem acesso a todas as operações nesse recurso sem a necessidade de passar parâmetros de escopo, como ID da assinatura ou nome do recurso. - StorageAccountData: representa o modelo que compõe um determinado recurso. Normalmente, essa classe é referente aos dados de resposta de uma chamada de serviço e fornece detalhes sobre o recurso.
Crie seu aplicativo
O guia a seguir mostra como gerenciar recursos e executar ações específicas usando a biblioteca de gerenciamento do Armazenamento do Microsoft Azure para .NET:
| Guia | Descrição |
|---|---|
| Gerenciar uma conta de armazenamento | Saiba como criar e gerenciar uma conta de armazenamento, gerenciar chaves de conta de armazenamento e configurar opções de cliente para criar uma política de repetição personalizada. |