Azure Logic Apps kullanarak iş akışlarında eşleme olarak Liquid şablonlarını kullanarak JSON ve XML dönüştürme
Şunlar için geçerlidir: Azure Logic Apps (Tüketim + Standart)
Mantıksal uygulama iş akışlarınızda temel JSON dönüştürmeleri gerçekleştirmek istediğinizde, Oluştur eylemi veya JSON Ayrıştır eylemi gibi yerleşik veri işlemlerini kullanabilirsiniz. Ancak bazı senaryolarda yinelemeler, denetim akışları ve değişkenler gibi öğeleri içeren gelişmiş ve karmaşık dönüştürmeler gerekebilir. JSON'u JSON'a, JSON'u metne, XML'yi JSON'a veya XML'yi metne dönüştürme için Liquid açık kaynak şablon dilini kullanarak gerekli eşlemeyi veya dönüştürmeyi açıklayan bir şablon oluşturabilirsiniz. İş akışınıza Liquid yerleşik eylemi eklediğinizde bu şablonu seçebilirsiniz. Liquid eylemlerini çok kiracılı Tüketim mantıksal uygulaması iş akışlarında ve tek kiracılı Standart mantıksal uygulama iş akışlarında kullanabilirsiniz.
Kullanılabilir Liquid tetikleyicisi olmasa da, kaynak JSON veya XML içeriğini iş akışınıza beslemek için herhangi bir tetikleyiciyi veya eylemi kullanabilirsiniz. Örneğin, yerleşik bağlayıcı tetikleyicisini, Azure Logic Apps için kullanılabilen yönetilen veya Azure tarafından barındırılan bağlayıcı tetikleyicisini, hatta başka bir uygulamayı kullanabilirsiniz.
Bu makalede aşağıdaki görevlerin nasıl tamamlayacağı gösterilmektedir:
- Liquid şablonu oluşturun.
- Şablonu Tüketim mantıksal uygulaması iş akışları için tümleştirme hesabınıza veya herhangi bir alt iş akışında kullanmak üzere Standart mantıksal uygulama kaynağınıza yükleyin.
- İş akışınıza Bir Liquid eylemi ekleyin.
- Kullanmak istediğiniz harita olarak şablonu seçin.
Daha fazla bilgi için aşağıdaki belgeleri gözden geçirin:
- Azure Logic Apps'te veri işlemleri gerçekleştirme
- Liquid açık kaynak şablon dili
- Tüketim ve Standart mantıksal uygulamalar karşılaştırması
- Tümleştirme hesabı yerleşik bağlayıcıları
- Azure Logic Apps için yerleşik bağlayıcılara genel bakış
- Azure Logic Apps'te Yönetilen veya Azure tarafından barındırılan bağlayıcılara genel bakış ve Azure Logic Apps'te Yönetilen veya Azure tarafından barındırılan bağlayıcılar
Önkoşullar
Bir Azure hesabı ve aboneliği Aboneliğiniz yoksa, ücretsiz bir Azure hesabı için kaydolun.
Mantıksal uygulama kaynağınız ve iş akışınız. Sıvı işlemlerinde kullanılabilir tetikleyici yoktur, bu nedenle iş akışınızın en az tetikleyici içermesi gerekir. Daha fazla bilgi için aşağıdaki belgeleri inceleyin:
Tüketim veya Standart mantıksal uygulama iş akışı üzerinde çalışıp çalışmadığınıza bağlı olarak bir tümleştirme hesabı kaynağı gerekir. Genellikle, kurumsal tümleştirme ve B2B iş akışlarında kullanmak üzere yapıtları tanımlamak ve depolamak istediğinizde bu kaynağa ihtiyacınız vardır.
Önemli
Birlikte çalışmak için hem tümleştirme hesabınızın hem de mantıksal uygulama kaynağınızın aynı Azure aboneliğinde ve Azure bölgesinde mevcut olması gerekir.
Tüketim mantıksal uygulaması iş akışı üzerinde çalışıyorsanız, tümleştirme hesabınız mantıksal uygulama kaynağınıza bir bağlantı gerektirir.
Standart mantıksal uygulama iş akışı üzerinde çalışıyorsanız, tümleştirme hesabınızı mantıksal uygulama kaynağınıza bağlayabilir, aşağıdaki senaryolara göre haritaları doğrudan mantıksal uygulama kaynağınıza veya her ikisini birden yükleyebilirsiniz:
İhtiyacınız olan veya kullanmak istediğiniz yapıtlarla zaten bir tümleştirme hesabınız varsa, tümleştirme hesabını yapıtları kullanmak istediğiniz birden çok Standart mantıksal uygulama kaynağına bağlayabilirsiniz. Bu şekilde, haritaları tek tek her mantıksal uygulamaya yüklemeniz gerekmez. Daha fazla bilgi için mantıksal uygulama kaynağınızı tümleştirme hesabınıza bağlama bölümünü gözden geçirin.
Liquid yerleşik bağlayıcısı, mantıksal uygulama kaynağınıza veya bağlı tümleştirme hesabına daha önce yüklediğiniz ancak ikisini birden yüklemediğiniz bir harita seçmenizi sağlar. Daha sonra bu yapıtları aynı mantıksal uygulama kaynağı içindeki tüm alt iş akışlarında kullanabilirsiniz.
Bu nedenle, tümleştirme hesabınız yoksa veya bu hesaba ihtiyacınız varsa karşıya yükleme seçeneğini kullanabilirsiniz. Aksi takdirde, bağlama seçeneğini kullanabilirsiniz. Her iki durumda da, bu yapıtları aynı mantıksal uygulama kaynağı içindeki tüm alt iş akışlarında kullanabilirsiniz.
Liquid şablon dili hakkında temel bilgiler. Azure Logic Apps DotLiquid 2.0.361 kullanır.
Not
JSON'ı JSON'a Dönüştür adlı Liquid eylemi, Liquid için Shopify uygulamasından belirli durumlarda farklılık gösteren DotLiquid uygulamasını izler. Daha fazla bilgi için bkz . Liquid şablonunda dikkat edilmesi gerekenler.
Çözümünüzü test etmek için HTTP istekleri gönderebilen bir araç yükleyin veya kullanın, örneğin:
- Visual Studio Market'ten uzantılı Visual Studio Code
- PowerShell Invoke-RestMethod
- Microsoft Edge - Ağ Konsolu aracı
- Bruno
- Curl
Dikkat
Kimlik bilgileri, gizli diziler, erişim belirteçleri, API anahtarları ve diğer benzer bilgiler gibi hassas verileriniz olduğu senaryolarda, verilerinizi gerekli güvenlik özellikleriyle koruyan, çevrimdışı veya yerel olarak çalışan, verilerinizi bulutla eşitlemeyen ve çevrimiçi bir hesapta oturum açmanızı gerektirmeyen bir araç kullandığınızdan emin olun. Bu şekilde, hassas verileri herkese açık hale getirmekle ilgili riski azaltırsınız.
1. Adım: Şablonu oluşturma
Mantıksal uygulama iş akışınızda Liquid dönüşümü gerçekleştirebilmeniz için önce istediğiniz eşlemeyi tanımlayan bir Liquid şablonu oluşturmanız gerekir.
JSON dönüşümü için harita olarak kullandığınız Liquid şablonunu oluşturun. İstediğiniz herhangi bir düzenleme aracını kullanabilirsiniz.
Bu makaledeki JSON-JSON dönüştürme örneği aşağıdaki örnek Liquid şablonunu kullanır:
{%- assign deviceList = content.devices | Split: ', ' -%} { "fullName": "{{content.firstName | Append: ' ' | Append: content.lastName}}", "firstNameUpperCase": "{{content.firstName | Upcase}}", "phoneAreaCode": "{{content.phone | Slice: 1, 3}}", "devices" : [ {%- for device in deviceList -%} {%- if forloop.Last == true -%} "{{device}}" {%- else -%} "{{device}}", {%- endif -%} {%- endfor -%} ] }
Liquid template (.liquid) dosya uzantısını kullanarak şablonu kaydedin. Bu örnekte SimpleJsonToJsonTemplate.liquid kullanılır.
2. Adım: Liquid şablonunu karşıya yükleme
Liquid şablonunuzu oluşturduktan sonra aşağıdaki senaryoya göre şablonu karşıya yüklemeniz gerekir:
Tüketim mantıksal uygulaması iş akışı üzerinde çalışıyorsanız, şablonunuzu tümleştirme hesabınıza yükleyin.
Standart mantıksal uygulama iş akışı üzerinde çalışıyorsanız, şablonunuzu tümleştirme hesabınıza veya şablonunuzu mantıksal uygulama kaynağınıza yükleyebilirsiniz.
Şablonu tümleştirme hesabına yükleme
Azure portalında Azure hesabı kimlik bilgilerinizle oturum açın.
Azure portalı arama kutusuna tümleştirme hesapları yazın ve Tümleştirme hesapları'nı seçin.
Tümleştirme hesabınızı bulun ve seçin.
Tümleştirme hesabının gezinti menüsünde, Ayarlar'ın altında Haritalar'ı seçin.
Haritalar bölmesinde Ekle'yi seçin. Haritanız hakkında aşağıdaki bilgileri sağlayın:
Özellik Değer Açıklama Adı JsonToJsonTemplate
Bu örnekteki "JsonToJsonTemplate" olan haritanızın adı Eşleme türü Sıvı Haritanızın türü. JSON'ı JSON'a dönüştürme için Liquid'i seçmeniz gerekir. Harita SimpleJsonToJsonTemplate.liquid
Bu örnekte "SimpleJsonToJsonTemplate.liquid" olan dönüştürme için kullanılacak mevcut bir Liquid şablonu veya harita dosyası. Bu dosyayı bulmak için dosya seçiciyi kullanabilirsiniz. Harita boyutu sınırları için bkz . Sınırlar ve yapılandırma.
Şablonu Standart mantıksal uygulamaya yükleme
Azure portalında mantıksal uygulama kaynağınızı bulun ve açın. İş akışı düzeyinde değil kaynak düzeyinde olduğunuzdan emin olun.
Mantıksal uygulama kaynağınızın gezinti menüsündeki Yapıtlar'ın altında Haritalar'ı seçin.
Haritalar bölmesi araç çubuğunda Ekle'yi seçin.
Harita Ekle bölmesinde şablonunuz hakkında aşağıdaki bilgileri sağlayın:
Özellik Değer Açıklama Adı JsonToJsonTemplate
Bu örnekteki "JsonToJsonTemplate" olan haritanızın adı Eşleme türü Sıvı Haritanızın türü. JSON'ı JSON'a dönüştürme için Liquid'i seçmeniz gerekir. Harita SimpleJsonToJsonTemplate.liquid
Bu örnekte "SimpleJsonToJsonTemplate.liquid" olan dönüştürme için kullanılacak mevcut bir Liquid şablonu veya harita dosyası. Bu dosyayı bulmak için dosya seçiciyi kullanabilirsiniz. Harita boyutu sınırları için bkz . Sınırlar ve yapılandırma. Bitirdiğinizde Tamam'ı seçin.
Harita dosyanızın karşıya yüklenmesi tamamlandıktan sonra harita Haritalar listesinde görünür. Tümleştirme hesabınızın Genel Bakış sayfasında, Yapıtlar'ın altında karşıya yüklenen haritanız da görüntülenir.
3. Adım: Sıvı dönüştürme eylemini ekleme
Aşağıdaki adımlarda Tüketim ve Standart mantıksal uygulama iş akışları için Liquid dönüştürme eyleminin nasıl ekleneceği gösterilmektedir.
Azure portalında mantıksal uygulama iş akışınızı henüz açık değilse tasarımcıda açın.
İş akışınızda tetikleyici veya iş akışınıza gereken başka eylemler yoksa, önce bu işlemleri ekleyin. Sıvı işlemlerinde kullanılabilir tetikleyici yoktur.
Bu örnek, HTTP isteği alındığında adlı İstek tetikleyicisiyle devam eder.
İş akışı tasarımcısında Liquid eylemini eklemek istediğiniz adımın altında Yeni adım'ı seçin.
İşlem seçin arama kutusunun altında Tümü'ne tıklayın. Arama kutusuna liquid yazın.
Eylemler listesinden kullanmak istediğiniz Liquid eylemini seçin.
Bu örnek, JSON'ı JSON'a Dönüştür adlı eylemi kullanmaya devam eder.
Eylemin Content özelliğinde, aşağıdaki adımları izleyerek tetikleyiciden JSON çıkışını veya dönüştürmek istediğiniz önceki bir eylemi sağlayın.
Dinamik içerik listesinin görünmesi için İçerik kutusunun içine tıklayın.
Dinamik içerik listesinden dönüştürmek istediğiniz JSON verilerini seçin.
Bu örnek için dinamik içerik listesinde http isteği alındığında altında tetikleyiciden gövde içerik çıkışını temsil eden Gövde belirtecini seçin.
Harita listesinden Liquid şablonunuzu seçin.
Bu örnek JsonToJsonTemplate adlı şablonla devam eder.
Not
Haritalar listesi boşsa mantıksal uygulama kaynağınız tümleştirme hesabınıza bağlı değildir veya tümleştirme hesabınız harita dosyası içermez.
İşiniz bittiğinde, eylem aşağıdaki örneğe benzer şekilde görünür:
İş akışınızı kaydedin. Tasarımcı araç çubuğunda Kaydet'i seçin.
İş akışınızı test etme
İş akışınızı tetikleme için şu adımları izleyin:
İstek tetikleyicisinde HTTP POST URL'si özelliğini bulun ve URL'yi kopyalayın.
HTTP istek aracınızı açın ve yönergelerini kullanarak kopyalanan URL'ye İstek tetikleyicisinin beklediği yöntem de dahil olmak üzere bir HTTP isteği gönderin.
Bu örnekte URL ile yöntemi kullanılır
POST
.Dönüştürmek için JSON girişini ekleyin, örneğin:
{ "devices": "Surface, Mobile, Desktop computer, Monitors", "firstName": "Dean", "lastName": "Ledet", "phone": "(111)0001111" }
İş akışınızın çalışması tamamlandıktan sonra iş akışının çalıştırma geçmişine gidin ve JSON'u JSON'a Dönüştürme eyleminin giriş ve çıkışlarını inceleyin, örneğin:
Diğer Sıvı dönüşümleri
Liquid kullanarak diğer dönüştürmeleri gerçekleştirebilirsiniz, örneğin:
JSON'ı metne dönüştürme
Aşağıdaki Liquid şablonunda JSON'un metne dönüştürülmesi örneği gösterilmektedir:
{{content.firstName | Append: ' ' | Append: content.lastName}}
Aşağıdaki örnekte örnek girişler ve çıkışlar gösterilmektedir:
XML'yi JSON'a dönüştürme
Aşağıdaki Liquid şablonu, XML'nin JSON'a dönüştürülmesi için örnek bir dönüşüm gösterir:
[{% JSONArrayFor item in content -%}
{{item}}
{% endJSONArrayFor -%}]
Döngü JSONArrayFor
, XML girişi için özel bir döngü mekanizmasıdır, böylece sondaki virgülden kaçınan JSON yükleri oluşturabilirsiniz. Ayrıca, where
bu özel döngü mekanizmasının koşulu, diğer Liquid filtreleri gibi öğenin değeri yerine karşılaştırma için XML öğesinin adını kullanır. Daha fazla bilgi için bkz . Set-body policy - Collections of Things hakkında ayrıntılı bilgi.
Aşağıdaki örnekte örnek girişler ve çıkışlar gösterilmektedir:
XML'yi metne dönüştürme
Aşağıdaki Liquid şablonu, XML'nin metne dönüştürülmesi için örnek bir dönüşüm gösterir:
{{content.firstName | Append: ' ' | Append: content.lastName}}
Aşağıdaki örnekte örnek girişler ve çıkışlar gösterilmektedir:
Liquid şablonuyla ilgili dikkat edilmesi gerekenler
Liquid şablonları, Azure Logic Apps'teki haritalar için dosya boyutu sınırlarını izler.
JSON'ı JSON'a Dönüştür eylemi Liquid için DotLiquid uygulamasını izler. Bu uygulama, Liquid için Shopify uygulamasından .NET Framework'e yönelik bir bağlantı noktasıdır ve belirli durumlarda farklılık gösterir.
Aşağıdaki listede bilinen farklar açıklanmaktadır:
JSON'ı JSON'a Dönüştür eylemi yerel olarak JSON, XML, HTML vb. içerebilen bir dize çıkışı verir. Liquid eylemi yalnızca Liquid şablonunun beklenen metin çıkışının bir JSON dizesi olduğunu gösterir. Eylem, mantıksal uygulamanıza girişi JSON nesnesi olarak ayrıştırmasını ve Liquid'in JSON yapısını yorumlayabilmesi için bir sarmalayıcı uygular. Dönüştürme işleminden sonra eylem mantıksal uygulamanıza Liquid'den JSON'a metin çıkışını ayrıştırması talimatını verir.
DotLiquid JSON'ı yerel olarak anlamadığından ters eğik çizgi karakterinden (
\
) ve diğer ayrılmış JSON karakterlerinden kurtulduğunuzdan emin olun.Şablonunuz Liquid filtreleri kullanıyorsa, cümle büyük/küçük harf kullanımını kullanan DotLiquid ve C# adlandırma kurallarını izlediğinizden emin olun. Tüm Liquid dönüşümleri için, şablonunuzdaki filtre adlarının da cümle büyük/küçük harf kullanımını sağlayın. Aksi takdirde filtreler çalışmaz.
Örneğin, filtreyi
replace
kullandığınızda,Replace
değilreplace
kullanın. DotLiquid çevrimiçinde örnekleri denerseniz aynı kural geçerlidir. Daha fazla bilgi için bkz . Shopify Liquid filtreleri ve DotLiquid Liquid filtreleri. Shopify belirtimi her filtre için örnekler içerir, bu nedenle karşılaştırma için dotliquid - Çevrimiçi deneyin adresinden bu örnekleri deneyebilirsiniz.json
Shopify uzantı filtrelerindeki filtre şu anda DotLiquid'de uygulanmadı. Genellikle, JSON dize ayrıştırma için metin çıktısı hazırlamak için bu filtreyi kullanabilirsiniz, ancak bunun yerine filtreyiReplace
kullanmanız gerekir.DotLiquid uygulamasındaki standart filtre normal ifade (RegEx) eşleştirmesini kullanırken Shopify uygulaması basit dize eşleştirme kullanır.
Replace
Eşleştirme parametresinde RegEx ayrılmış karakteri veya kaçış karakteri kullanana kadar her iki uygulama da aynı şekilde çalışıyor gibi görünür.Örneğin, RegEx ayrılmış ters eğik çizgi (
\
) kaçış karakterinden kaçmak için| Replace: '\\', '\\'
değil kullanın| Replace: '\', '\\'
. Bu örnekler, ters eğik çizgi karakterindenReplace
kaçmaya çalıştığınızda filtrenin nasıl farklı davrandığını gösterir. Bu sürüm başarıyla çalışsa da:{ "SampleText": "{{ 'The quick brown fox "jumped" over the sleeping dog\\' | Replace: '\\', '\\' | Replace: '"', '\"'}}"}
Bu sonuçla:
{ "SampleText": "The quick brown fox \"jumped\" over the sleeping dog\\\\"}
Bu sürüm başarısız oluyor:
{ "SampleText": "{{ 'The quick brown fox "jumped" over the sleeping dog\\' | Replace: '\', '\\' | Replace: '"', '\"'}}"}
Bu hatayla:
{ "SampleText": "Liquid error: parsing "\" - Illegal \ at end of pattern."}
Daha fazla bilgi için bkz . Standart filtreyi değiştirme RegEx desen eşleştirmesi kullanıyor....
Sort
DotLiquid uygulamasındaki filtre, bir dizideki veya koleksiyondaki öğeleri özelliğe göre sıralar, ancak şu farklarla:Shopify'ın sıralama davranışını değil, Shopify'ın sort_natural davranışını izler.
Yalnızca dize alfasayısal düzende sıralar. Daha fazla bilgi için bkz . Sayısal sıralama.
Büyük/küçük harfe duyarlı olmayan sırayı kullanır, büyük/küçük harfe duyarlı değil. Daha fazla bilgi için bkz . Sıralama filtresi Shopify'ın belirtiminden büyük/küçük harf davranışına uymuyor.