Azure Logic Apps'teki iş akışlarından Azure Service Bus'a bağlanma

Şunlar için geçerlidir: Azure Logic Apps (Tüketim + Standart)

Bu kılavuzda, Service Bus bağlayıcısını kullanarak Azure Logic Apps'teki otomasyon ve tümleştirme iş akışlarından Azure Service Bus'taki service bus kaynaklarına erişme gösterilmektedir. Service Bus olaylarının iş akışınızı tetiklemesini veya service bus öğeleriyle etkileşim kuran eylemleri çalıştırmasını sağlayabilirsiniz, örneğin:

  • kuyruklarda, konu başlıklarında ve konu aboneliklerinde iletilerin ne zaman geldiğini (otomatik tamamlama) veya alınıp alınıp alınmayacağını (peek-lock) izleyin.
  • İleti gönderme.
  • Konu abonelikleri oluşturun ve silin.
  • Kuyruklardaki ve konu aboneliklerindeki iletileri yönetin; örneğin alma, erteleme, tamamlama, erteleme, bırakma ve teslim edilemeyen iletiler.
  • Kuyruklardaki ve konu aboneliklerindeki ileti ve oturumlardaki kilitleri yenileyin.
  • Kuyruklardaki ve konu başlıklarındaki oturumları kapatın.

Azure Service Bus'tan yanıt alan tetikleyicileri ve eylemleri kullanabilir ve ardından çıkışı iş akışlarınızdaki diğer eylemlerin kullanımına sunabilirsiniz.

Bağlayıcı teknik referans

Service Bus bağlayıcısı, mantıksal uygulama iş akışı türüne ve konak ortamına göre farklı sürümlere sahiptir.

Mantıksal uygulama Ortam Bağlayıcı sürümü
Tüketim Çokkiracılı Azure Logic Apps Yönetilen bağlayıcı, Çalışma Zamanı>Paylaşılan altında bağlayıcı galerisinde görünür.

Not: Service Bus yönetilen bağlayıcı tetikleyicileri uzun yoklama tetikleyici desenini izler; bu da tetikleyicinin kuyruktaki veya konu aboneliğindeki iletileri düzenli aralıklarla denetlediği anlamına gelir. Daha fazla bilgi için bkz:
- Service Bus yönetilen bağlayıcı referansı
- Azure Logic Apps'te yönetilen bağlayıcılar
Standart Tek kiracılı Azure Logic Apps, App Servis Ortamı v3 (yalnızca Windows planları) ve karma dağıtım Yönetilen bağlayıcı, bağlayıcı galerisi altında Çalışma Zamanı>Paylaşılan olarak görünür ve gömülü bağlayıcı, bağlayıcı galerisi altında Çalışma Zamanı>Gömülü olarak görünür ve hizmet sağlayıcısı tabanlıdır.

Not: Service Bus yönetilen bağlayıcı tetikleyicileri uzun yoklama tetikleyici desenini izler; bu da tetikleyicinin kuyruktaki veya konu aboneliğindeki iletileri düzenli aralıklarla denetlediği anlamına gelir.

Service Bus yerleşik bağlayıcısı oturum dışı tetikleyicileri, bağlayıcının tam olarak yönettiği sürekli yoklama tetikleyici desenini izler. Bu düzende tetikleyici, kuyruk veya konu aboneliğindeki iletileri sürekli olarak denetler. Oturum tetikleyicileri uzun yoklama tetikleyici desenini izler, ancak yapılandırmalarını clientRetryOptions:tryTimeout adlı Azure İşlevleri ayarı yönetir. Yerleşik bağlayıcı genellikle daha iyi performans, özellikler, fiyatlandırma vb. sağlar.

Daha fazla bilgi için bkz:

- Service Bus yönetilen bağlantı aygıtı referansı
- Service Bus yerleşik bağlayıcı işlemleri
- Azure Logic Apps'teki yerleşik bağlayıcılar

