.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.
- Azure Functions Core Tools telepítése
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:
- A .NET 8.0-s vagy újabb verziójára kell céloznia.
- Egy .NET 9 SDK-t kell használnia.
- Jelenleg csak a izolált munkavállalói modell.NET munkások számára támogatott.
- A következő NuGet-csomagokat igényli:
-
📦 Microsoft.Azure. Functions.Worker: Használja a
FunctionsApplicationBuilder
. -
📦 Microsoft.Azure. Functions.Worker.Sdk: Támogatja
dotnet run
ésazd publish
. - 📦 Microsoft.Azure. Functions.Http.AspNetCore: HTTP eseményindítót támogató API-kat ad hozzá.
-
📦 Microsoft.Azure. Functions.Worker: Használja a
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:
Ü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.