Aracılığıyla paylaş


Azure Service Bus ile Azure Logic Apps'de sıralı bir konvoy kullanarak ilgili iletileri sırayla gönderme

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

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

Örneğin, "Oturum 1" adlı bir oturum için 10 iletiniz olduğunu ve "Oturum 2" adlı bir oturum için tümünün aynı Service Bus kuyruğuna gönderilen 5 iletiniz olduğunu varsayalım. Kuyruktan gelen iletileri işleyen bir mantıksal uygulama oluşturabilirsiniz, böylece "Oturum 1" den gelen tüm iletiler tek bir tetikleyici çalıştırması tarafından işlenir ve "Oturum 2" den gelen tüm iletiler bir sonraki tetikleyici çalıştırması tarafından işlenir.

Genel sıralı konvoy düzeni

Bu makalede, service bus oturumları kullanılarak bağıntılı sıralı teslim şablonu kullanılarak bu düzeni uygulayan bir mantıksal uygulamanın nasıl oluşturulacağı gösterilmektedir . Bu şablon, Service Bus bağlayıcısının Service Bus kuyruğundan ileti alan bir kuyrukta bir ileti alındığında (peek-lock) tetikleyicisiyle başlayan bir mantıksal uygulama iş akışını tanımlar. Bu mantıksal uygulamanın gerçekleştirdiği üst düzey adımlar şunlardır:

  • Tetikleyicinin Service Bus kuyruğundan okuduğu bir iletiyi temel alan bir oturum başlatın.

  • Geçerli iş akışı çalıştırması sırasında kuyruktaki aynı oturumdaki tüm iletileri okuyun ve işleyin.

Bu şablonun JSON dosyasını gözden geçirmek için bkz . GitHub: service-bus-sessions.json.

Daha fazla bilgi için bkz . Sıralı konvoy düzeni - Azure Mimarisi Bulut Tasarım Desenleri.

Önkoşullar

Service Bus ad alanına erişimi denetleme

Mantıksal uygulamanızın Service Bus ad alanınıza erişim izinleri olup olmadığından emin değilseniz bu izinleri onaylayın.

  1. Azure Portal’ında oturum açın. Service Bus ad alanınızı bulun ve seçin.

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

    Service Bus ad alanı izinlerini yönetme

  3. Şimdi Service Bus ad alanınızın bağlantı dizesi alın. Bu dizeyi daha sonra mantıksal uygulamanızdan ad alanına bağlantı oluşturduğunuzda kullanabilirsiniz.

    1. Paylaşılan erişim ilkeleri bölmesindeki İlke'nin altında RootManageSharedAccessKey'i seçin.

    2. Birincil bağlantı dizesi yanındaki kopyala düğmesini seçin. bağlantı dizesi daha sonra kullanmak üzere kaydedin.

      Service Bus ad alanı bağlantı dizesi kopyalama

    İpucu

    bağlantı dizesi Service Bus ad alanınızla mı yoksa kuyruk gibi bir mesajlaşma varlığıyla mı ilişkili olduğunu onaylamak için bağlantı dizesi parametresini EntityPath arayın. Bu parametreyi bulursanız, bağlantı dizesi belirli bir varlığa yöneliktir ve mantıksal uygulamanızla kullanılacak doğru dize değildir.

Mantıksal Uygulama oluşturma