Önkoşullar

  • Bir Azure hesabı ve aboneliği Ücretsiz bir Azure hesabı edinin.

  • Service Bus ad alanı ve bir kuyruk gibi mesajlaşma varlıkları.

    Daha fazla bilgi için bakınız:

  • Service Bus ad alanına ve mesajlaşma varlığına erişmek istediğiniz mantıksal uygulama kaynağı ve iş akışı.

    • İş akışınızı Service Bus tetikleyicisiyle başlatmak için boş bir iş akışı oluşturun. İş akışınızda Service Bus eylemi kullanmak için, senaryonuza en uygun tetikleyicilerle iş akışınızı başlatın.

    • Mantıksal uygulama kaynağınız Service Bus ad alanınıza ve mesajlaşma varlığınıza erişimin kimliğini doğrulamak için yönetilen kimlik kullanıyorsa, ilgili düzeylerde gerekli rol izinlerini atayın. Örneğin, bir kuyruğa erişmek için yönetilen kimlik, bu kuyruk için gerekli izinlere sahip bir rol gerektirir.

      • Mantıksal uygulama iş akışı farklı mesajlaşma varlıklarına erişse bile her mantıksal uygulama kaynağı yalnızca bir yönetilen kimlik kullanabilir.

      • Bir kuyruk veya konu aboneliğine erişen her yönetilen kimliğin kendi Service Bus API bağlantısını kullanması gerekir.

      • Farklı mesajlaşma varlıklarıyla ileti alışverişinde bulunan ve farklı izinler gerektiren her Service Bus işleminin kendi Service Bus API bağlantısını kullanması gerekir.

      Yönetilen kimlikler hakkında daha fazla bilgi için bkz . Azure Logic Apps'te yönetilen kimliklerle Azure kaynaklarına erişimin kimliğini doğrulama.

  • Varsayılan olarak, Service Bus yerleşik bağlayıcı işlemleri durumsuz. Bu işlemleri durum bilgisi olan modda çalıştırmak için bkz . Durum bilgisi olmayan yerleşik bağlayıcılar için durum bilgisi olan modu etkinleştirme.

Azure Service Bus işlemleri için dikkat edilmesi gerekenler

Sonsuz döngüler

Önemli

İleti kuyruğu veya konu aboneliği gibi aynı varlıkla çalışmak için aynı bağlayıcı türüne sahip bir tetikleyici ve eylem kullandığınızda iş akışınızın sonsuz döngü oluşturmadığından emin olun. Bu döngü, hiçbir zaman tamamlayamayacak bir iş akışına neden olur.

Bağlayıcı önbelleğinde kaydedilen oturumlarda sınır

Abonelik veya konu gibi her Service Bus mesajlaşma varlığı için Service Bus bağlayıcısı bağlayıcı önbelleğinde bir kerede en fazla 1.500 benzersiz oturum kaydedebilir. Oturum sayısı bu sınırı aşarsa bağlayıcı önbelleği eski oturumları kaldırır. Daha fazla bilgi için bkz . İleti oturumları.

Bağıntılı iletileri sırayla gönderme

İlgili iletileri belirli bir sırada göndermeniz gerektiğinde, Service Bus bağlayıcısını ve sıralı konvoy düzenini kullanarak bir iş akışı oluşturun. Bağıntılı iletiler, Azure Service Bus'taki oturumun kimliği gibi bu iletiler arasındaki ilişkiyi tanımlayan bir özelliğe sahiptir.

Tüketim mantıksal uygulaması iş akışı oluşturduğunuzda, sıralı konvoy desenini uygulayan service bus oturumlarını kullanarak bağıntılı sıralı teslim şablonunu seçebilirsiniz. Daha fazla bilgi için, İlgili iletileri sırayla gönderme bölümüne bakın.

Büyük ileti desteği

Büyük ileti desteği yalnızca Service Bus yerleşik bağlayıcı işlemlerini kullandığınızda Standart iş akışları için kullanılabilir. Örneğin, sırasıyla yerleşik tetikleyicileri ve eylemleri kullanarak büyük iletileri alabilir ve işleyebilirsiniz.

Service Bus yönetilen bağlayıcısı için, premium seviye Service Bus ad alanı kullandığınızda bile ileti boyutu üst sınırı 1 MB ile sınırlıdır.

İleti alma ve gönderme zaman aşımını artırma

