Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Inclusief: Alleen hostingintegratie —
Client integratie niet inbegrepen
Belangrijk
De integratie van AspireAzure Functions is momenteel in preview en kan worden gewijzigd.
Azure Functions is een serverloze oplossing waarmee u minder code kunt schrijven, minder infrastructuur kunt onderhouden en kosten kunt besparen. Met de AspireAzure functions-integratie kunt u een Azure Functions-project .NET ontwikkelen, fouten opsporen en organiseren als onderdeel van de AppHost.
Er wordt verwacht dat u de vereiste Azure hulpprogramma's hebt geïnstalleerd:
Ondersteunde scenario's
De integratie van AspireAzure Functions heeft verschillende belangrijke ondersteunde scenario's. In deze sectie worden de scenario's beschreven en vindt u details met betrekking tot de implementatie van elke benadering.
Ondersteunde triggers
De volgende tabel bevat de ondersteunde triggers voor Azure Functions in de Aspire-integratie:
| Aanleiding | Attribuut | Bijzonderheden |
|---|---|---|
| Azure Event Hubs trekker | EventHubTrigger |
📦 Aspire. Gastvrijheid.Azure. EventHubs- |
| Azure Service Bus trekker | ServiceBusTrigger |
📦 Aspire. Gastvrijheid.Azure. ServiceBus- |
| Azure Storageblobs-trigger | BlobTrigger |
📦 Aspire. Hosting.Azure. Opslag |
| Azure Storage Queues trekker | QueueTrigger |
📦 Aspire. Hosting.Azure. Opslag |
| Azure CosmosDB-trigger | CosmosDbTrigger |
📦 Aspire. Hosting.Azure. CosmosDB |
| HTTP-trigger | HttpTrigger |
Ondersteund zonder extra resourceafhankelijkheden. |
| Timer-trigger | TimerTrigger |
Ondersteund zonder extra resourceafhankelijkheden, is afhankelijk van impliciete hostopslag. |
Belangrijk
Andere Azure Functions-triggers en -bindingen worden momenteel niet ondersteund in de integratie van AspireAzure Functions.
Implementatie
Momenteel wordt implementatie alleen ondersteund voor containers op Azure Container Apps (ACA) met behulp van de sdk-containerpublicatiefunctie in Microsoft.Azure.Functions.Worker.Sdk. Deze implementatiemethodologie biedt momenteel geen ondersteuning voor automatisch schalen op basis van KEDA.
Externe HTTP-eindpunten configureren
Als u HTTP-triggers openbaar toegankelijk wilt maken, roept u de WithExternalHttpEndpoints-API aan op de AzureFunctionsProjectResource. Zie Azure Functions-resource toevoegenvoor meer informatie.
Azure Functieprojectbeperkingen
De integratie van AspireAzure Functions heeft de volgende projectbeperkingen:
- U moet zich richten op .NET 8.0 of hoger.
- U moet een .NET 9 SDK gebruiken.
- Het ondersteunt momenteel alleen .NET werknemers met het geïsoleerde werkrolmodel.
- Hiervoor zijn de volgende NuGet-pakketten vereist:
-
📦 Microsoft.Azure. Functions.Worker-: Gebruik de
FunctionsApplicationBuilder. -
📦 Microsoft.Azure. Functions.Worker.Sdk: voegt ondersteuning toe voor
dotnet runenazd publish. - 📦 Microsoft.Azure. Functions.Http.AspNetCore: voegt HTTP-trigger-ondersteunende API's toe.
-
📦 Microsoft.Azure. Functions.Worker-: Gebruik de
Als u problemen ondervindt met het Azure Functions-project, zoals:
Er is geen Functions-runtime beschikbaar die overeenkomt met de versie die is opgegeven in het project
Controleer in Visual Studioof er een update is voor de Azure Functions-hulpprogramma's. Open het dialoogvenster Opties, ga naar projecten en oplossingenen selecteer Azure Functions. Selecteer de knop Controleren op updates om te controleren of u de nieuwste versie van de Azure Functions-hulpprogramma's hebt:
Hostingintegratie
De Azure Functions die als host fungeert voor integratiemodellen, is een Azure Functions-resource als het AzureFunctionsProjectResource -type (subtype van ProjectResource). Als u toegang wilt krijgen tot dit type en API's waarmee u het kunt toevoegen aan uw AppHost-project , installeert u het 📦Aspire. Hosting.Azure. NuGet-pakket functions .
dotnet add package Aspire.Hosting.Azure.Functions --prerelease
Zie dotnet pakket toevoegen of Pakketafhankelijkheden beheren in .NET toepassingenvoor meer informatie.
Azure Functions-resource toevoegen
Roep AddAzureFunctionsProject in uw AppHost-project het builder exemplaar aan om een Azure Functions-resource toe te voegen:
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...
Wanneer Aspire u een Azure Functions-projectresource toevoegt, wordt de AppHost toegevoegd, zoals in het vorige voorbeeld wordt weergegeven, kan naar de functions resource worden verwezen door andere projectresources. De methode WithReference configureert een verbinding in de ExampleProject met de naam "functions". Als de Azure-resource is geïmplementeerd en er een HTTP-trigger is weergegeven, is het eindpunt extern vanwege de aanroep naar WithExternalHttpEndpoints. Zie Referentieresourcesvoor meer informatie.
Azure Functions-resource toevoegen met hostopslag
Als u het standaardhostopslagaccount wilt wijzigen dat door de Azure Functions-host wordt gebruikt, roept u de WithHostStorage methode aan op de Azure Functions-projectresource:
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...
De voorgaande code is afhankelijk van de 📦AspireAzureHosting. Opslag NuGet-pakket om een Azure Storage-resource toe te voegen die wordt uitgevoerd als een emulator. De storage-resource wordt vervolgens doorgegeven aan de WithHostStorage-API, waarbij de hostopslag expliciet wordt ingesteld op de geëmuleerde resource.
Notitie
Als u de impliciete hostopslag niet gebruikt, moet u de StorageAccountContributor rol handmatig toewijzen aan uw resource voor geïmplementeerde exemplaren. De impliciete hostopslag wordt automatisch geconfigureerd met de volgende rollen ter ondersteuning van maximale interoperabiliteit met alle scenario's:
- StorageBuiltInRole.StorageBlobDataContributor
- StorageBuiltInRole.StorageTableDataContributor
- StorageBuiltInRole.StorageQueueDataContributor
- StorageBuiltInRole.StorageAccountContributor
Voor productiescenario's is het raadzaam om het opslagaccount expliciet bij de WithHostStorage en WithRoleAssignment API's te registreren en een meer op maat gemaakte set rollen te registreren.
var builder = DistributedApplication.CreateBuilder(args);
var storage = builder.AddAzureStorage("storage");
builder.AddAzureFunctionsProject<Projects.ExampleFunctions>("functions")
.WithHostStorage(storage)
.WithRoleAssignments(storage, StorageBuiltInRole.StorageBlobDataReader,
StorageBuiltInRole.StorageQueueDataReader);
Referentiebronnen in Azure Functions
Als u naar andere Azure resources in een Azure Functions-project wilt verwijzen, koppelt u een aanroep naar WithReference op de Azure Functions-projectresource en geeft u de resource op waarnaar moet worden verwezen:
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();
De voorgaande code voegt een Azure opslagresource toe aan de AppHost en verwijst ernaar in het Azure Functions-project. De blobs resource wordt toegevoegd aan de storage resource en vervolgens verwezen door de functions resource. De verbindingsgegevens die nodig zijn om verbinding te maken met de blobs-resource, worden automatisch opgenomen in het Azure Functions-project en stelt het project in staat een BlobTrigger te definiëren die afhankelijk is van blobs resource.