.NET Aspire Azure İşlev Entegrasyonu (Önizleme)
Dahil:Barındırma tümleştirmesi değil
Client tümleştirme
Önemli
.NET Aspire Azure İşlevleri tümleştirmesi şu anda önizleme aşamasındadır ve değiştirilebilir.
Azure İşlevleri daha az kod yazmanızı, daha az altyapı korumanızı ve maliyetlerden tasarruf etmenizi sağlayan sunucusuz bir çözümdür. .NET Aspire Azure İşlevleri tümleştirmesi, uygulama konağı kapsamında bir Azure İşlevleri .NET projesi geliştirmenizi, hata ayıklamanızı ve yönetmenizi sağlar.
Gerekli Azure araçlarını yüklemiş olmanız beklenir:
- .NET ile Azure geliştirme için Visual Studio yapılandırma
- .NET ile Azure geliştirme için Visual Studio Code yapılandırma
- Azure İşlevler Temel Araçları'nı Yükleyin
Desteklenen senaryolar
.NET Aspire Azure İşlevleri tümleştirmesinin desteklenen birkaç temel senaryosu vardır. Bu bölümde senaryolar özetlenmiştir ve her yaklaşımın uygulanmasıyla ilgili ayrıntılar sağlanır.
Desteklenen tetikleyiciler
Aşağıdaki tabloda, .NET Aspire tümleştirmesinde Azure İşlevleri için desteklenen tetikleyiciler listelenmektedir:
Tetiklemek | Öznitelik | Detaylar |
---|---|---|
Azure Event Hubs tetikleyicisi | EventHubTrigger |
📦 Aspire. Barındırma.Azure. EventHubs |
Azure Service Bus tetikleyici | ServiceBusTrigger |
📦 Aspire. Hosting.Azure. ServiceBus |
Azure Depolama Blobları tetikleyicisi | BlobTrigger |
📦 Aspire. Konukseverlik.Azure. Depolama |
Azure Storage Queues tetikleyicisi | QueueTrigger |
📦 Aspire. Konukseverlik.Azure. Depolama |
HTTP tetikleyicisi | HttpTrigger |
Ek kaynak bağımlılıkları olmadan desteklenir. |
Zamanlayıcı tetikleyicisi | TimerTrigger |
Ek kaynak bağımlılıkları olmadan desteklenir; örtük konak depolamaya dayanır. |
Önemli
Diğer Azure İşlevleri tetikleyicileri ve bağlamaları şu anda .NET AspireAzure İşlevleri tümleştirmesinde desteklenmemektedir.
Dağıtım
Şu anda dağıtım, Microsoft.Azure.Functions.Worker.Sdk
SDK kapsayıcı yayımlama işlevi kullanılarak yalnızca Azure Container Apps (ACA) üzerindeki kapsayıcılara desteklenmektedir. Bu dağıtım metodolojisi şu anda KEDA tabanlı otomatik ölçeklendirmeyi desteklememektedir.
Dış HTTP uç noktalarını yapılandırma
HTTP tetikleyicilerinin genel olarak erişilebilir olmasını sağlamak için AzureFunctionsProjectResourceüzerinde WithExternalHttpEndpoints API'sini çağırın. Daha fazla bilgi için bkz. Azure İşlevlerini ekleme kaynağı.
Azure İşlev projesi kısıtlamaları
.NET Aspire Azure İşlevleri tümleştirmesinde aşağıdaki proje kısıtlamaları vardır:
- .NET 8.0 veya daha sonraki bir sürümü hedeflemeniz gerekir.
- .NET 9 SDK kullanmanız gerekir.
- Şu anda yalnızca yalıtılmış çalışan modeline sahip .NET çalışanlarınıdestekler.
- Aşağıdaki NuGet paketlerini gerektirir:
-
📦 Microsoft.Azure. Functions.Worker:
FunctionsApplicationBuilder
kullanın. -
📦 Microsoft.Azure. Functions.Worker.Sdk:
dotnet run
veazd publish
için destek ekler. - 📦 Microsoft.Azure. Functions.Http.AspNetCore: HTTP tetikleyici destekleyen API'ler ekler.
-
📦 Microsoft.Azure. Functions.Worker:
Azure İşlevleri projesinde aşağıdakiler gibi sorunlarla karşılaşırsanız:
Projede belirtilen sürümle eşleşen İşlevler çalışma zamanı yok
Visual Studio'da Azure İşlevleri aracında bir güncelleştirmeyi kontrol etmeye çalışın. Seçenekleri iletişim kutusunu açın, Projeler ve Çözümler’e gidin ve ardından Azure İşlevleröğesini seçin. Azure İşlevleri araçlarının en son sürümüne sahip olduğunuzdan emin olmak için Güncelleştirmeleri denetle düğmesini seçin:
Barındırma entegrasyonu
Barındırma tümleştirmesi Azure İşlevlerini, bir Azure İşlev kaynağını, AzureFunctionsProjectResource (ProjectResourcealt türü) türü olarak modeller. uygulama konağınıza eklemenize olanak sağlayan bu türe ve API'lere erişmek için projesini yükleyin 📦Aspire. Konukseverlik.Azure. İşlevler NuGet paketi.
dotnet add package Aspire.Hosting.Azure.Functions --prerelease
Daha fazla bilgi için bkz. dotnet add package veya .NET uygulamalarında paket bağımlılıklarını yönetme.
Azure İşlevleri kaynağını ekleyin
Uygulama ana bilgisayar projenizde, Azure İşlevleri kaynağı eklemek için builder
örneğindeki AddAzureFunctionsProject çağırın:
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...
önceki örnekte gösterildiği gibi .NET Aspire uygulama konağına bir Azure İşlevleri proje kaynağı eklediğinde, functions
kaynağına diğer proje kaynakları tarafından başvurulabilir.
WithReference yöntemi, ExampleProject
'de "functions"
adlı bir bağlantı yapılandırıyor.
Azure Kaynağı dağıtıldıysa ve bir HTTP tetikleyicisi kullanıma sunulduysa, WithExternalHttpEndpointsçağrısı nedeniyle uç noktası harici olurdu. Daha fazla bilgi için bkz. Başvuru kaynakları.
Ana bilgisayar depolaması ile Azure İşlevleri kaynağı ekleme
Azure İşlevleri ana bilgisayarının kullandığı varsayılan konak depolama hesabını değiştirmek istiyorsanız, Azure İşlevleri proje kaynağında WithHostStorage yöntemini çağırın:
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...
Yukarıdaki kod 📦Aspiredayanır. Konukseverlik.Azure. Öykünücü olarak çalışan bir Azure Depolama kaynağı eklemek için Depolama NuGet paketi. Daha sonra storage
kaynağı WithHostStorage
API'sine geçirilir ve konak depolama alanı öykünülmüş kaynağa açıkça ayarlanır.
Not
Gizli konak depolama kullanmıyorsanız, dağıtılan örnekler için kaynağınıza StorageAccountContributor
rolünü el ile atamanız gerekir. Bu rol, örtük olarak oluşturulan konak depolama alanı için otomatik olarak atanır.
Azure İşlevleri İçin Kaynaklara Başvurma
Azure İşlevleri projesindeki diğer Azure kaynaklarına başvurmak için, Azure İşlevleri proje kaynağında WithReference
çağrısı zincirleyin ve başvurulacak kaynağı sağlayın:
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();
Yukarıdaki kod, uygulama konağına bir Azure Depolama kaynağı ekler ve buna Azure İşlevleri projesinde başvurur.
blobs
kaynağı storage
kaynağına eklenir ve ardından functions
kaynağı tarafından başvurulur.
blobs
kaynağına bağlanmak için gereken bağlantı bilgileri otomatik olarak Azure İşlevleri projesine eklenir ve projenin blobs
kaynağı kullanan bir BlobTrigger
tanımlamasını sağlar.
Ayrıca bkz.
.NET Aspire