Service Bus yerleşik işlemlerini kullanan Standart iş akışlarında, iletileri alma ve gönderme zaman aşımını artırabilirsiniz. Örneğin, ileti alma zaman aşımını artırmak için Azure İşlevleri uzantısında aşağıdaki kod örneğindeki ayarı değiştirin:

{
   "version": "2.0",
   "extensionBundle": {
      "id": "Microsoft.Azure.Functions.ExtensionBundle.Workflows",
      "version": "[1.*, 2.0.0)"
   },
   "extensions": {
      "serviceBus": {
         "batchOptions": {
            "operationTimeout": "00:15:00"
         }
      }  
   }
}

İleti gönderme zaman aşımını artırmak için ServiceProviders.ServiceBus.MessageSenderOperationTimeout uygulama ayarını ekleyin.

Service Bus yönetilen bağlayıcı tetikleyicileri

Service Bus yönetilen bağlayıcı için tüm tetikleyiciler uzun yoklama kalıbını kullanır. Bu tetikleyici türü tüm iletileri işler ve ardından kuyrukta veya konu başlığı aboneliğinde daha fazla iletinin görünmesi için 30 saniye bekler. 30 saniye içinde hiçbir ileti görünmezse tetikleyici çalıştırması atlanır. Aksi takdirde kuyruk veya konu aboneliği boş kalana kadar tetikleyici iletileri okumaya devam eder. Sonraki tetikleyici yoklaması tetikleyicinin özelliklerinde belirtilen yinelenme aralığını temel alır.

Bir veya daha fazla ileti kuyruğa ulaştığında (otomatik tamamlama) tetikleyicisi gibi bazı tetikleyiciler bir veya daha fazla ileti döndürebilir. Bu tetikleyiciler tetiklendiğinde, tetikleyicinin En fazla ileti sayısı özelliği tarafından belirtilen maksimum ile biri arasında değişen bir ileti sayısını geri döndürür.

Not

Otomatik tamamlama tetikleyicisi bir iletiyi otomatik olarak tamamlar, ancak tamamlama işlemi yalnızca Service Bus'a yapılan bir sonraki çağrıda gerçekleşir. Bu davranış iş akışı tasarımınızı etkileyebilir. Örneğin, iş akışınız kısıtlanmış duruma girerse bu değişiklik yinelenen iletilere neden olabileceğinden otomatik tamamlama tetikleyicisindeki eşzamanlılığı değiştirmekten kaçının. Eşzamanlılık denetiminin değiştirilmesi aşağıdaki koşulları oluşturur:

  • Kısıtlanan tetikleyiciler WorkflowRunInProgress kodu ile atlanır.
  • Tamamlama işlemi gerçekleşmez.
  • Sonraki tetikleyici çalıştırması yoklama aralığından sonra gerçekleşir.

Service bus kilit süresini yoklama süresinden daha uzun bir değere ayarlamanız gerekir. Ancak, bu ayara rağmen, iş akışınız bir sonraki yoklama aralığında kısıtlanmış durumda kalırsa ileti yine de tamamlanmayabilir.

Service Bus otomatik tamamlama tetikleyicisinde eşzamanlılığı değiştirmeniz gerekiyorsa, iş akışınızı ilk kaydetmeden önce bu değişikliği yapmayın. Eşzamanlılığı değiştirmek için tetikleyiciyi düzenlemeden önce iş akışınızı oluşturun ve kaydedin.

Service Bus yerleşik bağlayıcı tetikleyicileri

