.NET Aspire Azure Funktionsintegration (förhandsversion)
Omfattar:Värdtjänstintegration inte
Client integration
Viktig
.NET Aspire Azure Functions-integreringen är för närvarande i förhandsversion och kan komma att ändras.
Azure Functions är en serverlös lösning som gör att du kan skriva mindre kod, underhålla mindre infrastruktur och spara på kostnaderna. Med .NET AspireAzure Functions-integreringen kan du utveckla, felsöka och samordna ett Azure Functions .NET-projekt som en del av appvärden.
Det förväntas att du har installerat de nödvändiga Azure verktygen:
Scenarier som stöds
Integreringen .NET AspireAzure Functions har flera viktiga scenarier som stöds. Det här avsnittet beskriver scenarierna och innehåller information om implementeringen av varje metod.
Utlösare som stöds
I följande tabell visas de utlösare som stöds för Azure Functions i .NET Aspire integrering:
Utlösa | Attribut | Detaljer |
---|---|---|
Azure Event Hubs utlösare | EventHubTrigger |
📦 Aspire. Hosting.Azure. EventHubs |
Azure Service Bus utlösare | ServiceBusTrigger |
📦 Aspire.Hosting.Azure.ServiceBus |
Azure Storage Blobs-utlösare | BlobTrigger |
📦 Aspire. Gästfrihet.Azure. Lagring |
Azure Storage Queues utlösare | QueueTrigger |
📦 Aspire. Gästfrihet.Azure. Lagring |
HTTP-utlösare | HttpTrigger |
Stöds utan ytterligare resursberoenden. |
Timer-utlösare | TimerTrigger |
Stöds utan ytterligare resursberoenden – förlitar sig på implicit värdlagring. |
Viktig
Andra Azure Functions-utlösare och bindningar stöds för närvarande inte i .NET AspireAzure Functions-integreringen.
Utplacering
För närvarande stöds distribution endast till containrar på Azure Container Apps (ACA) med hjälp av SDK-containerpubliceringsfunktionen i Microsoft.Azure.Functions.Worker.Sdk
. Den här distributionsmetoden stöder för närvarande inte KEDA-baserad autoskalning.
Konfigurera externa HTTP-slutpunkter
Om du vill göra HTTP-utlösare offentligt tillgängliga anropar du WithExternalHttpEndpoints-API:et på AzureFunctionsProjectResource. Mer information finns i Lägg till Azure Functions-resurs.
projektbegränsningar för Azure-funktion
Integreringen .NET AspireAzure Functions har följande projektbegränsningar:
- Du måste rikta .NET 8.0 eller senare.
- Du måste använda en .NET 9 SDK.
- Det stöder för närvarande endast .NET arbetare med isolerad arbetsmodell.
- Kräver följande NuGet-paket:
-
📦 Microsoft.Azure. Functions.Worker: Använd
FunctionsApplicationBuilder
. -
📦 Microsoft.Azure. Functions.Worker.Sdk: Lägger till stöd för
dotnet run
ochazd publish
. - 📦 Microsoft.Azure. Functions.Http.AspNetCore: Lägger till API:er som stöder HTTP-utlösare.
-
📦 Microsoft.Azure. Functions.Worker: Använd
Om du stöter på problem med projektet Azure Functions, till exempel:
Det finns ingen Functions-körning tillgänglig som matchar den version som anges i projektet
I Visual Studioprovar du att söka efter en uppdatering av Azure Functions-verktygen. Öppna dialogrutan Alternativ, gå till Projekt och lösningaroch välj sedan Azure Functions. Välj knappen Sök efter uppdateringar för att se till att du har den senaste versionen av Azure Functions-verktyget:
Värdintegrering
Azure Functions, som värd för integration, modellerar en Azure Functions-resurs som AzureFunctionsProjectResource (undertyp av ProjectResource). För att komma åt den här typen och API:er som gör att du kan lägga till den i ditt appvärd-projekt, installerar du 📦Aspire.Hosting.Azure.Functions NuGet-paket.
dotnet add package Aspire.Hosting.Azure.Functions --prerelease
Mer information finns i dotnet add package eller Hantera paketberoenden i .NET applikationer.
Lägg till Azure Functions-resurs
I ditt värdprojekt för appar, anropar du AddAzureFunctionsProject på instansen builder
för att lägga till en funktionsresurs Azure.
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...
När .NET Aspire lägger till en Azure Functions-projektresurs kan appvärden, enligt föregående exempel, referera till den functions
resursen av andra projektresurser. Metoden WithReference konfigurerar en anslutning i ExampleProject
med namnet "functions"
. Om den Azure resursen distribuerades och den exponerade en HTTP-utlösare skulle dess slutpunkt vara extern på grund av anropet till WithExternalHttpEndpoints. Mer information finns i Referensresurser.
Lägga till Azure Functions-resurs med värdlagring
Om du vill ändra standardvärdlagringskontot som Azure Functions värd använder anropar du metoden WithHostStorage på Azure Functions projektresursen:
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...
Föregående kod förlitar sig på 📦Aspire.Hosting.Azure.Storage NuGet-paketet för att lägga till en Azure Storage-resurs som körs som en emulator. Den storage
resursen skickas sedan till WithHostStorage
-API:et och anger uttryckligen värdlagringen till den emulerade resursen.
Obs
Om du inte använder den implicita värdlagringen måste du manuellt tilldela den StorageAccountContributor
rollen till resursen för distribuerade instanser. Den här rollen tilldelas automatiskt för den implicit genererade värdlagringen.
Referensresurser i Azure Functions
Om du vill referera till andra Azure resurser i ett Azure Functions-projekt kedjar du ett anrop till WithReference
på Azure Functions-projektresursen och anger resursen som referens:
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();
Föregående kod lägger till en Azure Storage-resurs till appvärden och refererar till den i Azure Functions-projektet. Den blobs
resursen läggs till i resursen storage
och refereras sedan till av resursen functions
. Anslutningsinformationen som krävs för att ansluta till den blobs
resursen matas automatiskt in i Azure Functions-projektet och gör det möjligt för projektet att definiera en BlobTrigger
som förlitar sig på blobs
resurs.
Se även
.NET Aspire