Dela via


Försörjning av lokala Azure

.NET .NET Aspire förenklar lokal molnnativ apputveckling med sin övertygande värdmodell för appar. Med den här modellen kan du köra appen lokalt med samma konfiguration och tjänster som i Azure. I den här artikeln lär du dig hur du etablerar Azure resurser från din lokala utvecklingsmiljö via .NET.NET Aspire appvärd.

Not

För att förtydliga, tilldelas resurser i Azure, men tilldelningsprocessen startas från din lokala utvecklingsmiljö. Om du vill optimera din lokala utvecklingsupplevelse bör du överväga att använda emulator eller containrar när det är tillgängligt. Mer information finns i Typisk utvecklarupplevelse.

Krav

Den här artikeln förutsätter att du har ett Azure konto och en prenumeration. Om du inte har ett Azure konto kan du skapa ett kostnadsfritt konto på Azure kostnadsfritt konto. För att etableringsfunktionen ska fungera korrekt måste du autentiseras med Azure. Kontrollera att du har Azure Developer CLI installerat. Dessutom måste du ange vissa konfigurationsvärden så att etableringslogik kan skapa resurser åt dig.

API:er för applikationsvärdtjänster

Appvärden tillhandahåller en uppsättning API:er för att uttrycka Azure resurser. Dessa API:er är tillgängliga som tilläggsmetoder i .NET AspireAzure värdbibliotek, vilket utökar IDistributedApplicationBuilder-gränssnittet. När du lägger till Azure-resurser till applikationsvärden, läggs lämpliga tilldelningsfunktioner till automatiskt. Med andra ord behöver du inte anropa några etablerings-API:er direkt.

När appvärden startar körs följande etableringslogik:

  1. Avsnittet Azure-konfigurationen har verifierats.
  2. När något är ogiltigt ger instrumentpanelen och apputdata tips om vad som saknas. Mer information finns i Tips om saknade konfigurationsvärden.
  3. När giltiga Azure resurser etableras under vissa villkor:
    1. Om det inte finns någon Azure distribution för en viss resurs skapas och konfigureras den som en distribution.
    2. Konfigurationen av distributionen stämplas med en kontrollsumma som ett sätt att endast möjliggöra allokering av resurser vid behov.

Använda befintliga Azure resurser

Appvärden hanterar automatiskt tilldelningen av Azure-resurser. Första gången appvärden körs, provisionerar den de resurser som specificeras i appvärden. Efterföljande körningar allokerar inte resurserna igen om inte appvärdkonfigurationen ändras.

Om du redan har tillhandahållit Azure-resurser utanför appvärden och vill använda dem, kan du ange anslutningssträngen med AddConnectionString-API:et som visas i följande Azure Key Vault-exempel.

// Service registration
var secrets = builder.ExecutionContext.IsPublishMode
    ? builder.AddAzureKeyVault("secrets")
    : builder.AddConnectionString("secrets");

// Service consumption
builder.AddProject<Projects.ExampleProject>()
       .WithReference(secrets)

Föregående kodfragment visar hur du lägger till en Azure Key Vault till appvärden. AddAzureKeyVault-API:et används för att lägga till Azure Key Vault till appvärden. API:et AddConnectionString används för att tillhandahålla anslutningssträngen till appvärden.

För vissa Azure resurser kan du också välja att köra dem som en emulator med RunAsEmulator-API:et. Det här API:et är tillgängligt för Azure Cosmos DB- och Azure Storage-integreringar. Om du till exempel vill köra AzureAzure Cosmos DB som en emulator kan du använda följande kodfragment:

var cosmos = builder.AddAzureCosmosDB("cosmos")
                    .RunAsEmulator();

RunAsEmulator-API:et konfigurerar en Azure Cosmos DB resurs som ska emuleras med hjälp av Azure Cosmos DB-emulatorn med NoSQL-API:et.

.NET Aspire Azure värdintegreringar

Om du använder Azure-resurser i din programvärd, använder du en eller flera av .NET AspireAzure värdintegreringar. Dessa värdbibliotek tillhandahåller tilläggsmetoder till IDistributedApplicationBuilder-gränssnittet för att lägga till resurser Azure till din appvärd.