Service Bus yerleşik bağlayıcısı için oturum dışı tetikleyiciler, bağlayıcının tam olarak yönettiği sürekli yoklama tetikleyici desenini izler. Bu düzende tetikleyici, kuyruk veya konu aboneliğindeki iletileri sürekli olarak denetler. Buna karşılık, oturum tetikleyicileri uzun yoklama tetikleyici desenini izler. Azure İşlevleri ayarı olan clientRetryOptions:tryTimeout, yapılandırmalarını yönetir. Mantıksal uygulamanızın host.json dosyasında tanımlanan Azure İşlevleri ana bilgisayar uzantısı ve tasarımcı veya kod görünümü aracılığıyla ayarladığınız mantıksal uygulamanızın iş akışında tanımlanan tetikleyici ayarları, Service Bus yerleşik tetikleyicisinin yapılandırma ayarlarını paylaşır. Bu bölüm her iki ayar konumunu da kapsar. Service Bus tetikleyicileri hakkında aşağıdaki ayrıntılara dikkat edin:

  • Bazı yerleşik tetikleyiciler, bir kuyrukta iletiler kullanılabilir olduğunda tetikleyici gibi, bir veya daha fazla ileti döndürebilir. Bu tetikleyiciler tetiklendiğinde, bir ile mesaj sayısı arasında sonuç verir.

  • Yerleşik tetikleyici Bir kuyrukta iletiler kullanılabilir olduğunda (V1), En fazla ileti parti boyutu adlı parametreyi desteklemez. Bu parametreyi kullanırsanız bunun yerine V2 sürümünü kullanmanız gerekir. Parametresinin desteklenmediği bir tetikleyici kullanmak için, parametreyi maxMessageBatchSize dosyasındaki tetikleyici tanımına ekleyerek alınan ileti sayısını denetleyebilirsiniz. Bu dosyayı bulmak için bkz . Standart mantıksal uygulamalar için konak ve uygulama ayarlarını düzenleme.

    "extensions": {
       "serviceBus": {
          "maxMessageBatchSize": 25
       }
    }
    
  • Service Bus tetikleyicisinde eşzamanlılığı tasarımcı aracılığıyla veya kodda etkinleştirebilirsiniz, örneğin:

    "runtimeConfiguration": {
       "concurrency": {
            "runs": 50
        }
    }
    
    • Bir toplu işlem kullanarak eşzamanlılık ayarlarsanız, eşzamanlı çalıştırma sayısını toplam toplu işlem boyutundan daha fazla olacak şekilde tutun. Bu şekilde, okunmuş mesajlar bekleme durumuna girmez ve okunduğunda her zaman işlem görür. Bazı durumlarda tetikleyici, toplu iş yükü boyutunu iki katına çıkarabilir.

    • Bir kuyrukta (V1) iletiler kullanılabilir olduğunda adlı tetikleyicide eşzamanlılığı etkinleştirirseniz ve kuyruğa 100 veya daha fazla ileti gönderirseniz, tetikleyici tüm iletileri teslim edilemeyen ileti kuyruğuna yönlendirir.

    • Eşzamanlılığı etkinleştirirseniz, toplu iş çözme veya Bölme davranışı sınırı 100 öğeye indirilir. Bu davranış yalnızca Service Bus tetikleyicisi için değil tüm tetikleyiciler için geçerlidir. Eşzamanlılığı etkinleştirdiğiniz tetikleyicilerde belirtilen toplu iş boyutunun bu sınırdan küçük olduğundan emin olun.

    • Eşzamanlılığı etkinleştirirseniz, toplu okumalar arasında varsayılan olarak 30 saniyelik bir gecikme vardır. Bu gecikme, aşağıdaki hedeflere ulaşmak için tetikleyiciyi yavaşlatır:

      • Eşzamanlılığın uygulanacağı çalıştırma sayısını denetlemek için gönderilen depolama çağrılarının sayısını azaltın.

      • İleti bulunamadığında 30 saniyelik bir yoklama içeren Service Bus yönetilen bağlayıcı tetikleyicisinin davranışını taklit edin.

        Bu gecikmeyi değiştirebilmenize rağmen, varsayılan değerdeki değişiklikleri dikkatle test edin:

        "workflow": {
            "settings": {
               "Runtime.ServiceProviders.FunctionTriggers.DynamicListenerEnableDisableInterval": "00:00:30"
            }
        }
        
    • Tetikleyicinin eşzamanlılık ayarlarını aşabileceği bazı senaryolar vardır. Azure Logic Apps, bu çalıştırmaların başarısız olması yerine, başlatılabilene kadar bunları bekleme durumunda kuyruğa alır. BumaximumWaitingRuns ayar, bekleme durumunda izin verilen çalıştırma sayısını denetler:

      "runtimeConfiguration": {
         "concurrency": {
            "runs": 100,
            "maximumWaitingRuns": 50
         }
      }
      

      Service Bus tetikleyicisiyle, çalıştırmaların ileti kilidi zaman aşımından daha uzun süre beklememesi için bu değişiklikleri dikkatle test ettiğinizden emin olun. Varsayılan değerler hakkında daha fazla bilgi için burada Eşzamanlılık ve toplu işlemleri kaldırma sınırları başlığına bakın.