Bu bölümde, bu iş akışı düzenini uygulamaya yönelik tetikleyiciyi ve eylemleri içeren service bus oturumlarını kullanarak Bağıntılı sıralı teslim şablonunu kullanarak bir mantıksal uygulama oluşturacaksınız. Ayrıca Service Bus ad alanınıza bir bağlantı oluşturur ve kullanmak istediğiniz Service Bus kuyruğunun adını belirtirsiniz.

  1. Azure portalında boş bir mantıksal uygulama oluşturun. Azure giriş sayfasında Kaynak>oluştur Tümleştirme>Mantıksal Uygulaması'nı seçin.

  2. Şablon galerisi görüntülendikten sonra videoyu ve yaygın tetikleyiciler bölümlerini kaydırın. Şablonlar bölümünden Service Bus oturumlarını kullanarak sıralı teslimle bağıntılı şablonu seçin.

  3. Onay kutusu görüntülendiğinde Bu şablonu kullan'ı seçin.

  4. Logic App Designer'ın Service Bus şeklinde Devam'ı seçin ve ardından şekilde görünen artı işaretini (+) seçin.

    Azure Service Bus'a bağlanmak için

  5. Şimdi iki seçenekten birini belirleyerek bir Service Bus bağlantısı oluşturun:

    • Daha önce Service Bus ad alanınızdan kopyaladığınız bağlantı dizesi kullanmak için şu adımları izleyin:

      1. Bağlantı bilgilerini el ile gir'i seçin.

      2. Bağlantı Adı için bağlantınız için bir ad belirtin. Bağlantı Dizesi için ad alanınızı bağlantı dizesi yapıştırın ve Oluştur'u seçin, örneğin:

        Bağlantı adını ve Service Bus bağlantı dizesi girin

        İpucu

        Bu bağlantı dizesi yoksa Service Bus ad alanı bağlantı dizesi bulmayı ve kopyalamayı öğrenin.

    • Geçerli Azure aboneliğinizden bir Service Bus ad alanı seçmek için şu adımları izleyin:

      1. Bağlantı Adı için bağlantınız için bir ad belirtin. Service Bus Ad Alanı için Service Bus ad alanınızı seçin, örneğin:

        Bağlantı adını girin ve Service Bus ad alanını seçin

      2. Sonraki bölme görüntülendiğinde Service Bus ilkenizi seçin ve Oluştur'u seçin.

        Service Bus ilkesi'ni ve ardından

  6. İşiniz bittiğinde Devam'ı seçin.

    Mantıksal Uygulama Tasarımcısı artık, deseni izleyen hata işleme uygulayan iki kapsam da dahil olmak üzere tetikleyici ve eylemlerle önceden doldurulmuş bir iş akışı içeren service bus oturumları kullanılarak bağıntılı Try-Catch sıralı teslim şablonunu gösterir.

Artık şablondaki tetikleyici ve eylemler hakkında daha fazla bilgi edinebilir veya mantıksal uygulama şablonunun değerlerini sağlamak için ileri atlayabilirsiniz.

Şablon özeti

Ayrıntılar daraltıldığında service bus oturumları kullanılarak bağıntılı sıralı teslim şablonunda en üst düzey iş akışı aşağıdadır:

Şablonun üst düzey iş akışı

Veri Akışı Adı Açıklama
When a message is received in a queue (peek-lock) Belirtilen yinelenme temelinde, bu Service Bus tetikleyicisi belirtilen Service Bus kuyruğunda tüm iletileri denetler. Kuyrukta bir ileti varsa, tetikleyici tetikler ve bir iş akışı örneği oluşturur ve çalıştırır.

Peek-lock terimi, tetikleyicinin kuyruktan bir ileti almak için istek gönderdiği anlamına gelir. bir ileti varsa, tetikleyici iletiyi alır ve kilitler, böylece kilit süresi dolana kadar bu iletide başka bir işlem gerçekleşmez. Ayrıntılar için oturumu başlatın.

Init isDone Bu Değişken başlat eylemi , aşağıdaki koşulların ne zaman doğru olduğunu belirten ve olarak ayarlanmış false bir Boole değişkeni oluşturur:

- Oturumda artık okunabilecek ileti yok.
- Geçerli iş akışı örneğinin bitebilmesi için oturum kilidinin artık yenilenmesi gerekmez.

Ayrıntılar için bkz . Oturumu başlatma.

Try Bu Kapsam eylemi , bir iletiyi işlemek için çalışan eylemleri içerir. Kapsamda bir sorun oluşursa Try , sonraki Catch Kapsam eylemi bu sorunu işler. Daha fazla bilgi için bkz . "Deneyin" kapsamı.
Catch Bu Kapsam eylemi , önceki kapsamda bir sorun oluşursa çalıştırılacak Try eylemleri içerir. Daha fazla bilgi için bkz . "Catch" kapsamı.