Konfiguration

När du använder Azure resurser i din lokala utvecklingsmiljö måste du ange nödvändiga konfigurationsvärden. Konfigurationsvärden anges i avsnittet Azure:

  • SubscriptionId: Prenumerations-ID för Azure.
  • AllowResourceGroupCreation: Ett booleskt värde som anger om du vill skapa en ny resursgrupp.
  • ResourceGroup: Namnet på resursgruppen som ska användas.
  • Location: Den Azure region som ska användas.

Överväg följande exempel appsettings.json konfiguration:

{
  "Azure": {
    "SubscriptionId": "<Your subscription id>",
    "AllowResourceGroupCreation": true,
    "ResourceGroup": "<Valid resource group name>",
    "Location": "<Valid Azure location>"
  }
}

Viktig

Vi rekommenderar att du lagrar dessa värden som apphemligheter. Mer information finns i Hantera apphemligheter.

När du har konfigurerat nödvändiga värden kan du börja etablera Azure resurser i din lokala utvecklingsmiljö.

Azure försörjningslager för autentiseringsuppgifter

Värd för appen .NET Aspire använder ett uppgiftsarkiv för autentisering och auktorisering av resurser Azure. Beroende på din prenumeration kan rätt autentiseringsarkiv behövas för etableringsscenarier för flera klientorganisationer.

Med 📦Aspire.Hosting.Azure NuGet-paketet installerat, och om din applikationsvärd är beroende av Azure resurser, förlitar sig standardlagret för Azure autentiseringsuppgifter på DefaultAzureCredential. Om du vill ändra det här beteendet kan du ange värdet för lagring av autentiseringsuppgifter i filen appsettings.json, som du ser i följande exempel:

{
  "Azure": {
    "CredentialSource": "AzureCli"
  }
}

Precis som med alla konfigurationsbaserade inställningarkan du konfigurera dessa med alternativa leverantörer, till exempel användarhemligheter eller miljövariabler. Värdet Azure:CredentialSource kan anges till något av följande värden:

Tips

Mer information om Azure SDK-autentisering och auktorisering finns i Kedjor för autentiseringsuppgifter i Azure Identity-biblioteket för .NET.

Verktygsstöd

I Visual Studiokan du använda Anslutningstjänster för att konfigurera standardinställningarna för Azure tillhandahållande. Välj apphostningsprojektet, högerklicka på noden Anslutna tjänster och välj Azure Resurskonfigurationsinställningar:

Visual Studio 2022: .NET Aspire appvärdprojekt, snabbmenyn Anslutna tjänster.

Då öppnas en dialogruta där du kan konfigurera Azure etableringsinställningar, enligt följande skärmbild:

Visual Studio 2022: dialogrutan Azure Inställningar för resursetablering.

Tips om konfigurationsvärde saknas

När Azure-konfigurationsavsnittet saknas, har saknade värden eller är ogiltigt innehåller .NET.NET Aspire instrumentpanel användbara tips. Anta till exempel att en appvärd saknar SubscriptionId-konfigurationsvärdet och försöker använda en Azure Key Vault-resurs. Sidan Resurser visar staten som Saknad prenumerationskonfiguration:

.NET.NET Aspire instrumentpanel: Prenumerationskonfiguration saknas.

Dessutom visar loggarna för -konsolen den här informationen, tänk på följande skärmbild:

.NET.NET Aspire instrumentpanel: Konsolloggar, prenumerationskonfiguration saknas.

Kända begränsningar

När du har etablerat Azure resurser på det här sättet måste du manuellt rensa resurserna i Azure-portalen eftersom .NET Aspire inte tillhandahåller någon inbyggd mekanism för att ta bort Azure resurser. Det enklaste sättet att uppnå detta är genom att ta bort den konfigurerade resursgruppen. Detta kan göras i Azure portalen eller med hjälp av Azure CLI:

az group delete --name <ResourceGroupName>

Ersätt <ResourceGroupName> med namnet på den resursgrupp som du vill ta bort. Mer information finns i az group delete.