1. Adım: Service Bus ad alanına erişimi denetleme

Mantıksal uygulama kaynağınızın Service Bus ad alanınıza erişme izinlerine sahip olduğunu onaylamak için şu adımları izleyin:

  1. Azure portalında Service Bus ad alanınızı açın.

  2. Ad alanı kenar çubuğunda, Ayarlar'ın altında Paylaşılan erişim ilkeleri'ni seçin. Talepler altında, bu ad alanı için Yönetme izinlerine sahip olup olmadığınızı denetleyin.

    Azure portalı, Service Bus ad alanı ve Paylaşılan erişim ilkeleri sayfasının açık olduğunu ve Yönet ayarının vurgulandığını gösteren ekran görüntüsü.

2. Adım: Bağlantı kimlik doğrulaması gereksinimlerini alma

Service Bus tetikleyicisini veya eylemini ilk kez eklediğinizde, bağlantı kimlik doğrulaması türü de dahil olmak üzere bağlantı bilgileri istenir. Mantıksal uygulama iş akışı türünüz, Service Bus bağlayıcısı sürümünüz ve seçili kimlik doğrulama türüne bağlı olarak, aşağıdaki bölümlerde açıklanan öğelere ihtiyacınız vardır.

Yönetilen bağlayıcı kimlik doğrulaması (Tüketim ve Standart iş akışları)

Doğrulama türü Gerekli bilgiler
Erişim Anahtarı Service Bus ad alanınızın bağlantı dizesi. Daha fazla bilgi için bkz. Service Bus ad alanı için bağlantı dizesi alma.
Microsoft Entra tümleşik Service Bus ad alanınızın uç nokta URL'si. Daha fazla bilgi için bkz. Service Bus ad alanı için uç nokta URL'sini alma.
Logic Apps Yönetilen Kimliği Service Bus ad alanınızın uç nokta URL'si. Daha fazla bilgi için bkz. Service Bus ad alanı için uç nokta URL'sini alma.

Yerleşik bağlayıcı kimlik doğrulaması (yalnızca standart iş akışları)

Doğrulama türü Gerekli bilgiler
Bağlantı Dizesi Service Bus ad alanınızın bağlantı dizesi. Daha fazla bilgi için bkz. Service Bus ad alanı için bağlantı dizesi alma.
Active Directory OAuth Service Bus ad alanınızın tam adı, örneğin, <your-Service-Bus-namespace.servicebus.windows.net.> Daha fazla bilgi için bkz. Service Bus ad alanı için tam nitelikli adı nasıl alacağınızı öğrenmek için bkz.. Diğer özellik değerleri için bkz OAuth ile Microsoft Entra ID.
Yönetilen kimlik Service Bus ad alanınızın tam adı, örneğin, <your-Service-Bus-namespace.servicebus.windows.net.> Daha fazla bilgi için bkz. Service Bus ad alanı için tam nitelikli adını elde etme.

Service Bus ad alanı için bağlantı dizesi alma

Service Bus tetikleyicisi veya eylemi eklerken bağlantı oluşturmak için Service Bus ad alanınızın bağlantı dizesi gerekir. bağlantı dizesi, sb:// ön eki ile başlar.

  1. Azure portalında Service Bus ad alanınızı açın.

  2. Ad alanı kenar çubuğunda, Ayarlar'ın altında Paylaşılan erişim ilkeleri'ni seçin.

  3. Paylaşılan erişim ilkeleri bölmesinde RootManageSharedAccessKey'i seçin.

  4. Birincil veya ikincil bağlantı dizesi yanındaki kopyala düğmesini seçin.

    Service Bus ad alanı, Paylaşılan erişim ilkeleri sayfası açık, RootManageSharedAccessKey ilkesinin seçili olduğunu ve SAS İlkesi bölmesinin açıldığını gösteren ekran görüntüsü. Birincil bağlantı dizesi için kopyala düğmesi seçilidir.

    Not

    Dizenin ad alanı için olduğunu ve belirli bir mesajlaşma varlığı için olmadığını onaylamak için, bağlantı dizesinde EntityPath parametresini arayın. Bu parametreyi bulursanız, bağlantı dizesi belirli bir varlığa yöneliktir ve iş akışınızla kullanılacak doğru dize değildir.

  5. Bağlantı dizesini daha sonra kullanmak üzere kaydedin.

