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.
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
Azure aboneliği. Aboneliğiniz yoksa, ücretsiz bir Azure hesabı için kaydolun.
Mantıksal uygulamanızda kullanacağınız bir mesajlaşma varlığı olan Service Bus ad alanı ve Service Bus kuyruğu. Bu öğelerin ve mantıksal uygulamanızın aynı Azure aboneliğini kullanması gerekir. Kuyruğunuzu oluştururken Oturumları etkinleştir'i seçtiğinizden emin olun. Bu öğelere sahip değilseniz Service Bus ad alanınızı ve kuyruğunuzu oluşturmayı öğrenin.
Önemli
Aynı bağlayıcı türüne sahip bir tetikleyiciyi ve eylemi seçip bunları mesajlaşma kuyruğu veya konu aboneliği gibi aynı varlıkla çalışmak için kullanırken dikkatli olun. Bu birleşim sonsuz bir döngü oluşturabilir ve bu da hiç bitmeyecek bir mantıksal uygulamayla sonuçlanır.
Mantıksal uygulama oluşturma hakkında temel bilgiler. Azure Logic Apps'te yeniyseniz, çok kiracılı Azure Logic Apps'te örnek bir Tüketim mantığı uygulaması iş akışı oluşturan hızlı başlangıcı deneyin.
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.
Azure Portal’ında oturum açın. Service Bus ad alanınızı bulun ve seçin.
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.
Ş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.
Paylaşılan erişim ilkeleri bölmesindeki İlke'nin altında RootManageSharedAccessKey'i seçin.
Birincil bağlantı dizesi yanındaki kopyala düğmesini seçin. bağlantı dizesi daha sonra kullanmak üzere kaydedin.
İ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.
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.
Ş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.
Onay kutusu görüntülendiğinde Bu şablonu kullan'ı seçin.
Logic App Designer'ın Service Bus şeklinde Devam'ı seçin ve ardından şekilde görünen artı işaretini (+) seçin.
Ş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:
Bağlantı bilgilerini el ile gir'i seçin.
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:
İ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:
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:
Sonraki bölme görüntülendiğinde Service Bus ilkenizi seçin ve Oluştur'u seçin.
İş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:
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. 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. 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 true ayarlanı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
, Skipped
veya TimedOut
ile 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' block olan 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.
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.
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
olaraktrue
ayarlar ve döngüden çıkar.
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
175
ayarlanı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.Ardından iş akışı şu paralel dallara bölünür:
Ek iletiler denetlenirken bir hata veya hata oluşursa değişkenini
isDone
olaraktrue
ayarlayı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
olaraktrue
ayarlar.
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
1
ayarlanır, bu nedenle aynı anda yalnızca tek bir ileti işlenir.Service Bus eylemleri için, iletiyi kuyrukta tamamlayın ve İletiyi kuyrukta bırakın, Service Bus kuyruğunuzun adını belirtin.
Kuyruktaki oturum için daha fazla ileti olsa da iş akışı değişkenini
isDone
olaraktrue
ayarlar.
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
true
ayarlanı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.
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.
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.
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.
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.
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' block
oluş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.
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
.
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
- Service Bus bağlayıcısının tetikleyicileri ve eylemleri hakkında daha fazla bilgi edinin