Lokale Azure voorziening
.NET .NET Aspire vereenvoudigt de ontwikkeling van lokale cloudeigen apps met het aantrekkelijke app-hostmodel. Met dit model kunt u uw app lokaal uitvoeren met dezelfde configuratie en services als in Azure. In dit artikel leert u hoe u Azure resources kunt inrichten vanuit uw lokale ontwikkelomgeving via de .NET.NET Aspire app-host.
Notitie
Voor de duidelijkheid, resources worden voorzien in Azure, maar het voorzieningsproces start vanuit uw lokale ontwikkelomgeving. Als u uw lokale ontwikkelervaring wilt optimaliseren, kunt u overwegen om emulator of containers te gebruiken wanneer deze beschikbaar zijn. Zie Typische ontwikkelaarservaringvoor meer informatie.
Eisen
In dit artikel wordt ervan uitgegaan dat u een Azure account en abonnement hebt. Als u geen Azure account hebt, kunt u een gratis account maken op Azure gratis account. Om ervoor te zorgen dat de inrichtingsfunctionaliteit correct werkt, moet u geauthenticeerd zijn met Azure. Zorg ervoor dat u de Azure Developer CLI hebt geïnstalleerd. Daarnaast moet u enkele configuratiewaarden opgeven, zodat de inrichtingslogica namens u resources kan maken.
Api's voor het inrichten van app-hosts
De app-host biedt een set API's om Azure resources uit te drukken. Deze API's zijn beschikbaar als uitbreidingsmethoden in .NET AspireAzure hostingbibliotheken, waardoor de IDistributedApplicationBuilder-interface wordt uitgebreid. Wanneer u Azure resources toevoegt aan uw app-host, voegen ze impliciet de juiste inrichtingsfunctionaliteit toe. Met andere woorden, u hoeft geen inrichtings-API's rechtstreeks aan te roepen.
Wanneer de app-host wordt gestart, wordt de volgende inrichtingslogica uitgevoerd:
- De configuratiesectie
Azure
is gevalideerd. - Wanneer de uitvoer van het dashboard en de app-host ongeldig is, geeft het aanwijzingen over wat er ontbreekt. Voor meer informatie, zie Hints voor ontbrekende configuratiewaarden.
- Wanneer geldige Azure resources voorwaardelijk worden ingericht:
- Als er geen Azure implementatie voor een bepaalde resource bestaat, wordt deze gemaakt en geconfigureerd als een implementatie.
- De configuratie van deze implementatie wordt gestempeld met een controlesom om ervoor te zorgen dat resources alleen worden geleverd wanneer dat nodig is.
Bestaande Azure-resources gebruiken
De app-host beheert automatisch de voorziening van Azure bronnen. De eerste keer dat de app-host wordt uitgevoerd, worden de resources die zijn opgegeven in de app-host, uitgevoerd. Bij volgende uitvoeringen worden de resources niet opnieuw ingericht, tenzij de configuratie van de app-host wordt gewijzigd.
Als u Azure resources al buiten de app-host hebt ingericht en deze wilt gebruiken, kunt u de verbindingsreeks opgeven met de AddConnectionString-API, zoals wordt weergegeven in het volgende Azure Key Vault voorbeeld:
// Service registration
var secrets = builder.ExecutionContext.IsPublishMode
? builder.AddAzureKeyVault("secrets")
: builder.AddConnectionString("secrets");
// Service consumption
builder.AddProject<Projects.ExampleProject>()
.WithReference(secrets)
In het voorgaande codefragment ziet u hoe u een Azure Key Vault toevoegt aan de app-host. De AddAzureKeyVault-API wordt gebruikt om de Azure Key Vault toe te voegen aan de app-host. De AddConnectionString
-API wordt gebruikt om de verbindingsreeks aan de app-host op te geven.
Voor sommige Azure resources kunt u zich ook aanmelden om ze als emulator uit te voeren met de RunAsEmulator
-API. Deze API is beschikbaar voor integraties van Azure Cosmos DB en Azure Storage. Als u bijvoorbeeld AzureAzure Cosmos DB als emulator wilt uitvoeren, kunt u het volgende codefragment gebruiken:
var cosmos = builder.AddAzureCosmosDB("cosmos")
.RunAsEmulator();
De RunAsEmulator-API configureert een Azure Cosmos DB resource die moet worden geëmuleerd met behulp van de Azure Cosmos DB-emulator met de NoSQL-API.
.NET Aspire Azure hosting-integraties
Als u Azure resources in uw app-host gebruikt, gebruikt u een of meer van de .NET AspireAzure hostingintegraties. Deze hostingbibliotheken bieden uitbreidingsmethoden voor de IDistributedApplicationBuilder-interface om Azure resources toe te voegen aan uw app-host.
Configuratie
Wanneer u Azure resources in uw lokale ontwikkelomgeving gebruikt, moet u de benodigde configuratiewaarden opgeven. Configuratiewaarden worden opgegeven in de sectie Azure
:
-
SubscriptionId
: de id van het Azure-abonnement. -
AllowResourceGroupCreation
: een Booleaanse waarde die aangeeft of een nieuwe resourcegroep moet worden gemaakt. -
ResourceGroup
: de naam van de resourcegroep die moet worden gebruikt. -
Location
: de Azure regio die moet worden gebruikt.
Bekijk het volgende voorbeeld appsettings.json configuratie:
{
"Azure": {
"SubscriptionId": "<Your subscription id>",
"AllowResourceGroupCreation": true,
"ResourceGroup": "<Valid resource group name>",
"Location": "<Valid Azure location>"
}
}
Belangrijk
Het is raadzaam om deze waarden op te slaan als app-geheimen. Zie App-geheimen beherenvoor meer informatie.
Nadat u de benodigde waarden hebt geconfigureerd, kunt u beginnen met het inrichten van Azure resources in uw lokale ontwikkelomgeving.
Azure referentiearchief inrichten
De .NET Aspire-app-host maakt gebruik van een referentieopslag voor Azure-resourceauthenticatie en -autorisatie. Afhankelijk van uw abonnement is mogelijk het juiste referentiearchief nodig voor scenario's met meerdere tenants.
Met het 📦Aspire.Hosting.Azure NuGet-pakket geïnstalleerd en als uw app-host afhankelijk is van Azure bronnen, is de standaard Azure referentiesleutel afhankelijk van de DefaultAzureCredential. Als u dit gedrag wilt wijzigen, kunt u de waarde voor de referentie-opslag instellen in het bestand appsettings.json, zoals wordt weergegeven in het volgende voorbeeld:
{
"Azure": {
"CredentialSource": "AzureCli"
}
}
Net als bij alle op configuratie gebaseerde instellingen, kunt u deze configureren met alternatieve providers, zoals gebruikersgeheimen of omgevingsvariabelen. De Azure:CredentialSource
waarde kan worden ingesteld op een van de volgende waarden:
-
AzureCli
: Gemachtigden aan de AzureCliCredential. -
AzurePowerShell
: Delegeert aan de AzurePowerShellCredential. -
VisualStudio
: Gemachtigden aan de VisualStudioCredential. -
VisualStudioCode
: Gemachtigden aan de VisualStudioCodeCredential. -
AzureDeveloperCli
: Gemachtigden aan de AzureDeveloperCliCredential. -
InteractiveBrowser
: Delegeert naar de InteractiveBrowserCredential.
Tip
Voor meer informatie over authenticatie en autorisatie in de Azure SDK, zie Referentieketens in de Azure Identiteitsbibliotheek voor .NET.
Ondersteuning voor hulpprogramma's
In Visual Studiokunt u Connected Services gebruiken om de standaardvoorzieningsinstellingen voor Azure te configureren. Selecteer het app-hostproject, klik met de rechtermuisknop op het knooppunt Connected Services en selecteer Azure Instellingen voor het inrichten van resources:
Hiermee opent u een dialoogvenster waarin u de Azure inrichtingsinstellingen kunt configureren, zoals wordt weergegeven in de volgende schermopname:
Hints voor ontbrekende configuratiewaarden
Wanneer de Azure
configuratiesectie ontbreekt, ontbrekende waarden bevat of ongeldig is, biedt het .NET.NET Aspire dashboard nuttige hints. Denk bijvoorbeeld aan een app-host waarvoor de SubscriptionId
configuratiewaarde ontbreekt die een Azure Key Vault resource probeert te gebruiken. De pagina Resources geeft de status aan als ontbrekende abonnementsconfiguratie:
Bovendien geven de logboeken van Console deze informatie weer, bekijk de volgende schermopname:
Bekende beperkingen
Nadat u Azure resources op deze manier hebt ingericht, moet u de resources handmatig opschonen in de Azure-portal, omdat .NET Aspire geen ingebouwd mechanisme biedt om Azure resources te verwijderen. De eenvoudigste manier om dit te bereiken is door de geconfigureerde resourcegroep te verwijderen. U kunt dit doen in de Azure portal of met behulp van de Azure CLI:
az group delete --name <ResourceGroupName>
Vervang <ResourceGroupName>
door de naam van de resourcegroep die u wilt verwijderen. Zie az group deletevoor meer informatie.