Udostępnij przez


Wprowadzenie do biblioteki zarządzania usługi Azure Storage dla platformy .NET

W tym artykule pokazano, jak nawiązać połączenie z zasobami usługi Azure Storage przy użyciu biblioteki zarządzania usługi Azure Storage dla platformy .NET. Po nawiązaniu połączenia możesz tworzyć, aktualizować i usuwać konta magazynu oraz zarządzać ustawieniami konta magazynu. Aby dowiedzieć się więcej o różnicach między zarządzaniem zasobami a dostępem do danych przy użyciu bibliotek klienckich usługi Azure Storage, zobacz Omówienie bibliotek klienckich usługi Azure Storage.

Dokumentacja | interfejsu API NuGet | GitHub | Prześlij opinię

Wymagania wstępne

  • Subskrypcja platformy Azure — utwórz jedną bezpłatnie
  • Najnowszy zestaw .NET SDK dla systemu operacyjnego. Pamiętaj, aby pobrać zestaw SDK, a nie środowisko uruchomieniowe.

konfigurowanie projektu

Ta sekcja przeprowadzi Cię przez proces przygotowywania projektu do pracy z biblioteką zarządzania usługi Azure Storage dla platformy .NET.

Z katalogu projektu zainstaluj pakiety dla bibliotek klienta usługi Azure Storage Resource Manager i azure Identity przy użyciu dotnet add package polecenia . Pakiet Azure.Identity jest wymagany w przypadku połączeń bez hasła z usługami platformy Azure.

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

Dodaj te using dyrektywy na początku pliku kodu:

using Azure.Identity;
using Azure.ResourceManager;

Informacje o bibliotece zarządzania:

Autoryzowanie dostępu i tworzenie klienta

Aby połączyć aplikację i zarządzać zasobami konta magazynu, utwórz obiekt ArmClient . Ten obiekt klienta jest punktem wejścia dla wszystkich klientów usługi Azure Resource Manager (ARM). Ponieważ wszystkie interfejsy API zarządzania przechodzą przez ten sam punkt końcowy, musisz utworzyć tylko jeden najwyższy poziom ArmClient w celu interakcji z zasobami.

Przypisywanie uprawnień zarządzania przy użyciu kontroli dostępu opartej na rolach platformy Azure

Platforma Azure udostępnia wbudowane role, które udzielają uprawnień do wywoływania operacji zarządzania. Usługa Azure Storage udostępnia również wbudowane role przeznaczone specjalnie do użycia z dostawcą zasobów usługi Azure Storage. Aby dowiedzieć się więcej, zobacz Wbudowane role dla operacji zarządzania.

Autoryzowanie dostępu przy użyciu elementu DefaultAzureCredential

Obiekt można autoryzować ArmClient przy użyciu tokenu autoryzacji entra firmy Microsoft. W przykładzie kodu w tym artykule używamy DefaultAzureCredential metody do autoryzowania obiektu klienta. Klasa DefaultAzureCredential udostępnia domyślny TokenCredential przepływ uwierzytelniania dla aplikacji, które zostaną wdrożone na platformie Azure. Aby dowiedzieć się więcej, zobacz DefaultAzureCredential.

Aby autoryzować za pomocą identyfikatora Entra firmy Microsoft, musisz użyć podmiotu zabezpieczeń. Typ wymaganego podmiotu zabezpieczeń zależy od tego, gdzie działa aplikacja. Skorzystaj z poniższej tabeli jako przewodnika:

Gdzie działa aplikacja Podmiot zabezpieczeń Wskazówki
Maszyna lokalna (programowanie i testowanie) Jednostka usługi Aby dowiedzieć się, jak zarejestrować aplikację, skonfigurować grupę firmy Microsoft Entra, przypisać role i skonfigurować zmienne środowiskowe, zobacz Autoryzowanie dostępu przy użyciu jednostek usługi dewelopera
Maszyna lokalna (programowanie i testowanie) Tożsamość użytkownika Aby dowiedzieć się, jak skonfigurować grupę firmy Microsoft Entra, przypisać role i zalogować się na platformie Azure, zobacz Autoryzowanie dostępu przy użyciu poświadczeń dewelopera
Hostowane na platformie Azure Tożsamość zarządzana Aby dowiedzieć się, jak włączyć tożsamość zarządzaną i przypisać role, zobacz wskazówki dotyczące autoryzowania dostępu przy użyciu tożsamości zarządzanej przypisanej przez system lub tożsamości zarządzanej przypisanej przez użytkownika
Hostowane poza platformą Azure (na przykład aplikacje lokalne) Jednostka usługi Aby dowiedzieć się, jak zarejestrować aplikację, przypisać role i skonfigurować zmienne środowiskowe, zobacz Autoryzowanie dostępu z aplikacji lokalnych przy użyciu jednostki usługi aplikacji

