Dela via


Kom igång med Azure Storage-hanteringsbiblioteket för .NET

Den här artikeln visar hur du ansluter till Azure Storage-resurser med hjälp av Azure Storage-hanteringsbiblioteket för .NET. När du är ansluten kan du skapa, uppdatera och ta bort lagringskonton och hantera lagringskontoinställningar. Mer information om skillnaderna mellan resurshantering och dataåtkomst med hjälp av Azure Storage-klientbibliotek finns i Översikt över Azure Storage-klientbiblioteken.

API-referens | GitHub | Ge feedback

Förutsättningar

Konfigurera projektet

Det här avsnittet beskriver hur du förbereder ett projekt för att arbeta med Azure Storage-hanteringsbiblioteket för .NET.

Från projektkatalogen installerar du paket för Azure Storage Resource Manager och Azure Identity-klientbiblioteken med hjälp av dotnet add package kommandot . Azure.Identity-paketet behövs för lösenordslösa anslutningar till Azure-tjänster.

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

Lägg till dessa using direktiv överst i kodfilen:

using Azure.Identity;
using Azure.ResourceManager;

Information om administrationsbibliotek:

  • Azure.ResourceManager.Storage: Innehåller de primära klasserna som representerar samlingar, resurser och data för hantering av lagringskonton.

Auktorisera åtkomst och skapa en klient

Om du vill ansluta ett program och hantera lagringskontoresurser skapar du ett ArmClient-objekt . Det här klientobjektet är startpunkten för alla Arm-klienter (Azure Resource Manager). Eftersom alla hanterings-API:er går igenom samma slutpunkt behöver du bara skapa en toppnivå ArmClient för att interagera med resurser.

Tilldela hanteringsbehörigheter med Azure RBAC

Azure tillhandahåller inbyggda roller som ger behörighet att anropa hanteringsåtgärder. Azure Storage tillhandahåller även inbyggda roller som är specifikt för användning med Azure Storage-resursprovidern. Mer information finns i Inbyggda roller för hanteringsåtgärder.

Auktorisera åtkomst med defaultAzureCredential

Du kan auktorisera ett ArmClient objekt med hjälp av en Microsoft Entra-auktoriseringstoken. I kodexemplet i den här artikeln använder DefaultAzureCredential vi för att auktorisera klientobjektet. Klassen DefaultAzureCredential tillhandahåller ett standardautentiseringsflöde TokenCredential för program som ska distribueras till Azure. Mer information finns i DefaultAzureCredential.

Om du vill auktorisera med Microsoft Entra-ID måste du använda ett säkerhetsobjekt. Vilken typ av säkerhetsobjekt du behöver beror på var programmet körs. Använd följande tabell som en guide:

Där programmet körs Säkerhetsprincip Vägledning
Lokal dator (utveckla och testa) Tjänstens huvudnamn Information om hur du registrerar appen, konfigurerar en Microsoft Entra-grupp, tilldelar roller och konfigurerar miljövariabler finns i Auktorisera åtkomst med utvecklartjänstens huvudnamn
Lokal dator (utveckla och testa) Användaridentitet Information om hur du konfigurerar en Microsoft Entra-grupp, tilldelar roller och loggar in på Azure finns i Auktorisera åtkomst med autentiseringsuppgifter för utvecklare
Värdhanterad i Azure Hanterad identitet Information om hur du aktiverar en hanterad identitet och tilldelar roller finns i vägledningen för att auktorisera åtkomst med hjälp av en systemtilldelad hanterad identitet eller en användartilldelad hanterad identitet
Värdhanterad utanför Azure (till exempel lokala appar) Tjänstens huvudnamn Information om hur du registrerar appen, tilldelar roller och konfigurerar miljövariabler finns i Auktorisera åtkomst från lokala appar med hjälp av ett huvudnamn för programtjänsten

Ett enkelt och säkert sätt att auktorisera åtkomst och ansluta till lagringskontoresurser är att hämta en OAuth-token genom att skapa en DefaultAzureCredential-instans . Du kan sedan använda autentiseringsuppgifterna för att skapa ett ArmClient-objekt .

I följande exempel skapas ett ArmClient-objekt som auktoriserats med DefaultAzureCredential och som sedan hämtar prenumerationsresursen för det angivna prenumerations-ID:t.

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

Om du vet exakt vilken typ av autentiseringsuppgifter du använder för att autentisera användare kan du hämta en OAuth-token med hjälp av andra klasser i Azure Identity-klientbiblioteket för .NET. Dessa klasser härleds från klassen TokenCredential .

Mer information om hur du auktoriserar hanteringsåtgärder finns i Tilldela hanteringsbehörigheter med Azure RBAC.

Registrera lagringsresursprovidern med en prenumeration

En resursprovider måste registreras med din Azure-prenumeration innan du kan arbeta med den. Det här steget behöver bara utföras en gång per prenumeration och gäller endast om resursprovidern Microsoft.Storage för närvarande inte är registrerad i din prenumeration.

Du kan registrera lagringsresursprovidern eller kontrollera registreringsstatusen med hjälp av Azure Portal, Azure CLI eller Azure PowerShell.

Du kan också använda Azure-hanteringsbiblioteken för att kontrollera registreringsstatusen och registrera lagringsresursprovidern, som du ser i följande exempel:

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

Kommentar

För att utföra registeråtgärden behöver du behörigheter för följande Azure RBAC-åtgärd: Microsoft.Storage/register/action. Den här behörigheten ingår i de inbyggda rollerna Deltagare och Ägare .

Skapa en klient för att hantera lagringskontoresurser

När du har skapat ett ArmClient objekt och registrerat lagringsresursprovidern kan du skapa klientobjekt på resursgrupps- och lagringskontonivå. I följande kodexempel visas hur du skapar klientobjekt för en viss resursgrupp och ett visst lagringskonto:

// 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);

Förstå klientresurshierarkin

För att minska både antalet klienter som behövs för att utföra vanliga uppgifter och antalet redundanta parametrar som var och en av dessa klienter tar, tillhandahåller hanterings-SDK en objekthierarki som återspeglar objekthierarkin i Azure. Varje resursklient i SDK har metoder för att komma åt resursklienter för sina barn som redan är avgränsade till rätt prenumeration och resursgrupp.

Det finns tre standardnivåer i hierarkin för varje resurstyp. För lagringskontoresurser är hierarkin följande:

  • StorageAccountCollection: Representerar de åtgärder som du kan utföra på en samling lagringskonton som tillhör en specifik överordnad resurs, till exempel en resursgrupp.
  • StorageAccountResource: Representerar ett fullständigt lagringskontoklientobjekt och innehåller en dataegenskap som exponerar informationen som en StorageAccountData typ. En klassinstans har åtkomst till alla åtgärder på resursen utan att behöva skicka in omfångsparametrar som prenumerations-ID eller resursnamn.
  • StorageAccountData: Representerar den modell som utgör en viss resurs. Vanligtvis är den här klassen svarsdata från ett tjänstanrop och innehåller information om resursen.

Skapa ditt program

Följande guide visar hur du hanterar resurser och utför specifika åtgärder med hjälp av Azure Storage-hanteringsbiblioteket för .NET:

Guide beskrivning
Hantera ett lagringskonto Lär dig hur du skapar och hanterar ett lagringskonto, hanterar lagringskontonycklar och konfigurerar klientalternativ för att skapa en anpassad återförsöksprincip.