"Dene" kapsamı

Ayrıntılar daraltıldığında kapsam eylemindeki Try en üst düzey akış aşağıdadır:

Veri Akışı Adı Açıklama
Send initial message to topic Bu eylemi, kuyruktaki oturumdan gelen ilk iletiyi işlemek istediğiniz eylemle değiştirebilirsiniz. Oturum kimliği oturumu belirtir.

Bu şablon için, Service Bus eylemi ilk iletiyi bir Service Bus konusuna gönderir. Ayrıntılar için bkz . İlk iletiyi işleme.

(paralel dal) Bu paralel dal eylemi iki yol oluşturur:

- Dal 1: İletiyi işlemeye devam edin. Daha fazla bilgi için bkz . Dal #1: Kuyruktaki ilk iletiyi tamamlama.

- Dal 2: Bir sorun olursa iletiyi bırakın ve başka bir tetikleyici çalıştırması tarafından teslim alma için bırakın. Daha fazla bilgi için bkz . Dal #2: Kuyruktan ilk iletiyi bırakma.

Her iki yol da sonraki satırda açıklanan Kuyruktaki Oturumu kapat ve başarılı eyleminde birleşir.

Close a session in a queue and succeed Bu Service Bus eylemi, daha önce açıklanan dallara katılır ve aşağıdaki olaylardan biri gerçekleştikten sonra kuyruktaki oturumu kapatır:

- İş akışı kuyruktaki kullanılabilir iletileri işlemeyi tamamlar.
- bir sorun oluştuğundan iş akışı ilk iletiyi bırakır.

Ayrıntılar için bkz . Kuyruktaki oturumu kapatma ve başarılı olun.

Dal 1: Kuyruktaki ilk iletiyi tamamlayın

Veri Akışı Adı Açıklama
Complete initial message in queue Bu Service Bus eylemi, başarıyla alınan bir iletiyi tamamlandı olarak işaretler ve yeniden işlemeyi önlemek için iletiyi kuyruktan kaldırır. Ayrıntılar için bkz . İlk iletiyi işleme.
While there are more messages for the session in the queue Bu Until döngüsü , iletiler mevcutken veya bir saat geçene kadar iletileri almaya devam eder. Bu döngüdeki eylemler hakkında daha fazla bilgi için bkz . Kuyrukta oturum için daha fazla ileti varken.
Set isDone = true Başka ileti olmadığında, bu Değişken ayarla eylemi olarak trueayarlanırisDone.
Renew session lock until cancelled Bu Until döngüsü , iletiler mevcutken veya bir saat geçene kadar oturum kilidinin bu mantıksal uygulama tarafından tutulmasını sağlar. Bu döngüdeki eylemler hakkında daha fazla bilgi için bkz . İptal edilene kadar oturum kilidini yenileme.

Dal 2: Kuyruktan ilk ileti bırakma

İlk iletiyi işleyen eylem başarısız olursa, Kuyruktan ilk iletiyi bırakma service bus eylemi, başka bir iş akışı örneği çalıştırmasının alma ve işlemeye yönelik iletisini serbest bırakır. Ayrıntılar için bkz . İlk iletiyi işleme.

"Catch" kapsamı

Kapsamdaki Try eylemler başarısız olursa mantıksal uygulamanın oturumu kapatması gerekir. Kapsam Catch eylemi durum, Failed, Skippedveya TimedOutile sonuçlandığındaTry, kapsam eylemi çalıştırılır. Kapsam, sorunun oluştuğu oturum kimliğini içeren bir hata iletisi döndürür ve mantıksal uygulamayı sonlandırır.

Ayrıntılar daraltıldığında kapsam eylemindeki Catch en üst düzey akış aşağıdadır:

Veri Akışı Adı Açıklama
Close a session in a queue and fail Bu Service Bus eylemi, oturum kilidinin açık kalmaması için kuyruktaki oturumu kapatır. Ayrıntılar için bkz . Kuyruktaki oturumu kapatma ve başarısız olur.
Find failure msg from 'Try' block Bu Diziyi Filtrele eylemi , belirtilen ölçütlere göre kapsam içindeki Try tüm eylemlerden gelen giriş ve çıkışlardan bir dizi oluşturur. Bu durumda, bu eylem durumla sonuçlanan Failed eylemlerden çıkışları döndürür. Ayrıntılar için bkz . 'Dene' bloğundan hata msg'sini bulma.
Select error details Bu Seç eylemi , belirtilen ölçütlere göre JSON nesneleri içeren bir dizi oluşturur. Bu JSON nesneleri, önceki eylem Find failure msg from 'Try' blockolan tarafından oluşturulan dizideki değerlerden oluşturulur. Bu durumda, bu eylem önceki eylemden döndürülen hata ayrıntılarından oluşturulan bir JSON nesnesi içeren bir dizi döndürür. Ayrıntılar için bkz . Hata ayrıntılarını seçme.
Terminate Bu Sonlandır eylemi iş akışı çalıştırmasını durdurur, devam eden eylemleri iptal eder, kalan eylemleri atlar ve belirtilen durumu, oturum kimliğini ve eylemden gelen Select error details hata sonucunu döndürür. Ayrıntılar için bkz . Mantıksal uygulamayı sonlandırma.

Şablonu tamamlama

Service Bus oturumlarını kullanarak bağıntılı sıralı teslim şablonundaki tetikleyici ve eylemlerin değerlerini sağlamak için aşağıdaki adımları izleyin. Mantıksal uygulamanızı kaydedebilmeniz için önce yıldız işareti ()* ile işaretlenmiş tüm gerekli değerleri sağlamanız gerekir.

Oturumu başlatma

  • Kuyruğa ileti alındığında (peek-lock) tetikleyicisi için, şablonun Oturum kimliği özelliğini kullanarak oturum başlatabilmesi için bu bilgileri sağlayın, örneğin:

    Not

    Başlangıçta, mantıksal uygulamanın beklediğinizden daha sık çalışmaması ve beklenmeyen faturalama ücretleriyle sonuçlanması için yoklama aralığı üç dakikaya ayarlanır. İdeal olarak, mantıksal uygulamanın bir ileti geldiğinde hemen tetiklenebilmesi için aralığı ve sıklığı 30 saniye olarak ayarlayın.

    Özellik Bu senaryo için gerekli Value Açıklama
    Kuyruk adı Yes <kuyruk adı> Daha önce oluşturduğunuz Service Bus kuyruğunun adı. Bu örnekte "Fabrikam-Service-Bus-Queue" kullanılır.
    Kuyruk türü Yes Ana Birincil Service Bus kuyruğunuz
    Oturum kimliği Yes Sonraki kullanılabilir Bu seçenek, Service Bus kuyruğundaki iletideki oturum kimliğine göre her tetikleyici çalıştırması için bir oturum alır. Başka hiçbir mantıksal uygulamanın veya diğer istemcinin bu oturumla ilgili iletileri işleyebilmesi için oturum da kilitlenir. İş akışının sonraki eylemleri, bu makalenin devamında açıklandığı gibi bu oturumla ilişkili tüm iletileri işler.

    Diğer Oturum kimliği seçenekleri hakkında daha fazla bilgi aşağıdadır:

    - Hiçbiri: Hiçbir oturumla sonuçlanan ve sıralı konvoy desenini uygulamak için kullanılamayan varsayılan seçenektir.

    - Özel değer girin: Kullanmak istediğiniz oturum kimliğini biliyorsanız ve her zaman bu oturum kimliği için tetikleyiciyi çalıştırmak istediğinizde bu seçeneği kullanın.

    Not: Service Bus bağlayıcısı, Azure Service Bus'tan bağlayıcı önbelleğine aynı anda sınırlı sayıda benzersiz oturum kaydedebilir. Oturum sayısı bu sınırı aşarsa, eski oturumlar önbellekten kaldırılır. Daha fazla bilgi için bkz . Azure Logic Apps ve Azure Service Bus ile bulutta ileti alışverişi yapma.

    Aralık Yes <aralık sayısı> İletiyi denetlemeden önce yinelenmeler arasındaki zaman birimi sayısı.
    Sıklık Yes İkinci, Dakika, Saat, Gün, Hafta veya Ay İleti denetlenirken yinelenmenin kullanılacağı zaman birimi.

    İpucu: Saat dilimi veya Başlangıç saati eklemek için Yeni parametre ekle listesinden bu özellikleri seçin.

    Daha fazla tetikleyici bilgisi için bkz . Service Bus - Kuyrukta bir ileti alındığında (peek-lock). Tetikleyici bir ServiceBusMessage çıkışı oluşturur.

