Sdílet prostřednictvím


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:

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.

Visual Studio: Možnosti / Projekty a řešení / funkce Azure.

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é