Service Bus ad alanı için uç nokta URL'sini alma

Service Bus yönetilen bağlayıcısını kullanıyorsanız, Microsoft Entra tümleşik veya Logic Apps Yönetilen Kimliği için kimlik doğrulama türünü seçerseniz bu uç nokta URL'sine ihtiyacınız vardır. Uç nokta URL'si sb:// ön eki ile başlar.

  1. Azure portalında Service Bus ad alanınızı açın.

  2. Ad alanı kenar çubuğunda Ayarlar'ı genişletin ve özellikler'i seçin.

  3. Temel Bileşenler altında, Kimlik yanında uç nokta URL'sini kopyalayıp daha sonra kullanmak üzere kaydedin.

Service Bus ad alanı için tam nitelikli ismi al

  1. Azure portalında Service Bus ad alanınızı açın.

  2. Ad alanı kenar çubuğunda Genel Bakış'ı seçin.

  3. Genel Bakış sayfasında Temel Parçalar'ı genişletin ve Konak adı özelliğini bulun.

  4. < your-Service-Bus-namespace>.servicebus.windows.net şeklinde görünen tam adı kopyalayıp daha sonra kullanmak üzere kaydedin.

3. Adım: 1. Seçenek - Service Bus tetikleyicisi ekleme

Aşağıdaki adımlar Azure portalını kullanır, ancak ilgili Azure Logic Apps uzantısını kullanarak Visual Studio Code'u kullanarak mantıksal uygulama iş akışları oluşturabilirsiniz:

  1. Azure portal bölümünde Tüketim mantıksal uygulama kaynağınızı açın. Boş iş akışını tasarımcıda açın.

  2. Tasarımcıda, senaryonuz için istediğiniz Azure Service Bus tetikleyicisini eklemek için genel adımları izleyin.

    Bu örnekte , kuyrukta bir ileti alındığında (otomatik tamamlama) adlı tetikleyici kullanılır.

  3. Aşağıdaki bağlantı bilgilerini sağlayın:

    Parametre Zorunlu Açıklama
    Bağlantı Adı Yes Bağlantınız için bir ad.
    Kimlik Doğrulaması Türü Yes Service Bus ad alanınıza erişmek için kullanılacak kimlik doğrulama türü. Daha fazla bilgi için bkz. Yönetilen bağlayıcı kimlik doğrulaması.
    Bağlantı Dizesi Yes Daha önce kopyalayıp kaydettiğiniz bağlantı dizesi.

    Örneğin, aşağıdaki bağlantı kimlik doğrulaması için bir erişim anahtarı kullanır ve Service Bus ad alanı için bağlantı dizesi sağlar:

    Tüketim iş akışında erişim anahtarı kimlik doğrulaması kullanan yeni bir Service Bus tetikleyicisi için bağlantı oluştur bölmesini gösteren ekran görüntüsü.

  4. bitirdiğinizde Yeni oluştur'u seçin.

  5. Tetikleyici bilgileri bölmesinde gerekli bilgileri sağlayın, örneğin:

    Parametre Zorunlu Açıklama
    Kuyruk adı Yes Erişmek için seçilen kuyruk
    Kuyruk türü Hayır Seçili kuyruğun türü
    Öğeleri ne sıklıkta denetlemek istiyorsunuz? Yes Öğe kuyruğunun denetlenecek yoklama aralığı ve sıklığı

    Tüketim iş akışında örnek bilgiler içeren yeni Service Bus yönetilen tetikleyicisini gösteren ekran görüntüsü.

  6. İş akışınızın ihtiyaç duyduğu tüm eylemleri ekleyin.

    Örneğin, yeni bir ileti geldiğinde e-posta gönderen bir eylem ekleyebilirsiniz. Tetikleyiciniz kuyruğunuzu denetlediğinde ve yeni bir ileti bulduğunda, iş akışınız yeni ileti için seçtiğiniz eylemleri çalıştırır.

  7. bitirdiğinizde iş akışınızı kaydedin. Tasarımcı araç çubuğunda Kaydet'i seçin.