Oturum başlatıldıktan sonra, iş akışı başlangıçta olarak ayarlanan ve aşağıdaki koşulların ne zaman doğru olduğunu belirten bir Boole değişkeni oluşturmak için false Değişken başlatma eylemini kullanır:

  • Oturumda okunabilecek başka ileti yok.

  • Geçerli iş akışı örneğinin bitebilmesi için oturum kilidinin artık yenilenmesi gerekmez.

Ardından, Deneyin bloğunda, iş akışı okunan ilk iletide eylemler gerçekleştirir.

İlk iletiyi işleme

İlk eylem, kuyruktaki oturumdan ilk iletiyi işlemek istediğiniz başka bir eylemle değiştirebileceğiniz Bir Service Bus eylemidir( Konuya ilk ileti gönder). Oturum kimliği, iletinin kaynaklandığı oturumu belirtir.

Yer tutucu Service Bus eylemi, oturum kimliği özelliği tarafından belirtilen bir Service Bus konusuna ilk iletiyi gönderir. Bu şekilde, belirli bir oturumla ilişkili tüm iletiler aynı konuya gider. Bu şablondaki sonraki eylemlerin tüm Oturum Kimliği özellikleri aynı oturum kimliği değerini kullanır.

  1. Service Bus eyleminde, Kuyruktaki ilk iletiyi tamamlayın, Service Bus kuyruğunuzun adını sağlayın ve diğer tüm varsayılan özellik değerlerini eylemde tutun.

  2. Service Bus eyleminde Kuyruktan gelen ilk iletiyi bırakın, Service Bus kuyruğunuzun adını sağlayın ve diğer tüm varsayılan özellik değerlerini eylemde tutun.

Ardından, Kuyruktaki ilk iletiyi tamamla eylemini izleyen eylemler için gerekli bilgileri sağlayacaksınız. Kuyruk döngüsünde oturum için daha fazla ileti varken içindeki eylemlerle başlayacaksınız.

Kuyrukta oturum için daha fazla ileti olsa da

Bu Until döngüsü , kuyrukta iletiler varken veya bir saat geçene kadar bu eylemleri çalıştırır. Döngünün zaman sınırını değiştirmek için döngünün Zaman Aşımı özellik değerini düzenleyin.

  • İletiler mevcutken kuyruktan ek iletiler alın.

  • Kalan iletilerin sayısını denetleyin. İletiler hala varsa, iletileri işlemeye devam edin. Başka ileti yoksa, iş akışı değişkenini isDone olarak trueayarlar ve döngüden çıkar.

Until döngüsü - Kuyruktayken iletileri işleme

  1. Service Bus eyleminde Oturumdan ek iletiler alın bölümünde Service Bus kuyruğunuzun adını belirtin. Aksi takdirde, diğer tüm varsayılan özellik değerlerini eylemde tutun.

    Not

    Varsayılan olarak, ileti sayısı üst sınırı olarak 175ayarlanır, ancak bu sınır Service Bus'taki ileti boyutu ve ileti boyutu üst sınırı özelliğinden etkilenir. Daha fazla bilgi için bkz . Kuyruk için ileti boyutu.

    Service Bus eylemi -

    Ardından iş akışı şu paralel dallara bölünür:

    • Ek iletiler denetlenirken bir hata veya hata oluşursa değişkenini isDone olarak trueayarlayın.

    • Herhangi bir koşul aldığımızda İletileri işle, kalan ileti sayısının sıfır olup olmadığını denetler. Yanlış ve daha fazla ileti varsa işlemeye devam edin. True ise ve başka ileti yoksa, iş akışı değişkenini isDone olarak trueayarlar.

    Koşul - varsa iletileri işleme

    Yanlışsa bölümünde, Her bir için döngüsü her iletiyi ilk gelen ilk çıkar sırada (FIFO) işler. Döngünün Ayarlar bölümünde Eşzamanlılık Denetimi ayarı olarak 1ayarlanır, bu nedenle aynı anda yalnızca tek bir ileti işlenir.

  2. Service Bus eylemleri için, iletiyi kuyrukta tamamlayın ve İletiyi kuyrukta bırakın, Service Bus kuyruğunuzun adını belirtin.

    Service Bus eylemleri -

    Kuyruktaki oturum için daha fazla ileti olsa da iş akışı değişkenini isDone olarak trueayarlar.

Ardından iptal edilene kadar oturum kilidini yenile döngüsündeki eylemler için gerekli bilgileri sağlayacaksınız.

İptal edilene kadar oturum kilidini yenileme

Bu Until döngüsü , kuyrukta iletiler varken veya bu eylemleri çalıştırarak bir saat geçene kadar oturum kilidinin bu mantıksal uygulama tarafından tutulmasını sağlar. Döngünün zaman sınırını değiştirmek için döngünün Zaman Aşımı özellik değerini düzenleyin.

  • İşlenen kuyruk için 25 saniye veya kilit zaman aşımı süresinden daha kısa bir süre boyunca gecikme. En küçük kilit süresi 30 saniyedir, dolayısıyla varsayılan değer yeterlidir. Ancak, uygun şekilde ayarlayarak döngünün çalışma sayısını iyileştirebilirsiniz.

  • değişkeninin olarak trueayarlanıp ayarlanmadığını isDone denetleyin.

    • olarak ayarlanırsa isDone true, iş akışı iletileri işlemeye devam eder, bu nedenle iş akışı kuyruktaki oturumdaki kilidi yeniler ve döngü koşulunu yeniden denetler.

      Service Bus kuyruğunuzun adını Service Bus eylemi olan Kuyruktaki oturumda kilidi yenile eyleminde sağlamanız gerekir.

    • olarak ayarlanırsa isDone true, iş akışı kuyruktaki oturumdaki kilidi yenilemez ve döngüden çıkar.

    Until döngüsü -

Kuyruktaki oturumda kilidi yenileme

Bu Service Bus eylemi, iş akışı iletileri işlemeye devam ederken kuyruktaki oturum kilidini yeniler.

  • Service Bus eyleminde, kuyruktaki oturumda kilidi yenile eyleminde Service Bus kuyruğunuzun adını belirtin.

    Service Bus eylemi -

Ardından, Service Bus eylemi için gerekli bilgileri sağlayacaksınız. Kuyruktaki oturumu kapatın ve başarılı olun.

Kuyruktaki oturumu kapatma ve başarılı

Bu Service Bus eylemi, iş akışı kuyruktaki tüm kullanılabilir iletileri işlemeyi bitirdikten veya iş akışı ilk iletiyi bıraktıktan sonra kuyruktaki oturumu kapatır.

  • Service Bus eyleminde, Kuyruktaki bir oturumu kapatın ve başarılı olun, Service Bus kuyruğunuzun adını belirtin.

    Service Bus eylemi -

Aşağıdaki bölümlerde, iş akışınızda oluşan hataları ve özel durumları işleyen bölümündeki eylemler Catch açıklanmaktadır.

Kuyruktaki oturumu kapatma ve başarısız

