.NET Aspire Azure intégration de fonctions (aperçu)
Inclut :intégration d’hébergement pas Client
Important
L’intégration .NET AspireAzure Functions est actuellement en version préliminaire et est susceptible de changer.
Azure Functions est une solution serverless qui vous permet d’écrire moins de code, de maintenir moins d’infrastructure et d’économiser sur les coûts. L’intégration .NET AspireAzure Functions vous permet de développer, de déboguer et d’orchestrer un projet Azure Functions .NET dans le cadre de l’hôte de l’application.
Il est prévu que vous ayez installé les outils de Azure requis :
Scénarios pris en charge
L’intégration .NET AspireAzure Functions comporte plusieurs scénarios clés pris en charge. Cette section décrit les scénarios et fournit des détails relatifs à l’implémentation de chaque approche.
Déclencheurs pris en charge
Le tableau suivant répertorie les déclencheurs pris en charge pour Azure Functions dans l’intégration .NET Aspire :
Déclencheur | Attribut | Détails |
---|---|---|
déclencheur Azure Event Hubs | EventHubTrigger |
📦 Aspire. Hébergement.Azure. EventHubs |
déclencheur Azure Service Bus | ServiceBusTrigger |
📦 Aspire. Hébergement.Azure. ServiceBus |
Azure Déclencheur de Blobs de stockage | BlobTrigger |
📦 Aspire.Hébergement.Azure.Stockage |
déclencheur Azure Storage Queues | QueueTrigger |
📦 Aspire.Hébergement.Azure.Stockage |
Déclencheur HTTP | HttpTrigger |
Prise en charge sans dépendances de ressources supplémentaires. |
Déclencheur du minuteur | TimerTrigger |
Pris en charge sans dépendances de ressources supplémentaires, s’appuie sur le stockage hôte implicite. |
Important
D’autres déclencheurs et liaisons Functions Azure ne sont actuellement pas supportés dans l’intégration .NET AspireAzure Functions.
Déploiement
Actuellement, le déploiement n’est pris en charge que pour les conteneurs sur Azure Container Apps (ACA) à l’aide de la fonction de publication de conteneurs du SDK dans Microsoft.Azure.Functions.Worker.Sdk
. Cette méthodologie de déploiement ne prend actuellement pas en charge la mise à l’échelle automatique basée sur KEDA.
Configurer des points de terminaison HTTP externes
Pour rendre les déclencheurs HTTP accessibles publiquement, appelez l’API WithExternalHttpEndpoints sur le AzureFunctionsProjectResource. Pour plus d’informations, consultez la ressource Ajouter la fonction Azure.
Azure Contraintes du projet de fonction
L’intégration .NET AspireAzure Functions présente les contraintes de projet suivantes :
- Vous devez cibler .NET 8.0 ou version ultérieure.
- Vous devez utiliser un sdk .NET 9.
- Actuellement, elle prend uniquement en charge les workers .NET avec le modèle de travail isolé .
- Nécessite les packages NuGet suivants :
-
📦 Microsoft.Azure. Functions.Worker: utilisez le
FunctionsApplicationBuilder
. -
📦 Microsoft.Azure. Functions.Worker.Sdk: ajoute la prise en charge des
dotnet run
et desazd publish
. - 📦 Microsoft.Azure. Functions.Http.AspNetCore: ajoute des API de prise en charge du déclencheur HTTP.
-
📦 Microsoft.Azure. Functions.Worker: utilisez le
Si vous rencontrez des problèmes avec le projet Azure Functions, par exemple :
Il n’existe aucun runtime Functions disponible qui correspond à la version spécifiée dans le projet
Dans Visual Studio, essayez de rechercher une mise à jour sur l'outil Azure Functions. Ouvrez la boîte de dialogue Options de , accédez à projets et solutions, puis sélectionnez Azure Functions. Sélectionnez le bouton Rechercher les mises à jour pour vous assurer que vous disposez de la dernière version des outils Azure Functions :
Intégration de l’hébergement
Les modèles d'intégration hébergés par Azure Functions représentent une ressource Azure Functions comme le type AzureFunctionsProjectResource (sous-type de ProjectResource). Pour accéder à ce type et aux API qui vous permettent de l'ajouter à votre projet d'hôte d'application , installez le package NuGet 📦Aspire.Hosting.Azure.Functions.
dotnet add package Aspire.Hosting.Azure.Functions --prerelease
Pour plus d’informations, consultez dotnet add package ou Gérer les dépendances de package dans les applications .NET.
Ajouter la ressource Azure Functions
Dans votre projet hôte d’application, appelez AddAzureFunctionsProject sur l’instance de builder
pour ajouter une ressource Functions Azure :
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...
Lorsque .NET Aspire ajoute une ressource de projet Azure Functions à l’hôte de l’application, comme illustré dans l’exemple précédent, la ressource functions
peut être référencée par d’autres ressources de projet. La méthode WithReference configure une connexion dans le ExampleProject
nommé "functions"
. Si la ressource Azure a été déployée et qu’elle a exposé un déclencheur HTTP, son point de terminaison est externe en raison de l’appel à WithExternalHttpEndpoints. Pour plus d’informations, consultez Ressources de référence.
Ajouter la ressource Fonctionnalités Azure avec stockage hôte
Si vous souhaitez modifier le compte de stockage hôte par défaut que l’hôte Azure Functions utilise, appelez la méthode WithHostStorage sur la ressource de projet Azure Functions :
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...
Le code précédent s’appuie sur le 📦Aspire. Hébergement.Azure. Stockage package NuGet pour ajouter une ressource de stockage Azure qui s’exécute en tant qu’émulateur. La ressource storage
est ensuite passée à l’API WithHostStorage
, en définissant explicitement le stockage hôte sur la ressource émulée.
Note
Si vous n’utilisez pas le stockage hôte implicite, vous devez affecter manuellement le rôle StorageAccountContributor
à votre ressource pour les instances déployées. Ce rôle est automatiquement affecté au stockage hôte généré implicitement.
Ressources de référence dans Azure Functions
Pour référencer d’autres ressources Azure dans un projet Azure Functions, chaînez un appel à WithReference
sur la ressource de projet Azure Functions et fournissez la ressource à référencer :
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();
Le code précédent ajoute une ressource de stockage Azure à l’hôte de l’application et les référence dans le projet Azure Functions. La ressource blobs
est ajoutée à la ressource storage
, puis référencée par la ressource functions
. Les informations de connexion requises pour se connecter à la ressource blobs
sont automatiquement injectées dans le projet Azure Functions et permettent au projet de définir un BlobTrigger
qui s’appuie sur blobs
ressource.