Megosztás a következőn keresztül:


.NET Aspire Azure Függvények integrációja (előzetes verzió)

Tartalmazza:Üzemeltetési integráció nem Client integráció

Fontos

A .NET AspireAzure Functions integrációja jelenleg előzetes verzióban érhető el, és változhat.

Azure Functions egy kiszolgáló nélküli megoldás, amellyel kevesebb kódot írhat, kevesebb infrastruktúrát tarthat fenn, és költségmegtakarítást takaríthat meg. A .NET AspireAzure Functions-integráció lehetővé teszi egy Azure Functions-.NET-projekt fejlesztését, hibakeresését és vezénylását az alkalmazásgazda részeként.

Arra számítunk, hogy telepítette a szükséges Azure eszközöket.

Támogatott forgatókönyvek

A .NET AspireAzure Functions-integráció számos kulcsfontosságú támogatott forgatókönyvet támogat. Ez a szakasz ismerteti a forgatókönyveket, és részletesen ismerteti az egyes megközelítések megvalósítását.

Támogatott eseményindítók

Az alábbi táblázat az .NET Aspire-integráció Azure függvényeinek támogatott eseményindítóit sorolja fel:

Indító Attribútum Részletek
Azure Event Hubs eseményindító EventHubTrigger 📦 Aspire. Hosztolás.Azure. EventHubs
Azure Service Bus eseményindító ServiceBusTrigger 📦 Aspire.Tárhely.Azure.ServiceBus
Azure Storage-blobok eseményindítója BlobTrigger 📦 Aspire. Hoszting.Azure. Tárhely
Azure Storage Queues eseményindító QueueTrigger 📦 Aspire.Hosting.Azure. Tárolás
HTTP-eseményindító HttpTrigger További erőforrásfüggőségek nélkül támogatott.
Időzítőindító TimerTrigger További erőforrás-függőségek nélkül támogatott – az implicit gazdagéptárolóra támaszkodik.

Fontos

Az egyéb Azure Functions-eseményindítók és kötések jelenleg nem támogatottak a .NET AspireAzure Functions-integrációban.

Telepítés

Az üzembe helyezés jelenleg csak a Azure Container Apps (ACA) tárolóira támogatott, a Microsoft.Azure.Functions.Worker.Sdk-ben található SDK tároló közzétételi függvényének használatával. Ez az üzembe helyezési módszer jelenleg nem támogatja a KEDA-alapú automatikus skálázást.

Külső HTTP-végpontok konfigurálása

Ha nyilvánosan elérhetővé szeretné tenni a HTTP-eseményindítókat, hívja meg a WithExternalHttpEndpoints API-t a AzureFunctionsProjectResource. További információért lásd: Azure Funkciók erőforrás hozzáadása.

Azure függvényprojekt korlátozásai

A .NET AspireAzure Functions-integráció a következő projektkorlátokkal rendelkezik:

Ha problémákat tapasztal a Azure Functions projekttel kapcsolatban, például:

Nincs olyan Functions-futtatókörnyezet, amely megfelel a projektben megadott verziónak

A Visual Studio-ban próbálja meg frissíteni a Azure Functions eszközkészletet. Nyissa meg a Beállítások párbeszédpanelt, lépjen Projektek és megoldások, majd válassza Azure Funkcióklehetőséget. Válassza a Frissítések keresése gombot, és győződjön meg arról, hogy a Azure Functions eszköz legújabb verziójával rendelkezik:

Visual Studio: Beállítások / Projektek és megoldások / Azure Függvények.

Üzemeltetési integráció

Az Azure Függvények integrációja egy Azure Functions-erőforrást modellez AzureFunctionsProjectResource (a ProjectResourcealtípusa) típusként. Az ilyen típus és az API-k eléréséhez, amelyek lehetővé teszik, hogy hozzáadja alkalmazásgazda projekthez, telepítse a 📦Aspire.Hosting.Azure.Functions NuGet csomagot.

dotnet add package Aspire.Hosting.Azure.Functions --prerelease

További információ: dotnet add package vagy csomagfüggőségek kezelése .NET alkalmazásokban.

Azure Functions erőforrásának hozzáadása

Az alkalmazásgazdaprojektben hívja meg AddAzureFunctionsProject a builder-példányon egy Azure Functions-erőforrás hozzáadásához:

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...

Amikor .NET Aspire hozzáad egy Azure Functions-projekterőforrást, amelyet az alkalmazás üzemeltet, az előző példában látható módon a functions erőforrásra más projekterőforrások hivatkozhatnak. A WithReference metódus konfigurál egy kapcsolatot a "functions"nevű ExampleProject. Ha a Azure erőforrás üzembe lett helyezve, és feltárt egy HTTP-eseményindítót, a végpontja külső lenne a WithExternalHttpEndpointshívása miatt. További információ: Referencia-erőforrások.

Azure Functions-erőforrás hozzáadása gazdagéptárolóval

Ha módosítani szeretné a Azure Functions-gazdagép által használt alapértelmezett gazdagéptárfiókot, hívja meg a WithHostStorage metódust a Azure Functions projekterőforráson:

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...

Az előző kód a 📦AspirehosztingAzure#.Storage NuGet csomagra támaszkodik egy emulátorként futó Azure Storage-erőforrás hozzáadásához. Azután a storage erőforrás átkerül a WithHostStorage API-hoz, explicit módon beállítva a tárolóhelyet az emulált erőforrásra.

Jegyzet

Ha nem használ implicit gazdagéptárolót, manuálisan kell hozzárendelnie a StorageAccountContributor szerepkört az üzembe helyezett példányok erőforrásához. A rendszer automatikusan hozzárendeli ezt a szerepkört az implicit módon létrehozott gazda tárolóhoz.

Referencia-erőforrások a Azure Functionsben

Ha egy Azure Functions projekt más Azure erőforrásaira szeretne hivatkozni, össze kell kapcsolnia a Azure Functions projekt erőforrásának WithReference hívását, és adja meg a hivatkozni kívánt erőforrást.

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();

Az előző kód hozzáad egy Azure Storage-erőforrást az alkalmazás gazdagépéhez, és hivatkozik rá a Azure Functions-projektben. A blobs erőforrás hozzá lesz adva a storage erőforráshoz, majd az functions erőforrás hivatkozik rá. A blobs erőforráshoz való csatlakozáshoz szükséges kapcsolati információk automatikusan bekerülnek a Azure Functions-projektbe, és lehetővé teszik a projekt számára, hogy blobs erőforrásra támaszkodó BlobTrigger definiáljon.

Lásd még: