Hızlı Başlangıç: Dayanıklı Görev Zamanlayıcı'yı kullanmak için bir Dayanıklı İşlevler uygulaması yapılandırma

Azure İşlevleri'nin bir özelliği olan Dayanıklı İşlevler'i kullanarak sunucusuz bir ortamda durum bilgisi olan işlevler yazın. Dayanıklı İşlevler'ın faydalı olduğu senaryolar arasında mikro hizmetlerin ve iş akışlarının orkestrasyonu, fan-out/fan-in gibi durum bilgisi gerektiren desenler ve uzun süreli görevler bulunur.

Dayanıklı İşlevleriniz için orkestrasyon ve varlık çalışma zamanı durumunu depolamak üzere arka uç olarak Dayanıklı Görev Zamanlayıcı'yı kullanabilirsiniz.

Bu hızlı başlangıç rehberinde şunları yapacaksınız:

  • Dayanıklı Görev Zamanlayıcısı'nı kullanmak için mevcut bir Dayanıklı İşlevler uygulamasını yapılandırın.
  • Yerel geliştirme için Dayanıklı Görev emülatörünü ayarlayın.
  • Visual Studio Code kullanarak uygulamanızı App Service planında Azure'a dağıtın.
  • Dayanıklı Görev Zamanlayıcı panosunda uygulamanızın ve görev hub'ınızın durumunu izleyin.

C# için bu hızlı başlangıç kılavuzunda, .NET İzole Çalışan Modeli kullanılır.

Önkoşullar

  • Yerel bilgisayarınızda var olan bir Azure İşlevleri projesi:
  • Dayanıklı İşlevler uygulaması oluşturun - JavaScript
  • Dayanıklı Görev Zamanlayıcı öykünücüsü çalıştırmak için Docker yüklendi.
  • Azurite yüklendi.
  • Verilerinizin güvenliğini sağlayan bir HTTP test aracı .

Dayanıklı Görev Zamanlayıcı paketini ekleme

Microsoft.Azure.Functions.Worker.Extensions.DurableTask.AzureManaged paketinin en son sürümünü dotnet add package komutunu kullanarak yükleyin.

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.DurableTask.AzureManaged --prerelease

Uyarı

Dayanıklı Görev Zamanlayıcı uzantısı, Microsoft.Azure.Functions.Worker.Extensions.DurableTask sürüm 1.2.2 veya üzerini gerektirir.

host.jsoniçinde, özelliğini Dayanıklı Görev Zamanlayıcı desteği içeren 4.32.0 veya sonraki bir sürümü kullanacak şekilde güncelleştirin extensionBundle :

{
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle",
    "version": "[4.32.0, 5.0.0)"
  }
}

host.json dosyasını güncelle

Arka uç olarak Dayanıklı Görev Zamanlayıcı'yı kullanmak için host.json aşağıdaki gibi güncelleştirin.

{
  "extensions": {
    "durableTask": {
      "hubName": "%TASKHUB_NAME%",
      "storageProvider": {
        "type": "azureManaged",
        "connectionStringName": "DURABLE_TASK_SCHEDULER_CONNECTION_STRING"
      }
    }
  }
}

local.settings.json yapılandırın

Yerel geliştirme için bağlantı bilgileri ekleyin:

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "<DEPENDENT ON YOUR PROGRAMMING LANGUAGE>",
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;Authentication=None",
    "TASKHUB_NAME": "default"
  }
}

Dayanıklı Görev öykünücüsünü ayarlayın

  1. Emülatörü içeren docker imajını alın.

    docker pull mcr.microsoft.com/dts/dts-emulator:latest
    
  2. Öykünücüyü çalıştırın.

    docker run -d -p 8080:8080 -p 8082:8082 mcr.microsoft.com/dts/dts-emulator:latest
    

    Aşağıdaki çıktı, öykünücünün başarıyla başladığını gösterir.

    Öykünücünün terminalde başarıyla başladığını gösteren ekran görüntüsü.

  3. Docker masaüstünde kullanıma sunulan bağlantı noktalarını not edin. Zamanlayıcı, farklı amaçlar için birden çok bağlantı noktasını kullanıma sunar:

    • 8080: Bir uygulamanın zamanlayıcıya bağlanmasına izin veren gRPC uç noktası
    • 8082: Dayanıklı Görev Zamanlayıcı panosu için uç nokta

    Docker'da bağlantı noktalarının ekran görüntüsü.

Uyarı

Dayanıklı Görev Zamanlayıcı öykünücüsü, düzenleme verilerini bellekte depolar, bu da kapatıldığında tüm verilerin kaybolduğu anlamına gelir.

