Bagikan melalui


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:

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:

Visual Studio: Opsi / Proyek dan Solusi / fungsi Azure.

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.

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