integracja usługi .NET AspireAzure Functions (wersja zapoznawcza)
obejmuje:integrację hostingu nie Client integrację
Ważny
Integracja usługi .NET AspireAzure Functions jest obecnie dostępna w wersji zapoznawczej i może ulec zmianie.
Azure Functions to rozwiązanie bezserwerowe, które umożliwia pisanie mniejszej ilości kodu, utrzymywanie mniejszej infrastruktury i oszczędność kosztów. Integracja usługi .NET AspireAzure Functions umożliwia tworzenie, debugowanie i organizowanie projektu Azure Functions .NET w ramach hosta aplikacji.
Oczekuje się, że zainstalowałeś wymagane narzędzia Azure.
Obsługiwane scenariusze
Integracja funkcji .NET AspireAzure ma kilka kluczowych scenariuszy obsługiwanych. W tej sekcji opisano scenariusze i przedstawiono szczegółowe informacje dotyczące implementacji każdego podejścia.
Obsługiwane wyzwalacze
W poniższej tabeli wymieniono obsługiwane wyzwalacze dla usługi Azure Functions w ramach integracji .NET Aspire:
Wyzwalacz | Atrybut | Szczegóły |
---|---|---|
Wyzwalacz Azure Event Hubs | EventHubTrigger |
📦 Aspire. Hosting.Azure. EventHubs |
Wyzwalacz Azure Service Bus | ServiceBusTrigger |
📦 Aspire. Gościnność.Azure. ServiceBus |
Wyzwalacz Storage Blobów Azure | BlobTrigger |
📦 Aspire.Hosting.Azure.Przechowywanie |
Wyzwalacz Azure Storage Queues | QueueTrigger |
📦 Aspire. Hosting.Azure. Przechowywanie |
Wyzwalacz HTTP | HttpTrigger |
Obsługiwane bez żadnych dodatkowych zależności zasobów. |
Wyzwalacz czasomierza | TimerTrigger |
Obsługiwane bez żadnych dodatkowych zależności zasobów — opiera się na niejawnej pamięci masowej hosta. |
Ważny
Inne wyzwalacze i powiązania usługi Azure Functions nie są obecnie obsługiwane w integracji .NET AspireAzure Functions.
Wdrażania
Obecnie wdrażanie jest obsługiwane tylko dla kontenerów na platformie Azure Container Apps (ACA) przy użyciu funkcji publikowania kontenera w zestawie SDK w Microsoft.Azure.Functions.Worker.Sdk
. Ta metodologia wdrażania nie obsługuje obecnie skalowania automatycznego opartego na technologii KEDA.
Konfigurowanie zewnętrznych punktów końcowych HTTP
Aby wyzwalacze HTTP były publicznie dostępne, wywołaj interfejs API WithExternalHttpEndpoints w AzureFunctionsProjectResource. Aby uzyskać więcej informacji, zajrzyj do Add Azure Functions resource.
Azure Ograniczenia projektu funkcjonalności
Integracja usługi .NET AspireAzure Functions ma następujące ograniczenia projektu:
- Musisz celować w wersję .NET 8.0 lub nowszą.
- Należy użyć zestawu SDK .NET 9.
- Obecnie obsługuje tylko procesy robocze .NET z izolowanym modelem procesu roboczego.
- Wymaga następujących pakietów NuGet:
-
📦 Microsoft.Azure. Functions.Worker: użyj
FunctionsApplicationBuilder
. -
📦 Microsoft.Azure. Functions.Worker.Sdk: dodaje obsługę
dotnet run
iazd publish
. - 📦 Microsoft.Azure. Functions.Http.AspNetCore: dodaje interfejsy API obsługujące wyzwalacze HTTP.
-
📦 Microsoft.Azure. Functions.Worker: użyj
Jeśli wystąpią problemy z projektem Azure Functions, takie jak:
Brak dostępnego środowiska uruchomieniowego usługi Functions zgodnego z wersją określoną w projekcie
W Visual Studiospróbuj sprawdzić aktualizację oprogramowania narzędziowego Azure Functions. Otwórz okno dialogowe Opcje, przejdź do Projekty i rozwiązania, a następnie wybierz Azure Funkcje. Wybierz przycisk Sprawdź aktualizacje, aby upewnić się, że masz najnowszą wersję narzędzi Azure Functions:
Integracja hostingu
Integracja hostingu Azure Functions modeluje zasób Azure Functions jako typ AzureFunctionsProjectResource (podtyp ProjectResource). Aby uzyskać dostęp do tego typu i interfejsów API, które umożliwiają jego dodanie do hosta aplikacji , zainstaluj pakiet NuGet 📦Aspire.Hosting.Azure.Functions.
dotnet add package Aspire.Hosting.Azure.Functions --prerelease
Aby uzyskać więcej informacji, zobacz dotnet add package or Manage package dependencies in .NET applications.
Dodaj zasób Azure Functions
W projekcie hosta aplikacji wywołaj AddAzureFunctionsProject na wystąpieniu builder
, aby dodać zasób funkcji 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...
Gdy .NET Aspire dodaje zasób projektu usługi Azure Functions w hoście aplikacji, jak pokazano w poprzednim przykładzie, zasób functions
może być przywoływany przez inne zasoby projektu. Metoda WithReference konfiguruje połączenie w ExampleProject
o nazwie "functions"
. Jeśli Azure Zasób został wdrożony i udostępnił wyzwalacz HTTP, jego punkt końcowy byłby zewnętrzny ze względu na wywołanie WithExternalHttpEndpoints. Aby uzyskać więcej informacji, zobacz Zasoby referencyjne.
Dodawanie zasobu usługi Azure Functions z magazynem hostów
Jeśli chcesz zmodyfikować domyślne konto magazynu hostów używane przez hosta usługi Azure Functions, wywołaj metodę WithHostStorage w zasobie projektu usługi 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...
Powyższy kod opiera się na 📦Aspire.Hosting.Azure.Storage pakiecie NuGet w celu dodania zasobu Azure Storage działającego jako emulator. Zasób storage
jest następnie przekazywany do interfejsu API WithHostStorage
, jawnie ustawiając magazyn hostów na emulowany zasób.
Notatka
Jeśli nie używasz implicitznego przechowywania danych gospodarza, musisz ręcznie przypisać rolę StorageAccountContributor
zasobowi dla wdrożonych wystąpień. Ta rola jest automatycznie przypisywana do automatycznie wygenerowanej pamięci hostów.
Zasoby referencyjne w Azure Functions
Aby odwołać się do innych zasobów Azure w projekcie usługi Azure Functions, połącz wywołanie WithReference
w zasobie projektu usługi Azure Functions i podaj zasób do odwołania:
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();
Powyższy kod dodaje zasób Azure Storage do hosta aplikacji i odwołuje się do niego w projekcie usługi Azure Functions. Zasób blobs
jest dodawany do zasobu storage
, a następnie przywoływany przez zasób functions
. Informacje o połączeniu wymagane do nawiązania połączenia z zasobem blobs
są automatycznie wstrzykiwane do projektu usługi Azure Functions i umożliwiają projektowi zdefiniowanie BlobTrigger
, który opiera się na zasobie blobs
.
Zobacz też
- .NET .NET Aspire integracji
- .NET Aspire GitHub repozytorium
- dokumentacja funkcji Azure
- przykładowa galeria obrazów .NET.NET Aspire i Functions