Bu Service Bus eylemi her zaman kapsamdaki ilk eylem Catch olarak çalışır ve kuyruktaki oturumu kapatır.

  • Service Bus eyleminde, Kuyruktaki bir oturumu kapatın ve başarısız olun, Service Bus kuyruğunuzun adını belirtin.

    Service Bus eylemi -

Daha sonra iş akışı, mantıksal uygulamanın gerçekleşen hata veya hata hakkındaki bilgilere erişebilmesi için kapsamdaki Try tüm eylemlerden girişlerin ve çıkışların yer aldığı bir dizi oluşturur.

'Try' bloğundan hata msg'sini bulma

Bu Diziyi Filtrele eylemi, işlevini kullanarakresult() belirtilen ölçütleri temel alarak kapsamın Try içindeki tüm eylemlerden gelen girişleri ve çıkışları içeren bir dizi oluşturur. Bu durumda, bu eylem işlevi ve item() işlevi kullanarakequals() durumu olan Failed eylemlerden çıkışları döndürür.

Filtre dizisi eylemi -

Bu eylemin JSON tanımı aşağıdadır:

"Find_failure_msg_from_'Try'_block": {
   "inputs": {
      "from": "@Result('Try')",
      "where": "@equals(item()['status'], 'Failed')"
   },
   "runAfter": {
      "Close_the_session_in_the_queue_and_fail": [
         "Succeeded"
      ]
   },
   "type": "Query"
},

Ardından iş akışı, eylemden Find failure msg from 'Try' block döndürülen dizideki hata bilgilerini içeren bir JSON nesnesine sahip bir dizi oluşturur.

Hata ayrıntılarını seçme

Bu Seç eylemi , önceki eylem olan öğesinden alınan giriş dizisini temel alan JSON nesnelerini içeren bir dizi Find failure msg from 'Try' blockoluşturur. Özellikle, bu eylem dizideki her nesne için yalnızca belirtilen özelliklere sahip bir dizi döndürür. Bu durumda, dizi eylem adını ve hata sonucu özelliklerini içerir.

Eylem seçin -

Bu eylemin JSON tanımı aşağıdadır:

"Select_error_details": {
   "inputs": {
      "from": "@body('Find_failure_msg_from_''Try''_block')[0]['outputs']",
      "select": {
         "action": "@item()['name']",
         "errorResult": "@item()"
      }
   },
   "runAfter": {
      "Find_failure_msg_from_'Try'_block": [
         "Succeeded"
      ]
   },
   "type": "Select"
},

Ardından iş akışı mantıksal uygulama çalıştırmasını durdurur ve gerçekleşen hata veya hata hakkında daha fazla bilgiyle birlikte çalıştırma durumunu döndürür.

Mantıksal uygulama çalıştırmayı sonlandırma

Bu Sonlandır eylemi mantıksal uygulama çalıştırmasını durdurur ve mantıksal uygulamanın çalıştırmasının durumu olarak oturum kimliği ve eylemin hata sonucu Select error details olarak döndürürFailed.

Mantıksal uygulama çalıştırmasını durdurmak için sonlandırma eylemi

Bu eylemin JSON tanımı aşağıdadır:

"Terminate": {
   "description": "This Failure Termination only runs if the Close Session upon Failure action runs - otherwise the LA will be terminated as Success",
   "inputs": {
      "runError": {
         "code": "",
         "message": "There was an error processing messages for Session ID @{triggerBody()?['SessionId']}. The following error(s) occurred: @{body('Select_error_details')['errorResult']}"
         },
         "runStatus": "Failed"
      },
      "runAfter": {
         "Select_error_details": [
            "Succeeded"
         ]
      },
      "type": "Terminate"
   }
},

Mantıksal uygulamayı kaydetme ve çalıştırma

Şablonu tamamladıktan sonra mantıksal uygulamanızı kaydedebilirsiniz. Tasarımcı araç çubuğunda Kaydet'i seçin.

Mantıksal uygulamanızı test etmek için Service Bus kuyruğunuza ileti gönderin.

Sonraki adımlar