Partager via


.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 :

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 :

Visual Studio: Options / Projets et solutions / fonctions Azure.

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.

Voir aussi