Yerel olarak test et

  1. Uygulamanızın kök dizinine gidin ve Azurite'yi başlatın.

    azurite start
    
  2. Uygulamayı çalıştırın.

    func start
    

    Uygulamanızdaki işlevlerin listesini görmeniz gerekir.

  3. Seçtiğiniz HTTP POSTtest aracını kullanarak URL uç noktasına bir HTTP isteği göndererek bir düzenleme örneği başlatın.

  4. url statusQueryGetUri değerini kopyalayın ve tarayıcınızın adres çubuğuna yapıştırın. Orkestrasyon örneğinin durumunu görmelisiniz.

      {
        "name": "DurableFunctionsOrchestration",
        "instanceId": "<instanceID>",
        "runtimeStatus": "Completed",
        "input": null,
        "customStatus": null,
        "output": [
          "Hello Tokyo!",
          "Hello Seattle!",
          "Hello London!"
        ],
        "createdTime": "2025-02-21T21:09:59Z",
        "lastUpdatedTime": "2025-02-21T21:10:00Z"
      }
    
  5. Düzenleme örneği hakkında daha fazla ayrıntı görüntülemek için http://localhost:8082/ gidin ve Dayanıklı Görev Zamanlayıcı panosunu açın.

  6. Panosunu görmek için varsayılan görev hub'ına tıklayın.

Test sorunlarıyla mı karşılaşılıyor? Sorun giderme kılavuzuna bakın.

Uygulamanızı Azure'da çalıştırma

Gerekli kaynakları oluşturma

İşlev uygulaması tümleşik oluşturma akışının ardından Azure'da Dayanıklı Görev Zamanlayıcı örneği ve Azure İşlevleri uygulaması oluşturun. Bu deneyim, kimlik tabanlı erişimi otomatik olarak ayarlar ve uygulamanın zamanlayıcıya erişmesi için gerekli ortam değişkenlerini yapılandıracaktır.

  1. Fonksiyon uygulaması oluşturma paneline gidin.

    İşlev uygulamaları için barındırma seçeneklerinin ekran görüntüsü.

  2. İşlev Uygulaması Oluştur (Esnek Tüketim) dikey penceresinde Temel Bilgiler sekmesindeki bilgileri doldurun.

    Esnek Tüketim planı İşlev uygulaması oluşturmaya yönelik Temel sekmesinin ekran görüntüsü.

    Alan Açıklama
    Subscription Azure aboneliğinizi seçin.
    Kaynak Grubu Mevcut bir kaynak grubunu seçin veya yeni bir grup oluşturmak için Yeni oluştur'a tıklayın.
    İşlev Uygulamasının adı İşlev uygulamanız için benzersiz bir ad oluşturun.
    Kod veya kapsayıcı görüntüsü dağıtmak istiyor musunuz? Kod seçeneğinin seçili kalmasını sağlayın.
    Bölge Desteklenen bölgelerden birini seçin.
    Çalışma zamanı yığını Bu hızlı başlangıç için kullandığınız çalışma zamanını seçin.
    Sürüm Çalışma zamanı yığını sürümünüzü seçin.
    Örnek boyutu Bir örnek boyutu seçin veya varsayılan seçimi kullanın. Örnek boyutları hakkında daha fazla bilgi edinin.
    Alanlar Arası Yedeklilik Varsayılan Devre Dışı ayarı olarak bırakın.
  3. Dayanıklı İşlevler sekmesini seçin.

  4. Dayanıklı İşlevleriniz için arka uç sağlayıcısı olarak Azure tarafından yönetilen: Dayanıklı Görev Zamanlayıcı'yı seçin.

  5. Bir zamanlayıcı kaynağı oluşturun. Bu eylem otomatik olarak bir görev hub'ı oluşturur.

    Esnek Tüketim İşlevi uygulaması oluşturma işleminin ekran görüntüsü.

    Alan Açıklama
    Depolama altyapısı Azure tarafından yönetilen: Dayanıklı Görev Zamanlayıcı'yı seçin.
    Bölge Zamanlayıcı ve işlev uygulaması bölgelerinin aynı olduğundan emin olun.
    Dayanıklı Görev Zamanlayıcı Sunulan zamanlayıcı adını kullanın veya Özel ad oluşturmak için Yeni oluştur'a tıklayın.
    Tasarı Projenize en uygun fiyatlandırma planını seçin. Üretim kullanımı için en uygun planı belirlemek için Düzenleme çerçevesi seçme kılavuzunu gözden geçirin.
    Kapasite birimleri Yalnızca "Ayrılmış" fiyatlandırma planı seçildiğinde geçerlidir. En fazla 3 Kapasite Birimi seçebilirsiniz.
  6. Kaynak oluşturmayı gözden geçirmek için Gözden Geçir + oluştur'a tıklayın.

    Gerekli rol tabanlı erişim denetimi (RBAC) iznine sahip kullanıcı tarafından atanan yönetilen kimlik otomatik olarak oluşturulur ve İşlev uygulamasına eklenir. Yönetilen kimlik kaynağıyla ilgili özet görünüm bilgilerini bulabilirsiniz, örneğin:

    • Kendisine atanan rol (Dayanıklı Görev Verileri Katkıda Bulunanı)

    • Görev hub'ı düzeyi kapsamındaki atama

      Gözden Geçir ve oluştur sekmesinde seçilen ve gözden geçirilip incelenen alanların ve özelliklerin ekran görüntüsü.

  7. Doğrulama geçtikten sonra Oluştur'a tıklayın.

Kaynak dağıtımı yaklaşık 15-20 dakika sürebilir. Bu işlemi tamamladıktan sonra uygulamanızı Azure'a dağıtabilirsiniz.

İşlev uygulamanızı Azure'a dağıtma

Önemli

Mevcut bir işlev uygulamasına dağıtım yapıldığında Azure'da bu uygulamanın içeriğinin her zaman üzerine yazılacağını unutmayın.

  1. Komut paletine Azure İşlevleri: İşlev Uygulamasına Dağıt yazın ve seçin.

  2. Yeni oluşturduğunuz işlev uygulamasını seçin. Önceki dağıtımların üzerine yazmanız istendiğinde, işlev kodunuzu yeni işlev uygulaması kaynağına dağıtmak için Dağıt'ı seçin.

  3. Dağıtım tamamlandığında, oluşturduğunuz Azure kaynakları da dahil olmak üzere oluşturma ve dağıtım sonuçlarını görüntülemek için View Output öğesini seçin. Bildirimi kaçırırsanız, yeniden görmek için sağ alt köşedeki zil simgesini seçin.

    Çıktıyı Görüntüle penceresinin ekran görüntüsü.

İşlevler Premium planındaki uygulamalar

Uygulamanız İşlevler Premium planında çalışıyorsa, uygulamanızın yüke göre otomatik olarak ölçeklendirildiğinden emin olmak için dağıtımdan sonra Çalışma Zamanı Ölçeği İzleme ayarını açın:

az resource update -g <resource_group> -n <function_app_name>/config/web --set properties.functionsRuntimeScaleMonitoringEnabled=1 --resource-type Microsoft.Web/sites

İşlev uygulamanızı test edin

İşlevinizin URL'sini almak için aşağıdaki komutu çalıştırın:

az functionapp function list --resource-group <RESOURCE_GROUP_NAME> --name <FUNCTION_APP_NAME>  --query '[].{Function:name, URL:invokeUrlTemplate}' --output json

Orkestrasyon durumunu kontrol etme

Dayanıklı Görev Zamanlayıcı panosunda düzenleme örneğinin ve etkinlik ayrıntılarının durumunu denetleyin. Panoya erişmek için oturum açmanız gerekir.

Uyarı

Aşağıdaki yönerge, kapsamı belirli bir görev hub'ına göre belirlenmiş bir rol atamasını gösterir. Zamanlayıcıdaki tüm görev hub'larına erişmeniz gerekiyorsa, atamayı zamanlayıcı düzeyinde gerçekleştirin.

  1. Portalda Dayanıklı Görev Zamanlayıcı kaynağına gidin.

  2. Görev hub'ı adına tıklayın.

  3. Sol menüde Erişim denetimi (IAM) öğesini seçin.

  4. Rol ataması eklemek için Ekle'ye tıklayın.

    Portaldaki Erişim Denetimi bölmesinde rol ataması ekleme işleminin ekran görüntüsü.

  5. Dayanıklı Görev Verileri Katkıda Bulunanı'yı arayın ve seçin. Nextöğesine tıklayın.

    Portalda Dayanıklı Görev Verileri Katkı Sağlayıcı rol ataması seçiminin ekran görüntüsü.

  6. Üyeler sekmesinde, Erişim ata için Kullanıcı, grup veya hizmet sorumlusu seçeneğini seçin.

  7. Üyeler için + Üye seç'e tıklayın.

  8. Üyeleri seçin bölmesinde adınızı veya e-postanızı arayın:

    Portalda kullanıcı tarafından atanan yönetilen kimlik türünü seçme işleminin ekran görüntüsü.

  9. E-postanızı seçin ve Seç düğmesine tıklayın.

  10. Rolü atamayı tamamlamak için Gözden Geçir ve ata tıklayın.

  11. Rol atandıktan sonra görev hub'ı kaynağının sol menüsünde Genel Bakış'a tıklayın ve en üstteki Temel Parçalar bölümünde bulunan pano URL'sine gidin.

Kaynakları temizle

Hızlı başlangıcı tamamlamak için oluşturduğunuz kaynaklara artık ihtiyacınız yoksa, Azure aboneliğinizde ilgili maliyetlerden kaçınmak için kaynak grubunu ve tüm ilgili kaynakları geri alın.

Sonraki Adımlar