Integrasi Fungsi .NET AspireAzure (Pratinjau)
Meliputi: integrasi hosting tidak
Client integrasi
Penting
Integrasi .NET AspireAzure Functions saat ini dalam pratinjau dan dapat berubah.
Azure Functions adalah solusi tanpa server yang memungkinkan Anda menulis lebih sedikit kode, mempertahankan lebih sedikit infrastruktur, dan menghemat biaya. Integrasi .NET AspireAzure Functions memungkinkan Anda mengembangkan, melakukan debugging, dan mengatur proyek Azure Functions .NET sebagai bagian dari host aplikasi.
Diharapkan Anda telah menginstal alat Azure yang diperlukan:
Skenario yang didukung
Integrasi .NET AspireAzure Functions memiliki beberapa skenario utama yang didukung. Bagian ini menguraikan skenario dan memberikan detail terkait implementasi setiap pendekatan.
Pemicu yang didukung
Tabel berikut mencantumkan pemicu yang didukung untuk Azure Functions dalam integrasi .NET Aspire:
Pelatuk | Atribut | Rincian |
---|---|---|
pemicu Azure Event Hubs | EventHubTrigger |
📦 Aspire. Hosting.Azure. EventHubs |
Azure Service Bus pemicu | ServiceBusTrigger |
📦 Aspire. Hosting.Azure. ServiceBus |
Pemicu Azure Storage Blobs | BlobTrigger |
📦 Aspire. Hosting.Azure. Penyimpanan |
pemicu Azure Storage Queues | QueueTrigger |
📦 Aspire. Hosting.Azure. Penyimpanan |
Pemicu HTTP | HttpTrigger |
Didukung tanpa dependensi sumber daya tambahan. |
Pemicu penghitung waktu | TimerTrigger |
Didukung tanpa dependensi sumber daya tambahan—bergantung pada penyimpanan host implisit. |
Penting
Fungsi pemicu dan pengikatan Azure lainnya saat ini tidak tersedia dalam integrasi .NET AspireAzure Functions.
Penyebaran
Saat ini, penyebaran hanya didukung untuk kontainer di Azure Container Apps (ACA) menggunakan fungsi penerbitan kontainer SDK di Microsoft.Azure.Functions.Worker.Sdk
. Metodologi penyebaran ini saat ini tidak mendukung penskalaan otomatis berbasis KEDA.
Mengonfigurasi titik akhir HTTP eksternal
Untuk membuat pemicu HTTP dapat diakses secara publik, panggil API WithExternalHttpEndpoints di AzureFunctionsProjectResource. Untuk informasi selengkapnya, lihat Tambahkan sumber daya Azure Functions.
batasan fungsi proyek Azure
Integrasi .NET AspireAzure Functions memiliki batasan proyek berikut:
- Anda harus menargetkan .NET 8.0 atau yang lebih baru.
- Anda harus menggunakan .NET 9 SDK.
- Saat ini hanya mendukung pekerja .NET dengan model pekerja terisolasi .
- Memerlukan paket NuGet berikut:
-
📦 Microsoft.Azure.Fungsi.Pekerja: Gunakan
FunctionsApplicationBuilder
. -
📦 Microsoft.Azure.Functions.Worker.Sdk : Menambahkan dukungan untuk
dotnet run
danazd publish
. - 📦 Microsoft.Azure. Functions.Http.AspNetCore: Menambahkan API pendukung pemicu HTTP.
-
📦 Microsoft.Azure.Fungsi.Pekerja: Gunakan
Jika Anda mengalami masalah dengan proyek Azure Functions, seperti:
Tidak ada runtime Functions yang tersedia yang cocok dengan versi yang ditentukan dalam proyek
Di Visual Studio, coba periksa pembaruan pada perangkat tooling Azure Functions. Buka dialog Opsi, navigasikan ke Proyek dan Solusi, lalu pilih Azure Functions. Pilih tombol Periksa pembaruan untuk memastikan Anda memiliki versi terbaru alat Azure Functions:
Integrasi hosting
Integrasi hosting Azure Functions memodelkan sumber daya Azure Functions sebagai jenis AzureFunctionsProjectResource (subjenis ProjectResource). Untuk mengakses tipe dan API-API ini yang memungkinkan Anda untuk menambahkannya ke host aplikasi proyek, instal paket NuGet 📦Aspire.Hosting.Azure.Functions.
-
CLI
- PackageReference
dotnet add package Aspire.Hosting.Azure.Functions --prerelease
Untuk informasi selengkapnya, lihat dotnet menambahkan paket atau Mengelola dependensi paket di aplikasi .NET.
Menambahkan sumber daya Azure Functions
Di proyek host aplikasi Anda, panggil AddAzureFunctionsProject pada instans builder
untuk menambahkan sumber daya 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...
Saat .NET Aspire menambahkan sumber daya proyek Azure Functions ke host aplikasi, seperti yang ditunjukkan dalam contoh sebelumnya, sumber daya functions
dapat dirujuk oleh sumber daya proyek lainnya. Metode WithReference mengonfigurasi koneksi di ExampleProject
bernama "functions"
. Jika Sumber Daya Azure disebarkan dan mengekspos pemicu HTTP, endpoint-nya akan menjadi eksternal karena panggilan ke WithExternalHttpEndpoints. Untuk informasi selengkapnya, lihat sumber daya Referensi .
Menambahkan sumber daya Azure Functions dengan penyimpanan host
Jika Anda ingin mengubah akun penyimpanan host default yang digunakan host Azure Functions, panggil metode WithHostStorage pada sumber daya proyek 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...
Kode sebelumnya bergantung pada 📦Aspire. Hosting.Azure. Penyimpanan paket NuGet untuk menambahkan sumber daya Azure Storage yang berjalan sebagai emulator. Sumber daya storage
kemudian diteruskan ke API WithHostStorage
, secara eksplisit mengatur penyimpanan host ke sumber daya yang ditiru.
Nota
Jika Anda tidak menggunakan penyimpanan host implisit, Anda harus menetapkan peran StorageAccountContributor
secara manual ke sumber daya Anda pada instans yang telah disebarkan. Peran ini secara otomatis ditetapkan untuk penyimpanan host yang dihasilkan secara implisit.
Sumber daya referensi di Azure Functions
Untuk mereferensikan sumber daya Azure lainnya dalam proyek Azure Functions, ajukan panggilan ke WithReference
pada sumber daya proyek Azure Functions dan berikan sumber daya untuk dirujuk:
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();
Kode sebelumnya menambahkan sumber daya Azure Storage ke host aplikasi dan mereferensikannya dalam proyek Azure Functions. Sumber daya blobs
ditambahkan ke sumber daya storage
lalu dirujuk oleh sumber daya functions
. Informasi koneksi yang diperlukan untuk terhubung ke sumber daya blobs
secara otomatis dimasukkan ke dalam proyek Azure Functions dan memungkinkan proyek menentukan BlobTrigger
yang bergantung pada sumber daya blobs
.
Lihat juga
.NET Aspire