Łatwym i bezpiecznym sposobem autoryzowania dostępu i nawiązywania połączenia z zasobami konta magazynu jest uzyskanie tokenu OAuth przez utworzenie wystąpienia DefaultAzureCredential . Następnie możesz użyć tego poświadczenia, aby utworzyć obiekt ArmClient .

Poniższy przykład tworzy ArmClient obiekt autoryzowany przy użyciu metody DefaultAzureCredential, a następnie pobiera zasób subskrypcji dla określonego identyfikatora subskrypcji:

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

Jeśli wiesz dokładnie, którego typu poświadczeń używasz do uwierzytelniania użytkowników, możesz uzyskać token OAuth przy użyciu innych klas w bibliotece klienta tożsamości platformy Azure dla platformy .NET. Te klasy pochodzą z klasy TokenCredential .

Aby dowiedzieć się więcej na temat autoryzowania operacji zarządzania, zobacz Przypisywanie uprawnień zarządzania przy użyciu kontroli dostępu opartej na rolach platformy Azure.

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ższym przykładzie:

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 we wbudowanych rolach Współautor i Właściciel .

Tworzenie klienta do zarządzania zasobami konta magazynu

Po utworzeniu ArmClient obiektu i zarejestrowaniu dostawcy zasobów usługi Storage można utworzyć obiekty klienta na poziomach grupy zasobów i konta magazynu. W poniższym przykładzie kodu pokazano, jak utworzyć obiekty klienta dla danej grupy zasobów i konta magazynu:

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

Omówienie hierarchii zasobów klienta

Aby zmniejszyć liczbę klientów potrzebnych do wykonywania typowych zadań, a także liczbę nadmiarowych parametrów wykonywanych przez każdego z tych klientów, zestaw SDK zarządzania udostępnia hierarchię obiektów, która odzwierciedla hierarchię obiektów na platformie Azure. Każdy klient zasobów w zestawie SDK ma metody uzyskiwania dostępu do klientów zasobów swoich elementów podrzędnych, które są już ograniczone do odpowiedniej subskrypcji i grupy zasobów.

Dla każdego typu zasobu istnieją trzy standardowe poziomy hierarchii. W przypadku zasobów konta magazynu hierarchia jest następująca:

  • StorageAccountCollection: reprezentuje operacje, które można wykonać w kolekcji kont magazynu należących do określonego zasobu nadrzędnego, takiego jak grupa zasobów.
  • StorageAccountResource: reprezentuje obiekt klienta pełnego konta magazynu i zawiera właściwość Dane uwidaczniająca szczegóły jako StorageAccountData typ. Wystąpienie klasy ma dostęp do wszystkich operacji na tym zasobie bez konieczności przekazywania parametrów zakresu, takich jak identyfikator subskrypcji lub nazwa zasobu.
  • StorageAccountData: reprezentuje model tworzący dany zasób. Zazwyczaj ta klasa to dane odpowiedzi z wywołania usługi i zawierają szczegółowe informacje o zasobie.

Kompilowanie aplikacji

W poniższym przewodniku przedstawiono sposób zarządzania zasobami i wykonywania określonych akcji przy użyciu biblioteki zarządzania usługi Azure Storage dla platformy .NET:

Przewodnik opis
Zarządzanie kontem magazynu Dowiedz się, jak utworzyć konto magazynu i zarządzać nim, zarządzać kluczami konta magazynu i konfigurować opcje klienta w celu utworzenia niestandardowych zasad ponawiania prób.