3. Adım: Seçenek 2 - Service Bus eylemi ekleme

Aşağıdaki adımlar Azure portalını kullanır, ancak uygun Azure Logic Apps uzantısını kullanarak visual studio code kullanarak mantıksal uygulama iş akışları oluşturabilirsiniz:

  1. Azure portal bölümünde Tüketim mantıksal uygulama kaynağınızı açın. İş akışınızı tasarımcıda açın.

  2. Tasarımcıda, senaryonuz için istediğiniz Azure Service Bus eylemini eklemek için genel adımları izleyin.

    Bu örnekte İleti gönder adlı eylem kullanılır.

  3. Bağlantı bilgileri bölmesinde aşağıdaki bilgileri sağlayın:

    Parametre Zorunlu Açıklama
    Bağlantı Adı Yes Bağlantınız için bir ad.
    Kimlik Doğrulaması Türü Yes Service Bus ad alanınıza erişmek için kullanılacak kimlik doğrulama türü. Daha fazla bilgi için bkz. Yönetilen bağlayıcı kimlik doğrulaması.
    Bağlantı Dizesi Yes Daha önce kopyalayıp kaydettiğiniz bağlantı dizesi.

    Örneğin, bu bağlantı erişim anahtarı kimlik doğrulamasını kullanır ve Service Bus ad alanı için bağlantı dizesi sağlar:

    Tüketim iş akışında erişim anahtarı kimlik doğrulaması kullanan yeni bir Service Bus eylemi için bağlantı oluştur bölmesini gösteren ekran görüntüsü.

  4. bitirdiğinizde Yeni oluştur'u seçin.

  5. Eylem bilgileri bölmesinde gerekli bilgileri sağlayın, örneğin:

    Parametre Zorunlu Açıklama
    Kuyruk/Konu adı Yes İletiyi göndermek için seçilen kuyruk veya konu hedefi.
    Oturum Kimliği Hayır Eğer mesajı oturuma duyarlı bir kuyruğa veya konuya gönderiyorsanız, oturum kimliği.
    Sistem özellikleri Hayır - Hiçbiri
    - Çalıştırma Ayrıntıları: İletiye özelleştirilmiş özellikler olarak çalıştırmayla ilgili meta veri özellik bilgilerini ekleyin.

    Tüketim iş akışında örnek bilgiler içeren İleti Gönder Service Bus eylemini gösteren ekran görüntüsü.

  6. Eyleme diğer kullanılabilir özellikleri eklemek için Gelişmiş parametreler listesini açın ve istediğiniz özellikleri seçin.

  7. İş akışınızın ihtiyaç duyduğu diğer eylemleri ekleyin.

    Örneğin, iletinizin gönderildiğini onaylamak için e-posta gönderen bir eylem ekleyebilirsiniz.

  8. bitirdiğinizde iş akışınızı kaydedin. Tasarımcı araç çubuğunda Kaydet'i seçin.

Service Bus yerleşik bağlayıcı uygulaması ayarları

Standart mantıksal uygulama kaynağında, Service Bus yerleşik bağlayıcısı çeşitli eşikleri denetleyan uygulama ayarlarını içerir. Örneğin, bu ayarlar ileti göndermek için zaman aşımlarını ve ileti havuzundaki işlemci çekirdeği başına ileti gönderenlerin sayısını denetler. Daha fazla bilgi için bkz Uygulama Ayarları için Başvuru - local.settings.json.

Service Bus yerleşik tetikleyicilerini kullanarak ölü harf sıralarından iletileri okuyun

