integrace .NET AspireAzure Functions (Preview)
zahrnuje:integraci hostování ne Client integraci
Důležitý
Integrace .NET AspireAzure Functions je aktuálně ve verzi Preview a může se změnit.
Azure Functions je bezserverové řešení, které umožňuje psát méně kódu, udržovat méně infrastruktury a šetřit náklady. Integrace .NET AspireAzure Functions umožňuje vyvíjet, ladit a orchestrovat projekt Azure Functions .NET jako součást hostitele aplikace.
Očekává se, že jste nainstalovali požadované nástroje Azure:
Podporované scénáře
Integrace .NET AspireAzure Functions má několik klíčových podporovaných scénářů. Tato část popisuje scénáře a obsahuje podrobnosti týkající se implementace jednotlivých přístupů.
Podporované triggery
Následující tabulka uvádí podporované triggery pro Azure Functions v integraci .NET Aspire:
Spouštěč | Vlastnost | Podrobnosti |
---|---|---|
Azure Event Hubs trigger | EventHubTrigger |
📦 Aspire. Hostování.Azure. EventHubs |
Azure Service Bus spouštěč | ServiceBusTrigger |
📦 Aspire. Hosting.Azure. ServiceBus |
Spouštěč objektů Blob úložiště Azure | BlobTrigger |
📦 Aspire. Hostování.Azure. Úložiště |
Azure Storage Queues spoušť | QueueTrigger |
📦 Aspire.Hostování.Azure.Úložiště |
Spouštěč HTTP | HttpTrigger |
Podporováno bez jakýchkoli dalších závislostí prostředků. |
Spoušť časovače | TimerTrigger |
Podporované bez dodatečných závislostí na prostředcích, využívá implicitní úložiště hostitele. |
Důležitý
Ostatní triggery a vazby Azure Functions se v současné době nepodporují v integraci .NET AspireAzure Functions.
Nasazení
V současné době je nasazení podporováno pouze pro kontejnery v Azure Container Apps (ACA) pomocí funkce publikování kontejneru sady SDK v Microsoft.Azure.Functions.Worker.Sdk
. Tato metodologie nasazení v současné době nepodporuje automatické škálování založené na KEDA.
Konfigurace externích koncových bodů HTTP
Pokud chcete, aby HTTP triggery byly veřejně přístupné, zavolejte rozhraní API WithExternalHttpEndpoints na AzureFunctionsProjectResource. Další informace najdete v tématu Přidání prostředku Azure Functions.
omezení projektu funkce Azure
Integrace .NET AspireAzure Functions má následující omezení projektu:
- Musíte cílit na .NET 8.0 nebo novější.
- Musíte použít sadu SDK .NET 9.
- V současné době podporuje pouze .NET pracovníky s izolovaným modelem pracovníka.
- Vyžaduje následující balíčky NuGet:
-
📦 Microsoftu.Azure. Functions.Worker: Použijte
FunctionsApplicationBuilder
. -
📦 Microsoft.Azure. Functions.Worker.Sdk: Přidává podporu pro
dotnet run
aazd publish
. - 📦 Microsoft.Azure.Functions.Http.AspNetCore: Přidá rozhraní API podporující HTTP trigger.
-
📦 Microsoftu.Azure. Functions.Worker: Použijte
Pokud narazíte na problémy s projektem Azure Functions, například:
Není k dispozici žádný modul runtime Functions, který odpovídá verzi zadané v projektu.
V Visual Studiozkuste vyhledat aktualizaci v nástrojích Azure Functions. Otevřete dialogové okno Možnosti, přejděte na Projekty a řešenía pak vyberte Azure Functions. Vyberte tlačítko Check for updates, abyste měli jistotu, že máte nejnovější verzi nástroje Azure Functions.
Integrace hostování
Modely integrace hostování Azure Functions modelují prostředek Azure Functions jako typ AzureFunctionsProjectResource (podtyp ProjectResource). Abyste získali přístup k tomuto typu a rozhraním API, která vám umožní ho přidat do hostitele aplikace projektu , nainstalujte balíček NuGet 📦Aspire.Hosting.Azure.Functions.
dotnet add package Aspire.Hosting.Azure.Functions --prerelease
Další informace najdete v tématu dotnet add package nebo Správa závislostí balíčků v .NET aplikacích.
Přidání prostředku Azure Functions
V projektu hostitele aplikace zavolejte AddAzureFunctionsProject na instanci builder
a přidejte prostředek Azure Functions:
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...
Když .NET Aspire přidá zdroj projektu Azure Functions, který hostuje aplikace, jak je znázorněno v předchozím příkladu, může být functions
zdroj odkazován ostatními zdroji projektu. Metoda WithReference nakonfiguruje připojení v ExampleProject
s názvem "functions"
. Pokud se prostředek Azure nasadil a zobrazil trigger HTTP, jeho koncový bod by byl externí z důvodu volání WithExternalHttpEndpoints. Další informace naleznete v tématu Referenční zdroje.
Přidání prostředku Azure Functions s hostitelským úložištěm
Pokud chcete upravit výchozí úložiště hostitelského účtu, který používá hostitel Functions Azure, zavolejte metodu WithHostStorage na projektovém prostředku Functions Azure:
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...
Předchozí kód spoléhá na balíček NuGet 📦Aspire.Hosting.Azure.Storage k přidání prostředku úložiště Azure, který běží jako emulátor. Prostředek storage
se pak předá rozhraní API WithHostStorage
, přičemž úložiště hostitele se explicitně nastaví na emulovaný prostředek.
Poznámka
Pokud nepoužíváte implicitní hostitelské úložiště, musíte ručně přiřadit StorageAccountContributor
roli k vašemu prostředku pro nasazené instance. Tato role se automaticky přiřadí k implicitně generovanému hostitelskému úložišti.
Referenční zdroje ve službě Azure Functions
Pokud chcete odkazovat na zdroje Azure v projektu Azure Functions, zřetězte volání WithReference
na projektový zdroj Azure Functions a poskytněte zdroj, na který chcete odkazovat.
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();
Předchozí kód přidá prostředek Azure Storage do hostitele aplikace a referencuje ho v projektu Azure Functions. Prostředek blobs
je přidán k prostředku storage
a následně na něj odkazuje prostředek functions
. Informace o připojení potřebné pro připojení ke zdroji blobs
se automaticky vloží do projektu funkcí Azure a umožní definovat BlobTrigger
, který závisí na zdroji blobs
.
Viz také
- integrace .NET.NET Aspire
- .NET Aspire GitHub úložiště
- Dokumentace funkcí Azure
- Ukázková galerie obrázků a funkcí .NET.NET Aspire