Aracılığıyla paylaş


.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

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

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:

Visual Studio: Seçenekler / Projeler ve Çözümler / Azure İşlevleri.

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.