Freigeben über


.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.Sdkunterstü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:

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:

Visual Studio: Optionen / Projekte und Lösungen / Azure Funktionen.

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.

Siehe auch