.NET Aspire Azure Funktionseinbindung (Vorschau)
umfasst:Hosting-Integration keine Client Integration
Wichtig
Die Integration von .NET AspireAzure Funktionen befindet sich derzeit in der Vorschau und kann geändert werden.
Azure Funktionen ist eine serverlose Lösung, mit der Sie weniger Code schreiben, weniger Infrastruktur erhalten und Kosten sparen können. Mit der Integration von .NET AspireAzure Functions können Sie ein Azure Functions .NET Projekt als Teil des App-Hosts entwickeln, debuggen und orchestrieren.
Es wird erwartet, dass Sie das erforderliche Azure Tool installiert haben:
Unterstützte Szenarien
Die .NET AspireAzure-Funktionsintegration hat mehrere wichtige unterstützte Szenarien. In diesem Abschnitt werden die Szenarien beschrieben und Details zur Implementierung der einzelnen Ansätze bereitgestellt.
Unterstützte Trigger
In der folgenden Tabelle sind die unterstützten Trigger für Azure Funktionen in der .NET Aspire Integration aufgeführt:
Auslöser | Attribut | Details |
---|---|---|
Azure Event Hubs Auslöser | EventHubTrigger |
📦 Aspire. Hosting.Azure. EventHubs- |
Azure Service Bus Auslöser | ServiceBusTrigger |
📦 Aspire. Hosting.Azure. ServiceBus- |
Azure Storage Blobs trigger | BlobTrigger |
📦 Aspire. Hosting.Azure. Speicher |
Azure Storage Queues Auslöser | QueueTrigger |
📦 Aspire. Hosting.Azure. Speicher |
HTTP-Trigger | HttpTrigger |
Wird ohne zusätzliche Abhängigkeiten von Ressourcen unterstützt. |
Timertrigger | TimerTrigger |
Wird ohne zusätzliche Ressourcenabhängigkeiten unterstützt – basiert auf impliziter Hostspeicherung. |
Wichtig
Andere Azure Funktionsauslöser und Bindungen werden derzeit in der Integration von .NET AspireAzure Funktionen nicht unterstützt.
Einsatz
Derzeit wird die Bereitstellung nur für Container in Azure Container Apps (ACA) mithilfe der SDK-Funktion zum Veröffentlichen von Containern in Microsoft.Azure.Functions.Worker.Sdk
unterstützt. Diese Bereitstellungsmethode unterstützt derzeit keine KEDA-basierte automatische Skalierung.
Konfigurieren externer HTTP-Endpunkte
Um HTTP-Trigger öffentlich zugänglich zu machen, rufen Sie die WithExternalHttpEndpoints-API auf dem AzureFunctionsProjectResourceauf. Weitere Informationen finden Sie unter Hinzufügen Azure Funktionen-Ressource.
Azure Funktionsprojekteinschränkungen
Die Integration der Funktionen .NET AspireundAzure unterliegt den folgenden Projekteinschränkungen:
- Sie müssen .NET 8.0 oder höher als Ziel auswählen.
- Sie müssen ein .NET 9 SDK verwenden.
- Es unterstützt derzeit nur .NET Mitarbeiter mit dem isolierten Arbeitsmodell.
- Erfordert die folgenden NuGet-Pakete:
-
📦 Microsoft.Azure.Functions.Worker: Verwenden Sie die
FunctionsApplicationBuilder
. -
📦 Microsoft.Azure. Functions.Worker.Sdk: Fügt Unterstützung für
dotnet run
undazd publish
hinzu. - 📦 Microsoft.Azure. Functions.Http.AspNetCore: Fügt HTTP-triggergestützte APIs hinzu.
-
📦 Microsoft.Azure.Functions.Worker: Verwenden Sie die
Wenn Probleme mit dem projekt "Azure Functions" auftreten, z. B.:
Es ist keine Funktionslaufzeit verfügbar, die mit der im Projekt angegebenen Version übereinstimmt.
Versuchen Sie in Visual Studio, nach einer Aktualisierung des Tools für Azure Funktionen zu suchen. Öffnen Sie das Dialogfeld Optionen, navigieren Sie zu Projekte und Lösungen, und wählen Sie dann Azure Funktionenaus. Wählen Sie die Schaltfläche Nach Updates suchen aus, um sicherzustellen, dass Sie über die neueste Version des Tools Azure Funktionen verfügen:
Hostingintegration
Die Azure Funktion, die die Integration hostet, modelliert eine Azure Functions-Ressource als Typ AzureFunctionsProjectResource (Untertyp von ProjectResource). Um auf diesen Typ und diese APIs zuzugreifen, mit denen Sie sie Ihrem App-Host hinzufügen können, Projekt installieren Sie die 📦Aspire. Hosting.Azure. Funktionen NuGet-Paket.
dotnet add package Aspire.Hosting.Azure.Functions --prerelease
Weitere Informationen finden Sie unter dotnet add package oder Verwalten von Paketabhängigkeiten in .NET-Anwendungen.
Hinzufügen Azure Funktionen-Ressource
Rufen Sie in Ihrem App-Hostprojekt AddAzureFunctionsProject für die builder
Instanz auf, um eine Azure Functions-Ressource hinzuzufügen:
var builder = DistributedApplication.CreateBuilder(args);
var functions = builder.AddAzureFunctionsProject<Projects.ExampleFunctions>("functions")
.WithExternalHttpEndpoints();
builder.AddProject<Projects.ExampleProject>()
.WithReference(functions)
.WaitFor(functions);
// After adding all resources, run the app...
Wenn .NET Aspire dem App-Host eine Azure Functions-Projektressource hinzufügt, wie im vorherigen Beispiel gezeigt, kann auf die functions
Ressource von anderen Projektressourcen verwiesen werden. Die WithReference-Methode konfiguriert eine Verbindung im ExampleProject
namens "functions"
. Wenn die Azure Ressource bereitgestellt wurde und ein HTTP-Trigger verfügbar gemacht wurde, wäre der Endpunkt aufgrund des Aufrufs von WithExternalHttpEndpointsextern. Weitere Informationen finden Sie unter Referenzressourcen.
Hinzufügen Azure Functions-Ressource mit Hostspeicher
Wenn Sie das standardmäßige Hostspeicherkonto ändern möchten, das der Host Azure Funktionen verwendet, rufen Sie die WithHostStorage-Methode für die Projektressource Azure Funktionen auf.
var builder = DistributedApplication.CreateBuilder(args);
var storage = builder.AddAzureStorage("storage")
.RunAsEmulator();
var functions = builder.AddAzureFunctionsProject<Projects.ExampleFunctions>("functions")
.WithHostStorage(storage);
builder.AddProject<Projects.ExampleProject>()
.WithReference(functions)
.WaitFor(functions);
// After adding all resources, run the app...
Der vorhergehende Code basiert auf dem 📦Aspire.Hosting.Azure.Speicher NuGet-Paket für das Hinzufügen einer Azure Speicherressource, die als Emulator ausgeführt wird. Die storage
Ressource wird dann an die WithHostStorage
-API übergeben, wobei der Hostspeicher explizit auf die emulierte Ressource festgelegt wird.
Anmerkung
Wenn Sie den impliziten Hostspeicher nicht verwenden, müssen Sie Ihrer Ressource für bereitgestellte Instanzen die Rolle StorageAccountContributor
manuell zuweisen. Diese Rolle wird automatisch für den implizit generierten Hostspeicher zugewiesen.
Referenzressourcen in Azure-Funktionen
Um auf andere Azure-Ressourcen in einem Azure Functions-Projekt zu verweisen, verketten Sie einen Aufruf mit WithReference
an die Ressource des Azure Functions-Projekts und geben Sie die zu referenzierende Ressource an:
var builder = DistributedApplication.CreateBuilder(args);
var storage = builder.AddAzureStorage("storage").RunAsEmulator();
var blobs = storage.AddBlobs("blobs");
builder.AddAzureFunctionsProject<Projects.ExampleFunctions>("functions")
.WithHostStorage(storage)
.WithReference(blobs);
builder.Build().Run();
Der vorangehende Code fügt dem App-Host eine Speicherressource Azure hinzu und verweist darauf im Projekt Azure Functions. Die blobs
Ressource wird der storage
Ressource hinzugefügt und dann von der functions
Ressource referenziert. Die Verbindungsinformationen, die zum Herstellen einer Verbindung mit der blobs
Ressource erforderlich sind, werden automatisch in das Azure Funktionen-Projekt eingefügt und ermöglichen es dem Projekt, eine BlobTrigger
zu definieren, die auf der blobs
Ressource basiert.