Standart iş akışlarında, bir kuyrukta veya konu aboneliğinde bulunan ölü harf kuyruğundaki bir iletiyi okumak için, belirtilen tetikleyicileri kullanarak şu adımları izleyin:

  1. Senaryonuza bağlı olarak boş iş akışınızda, kuyrukta iletiler kullanılabilir olduğunda veya Konu aboneliğinde bir ileti kullanılabilir olduğunda (peek-lock) adlı Service Bus yerleşik bağlayıcı tetikleyicisini ekleyin.

  2. Tetikleyicide, kuyruk veya konu aboneliğinizin diğer kuyruklar gibi erişebileceğiniz varsayılan ölü mektup kuyruğunu belirtmek için aşağıdaki parametre değerlerini ayarlayın.

    • Bir kuyruk tetikleyicisinde iletiler kullanılabilir olduğunda : Kuyruk adı parametresini olarak queuename/$deadletterqueueayarlayın.

    • Konu aboneliği (peek-lock) tetikleyicisinde bir ileti olduğunda : Konu adı parametresini olarak topicname/Subscriptions/subscriptionname/$deadletterqueueayarlayın.

    Daha fazla bilgi için bkz. Service Bus teslim edilemeyen ileti kuyruklarına genel bakış.

Sorunları giderme

İş akışınıza yönelik güncelleştirmelerdeki gecikmeler geçerlilik kazanıyor

Service Bus tetikleyicinin yoklama aralığı 10 saniye gibi küçükse, iş akışınızda yapılan güncelleştirmeler 10 dakikaya kadar geçerli olmayabilir. Bu sorunu geçici olarak çözmek için mantıksal uygulama kaynağını devre dışı bırakın, değişiklikleri yapın ve mantıksal uygulama kaynağını yeniden etkinleştirin.

Mevcut oturum yok veya başka bir alıcı cihaz kilitledi

Bazen, bir iletiyi tamamlama veya oturumu yenileme gibi işlemler yönetilen bağlayıcıda aşağıdaki hatayı oluşturur:

{
  "status": 400,
  "error": {
    "message": "No session available to complete the message with the lock token 'ce440818-f26f-4a04-aca8-555555555555'."
  }
}

Bazen, yönetilen bağlayıcıda oturum tabanlı tetikleyici aşağıdaki hatayla başarısız olabilir:

{
  "status": 400,
  "error": {
    "message": "Communication with the Service Bus namespace 'xxxx' and 'yyyy' entity failed. The requested session 'zzzz' cannot be accepted. It may be locked by another receiver."
  }
}

Bazen, bir iletiyi tamamlama veya oturumu yenileme gibi işlemler yerleşik bağlayıcıda aşağıdaki hatayı oluşturur:

{
  "code": "ServiceProviderActionFailed",
  "message": "The service provider action failed with error code 'ServiceOperationFailed' and error message 'The Service Bus session was not found to perform operation 'getMessagesFromQueueSession' on session id '11115555'.'."
}

Service Bus bağlayıcısı, oturumlarla ilişkili tüm işlemleri desteklemek için bellek içi önbellek kullanır. Service Bus ileti alıcısı, iletileri alan rol örneğinin (sanal makine) belleğinde önbelleğe alınır. Tüm istekleri işlemek için, bağlantının tüm çağrıları aynı rol örneğine yönlendirilir. Bu davranış gereklidir çünkü bir oturumdaki tüm Service Bus işlemleri belirli bir oturum için iletileri alan aynı alıcıyı gerektirir.

Altyapı güncelleştirmesi, bağlayıcı dağıtımı gibi nedenlerden dolayı, isteklerin aynı rol örneğine yönlendirilmeme olasılığı vardır. Bu olay gerçekleşirse istekler aşağıdaki nedenlerden biri nedeniyle başarısız olur:

  • Oturumdaki işlemleri gerçekleştiren alıcı, isteğe hizmet eden rol örneğinde kullanılamaz.

  • Yeni rol örneği, eski rol örneğinde zaman aşımına uğramış veya kapatılmamış olan oturumu almaya çalışır.

Bu davranış hem yönetilen bağlayıcıda hem de yerleşik bağlayıcıda oluşabilir. Hata oluştuğunda, ileti servis veri yolu içinde korunur. Sonraki tetikleyici veya iş akışı çalıştırması iletiyi yeniden işlemeye çalışır. Bu hata yalnızca ara sıra gerçekleştiği sürece hata beklenir.