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:

Ö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.

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.

  1. 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 -%}
       ]
    }
    
  2. 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:

Şablonu tümleştirme hesabına yükleme

  1. Azure portalında Azure hesabı kimlik bilgilerinizle oturum açın.

  2. Azure portalı arama kutusuna tümleştirme hesapları yazın ve Tümleştirme hesapları'nı seçin.

    Screenshot showing the Azure portal search box with

  3. Tümleştirme hesabınızı bulun ve seçin.

    Screenshot showing integration accounts pane with integration account selected.

  4. Tümleştirme hesabının gezinti menüsündeki Ayarlar altında Haritalar'ı seçin.

    Screenshot showing integration account navigation menu with

  5. 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.

    Screenshot showing

Şablonu Standart mantıksal uygulamaya yükleme

  1. 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.

  2. Mantıksal uygulama kaynağınızın gezinti menüsündeki Yapıtlar'ın altında Haritalar'ı seçin.

  3. Haritalar bölmesi araç çubuğunda Ekle'yi seçin.

  4. 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.
  5. 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.

  1. Azure portalında mantıksal uygulama iş akışınızı henüz açık değilse tasarımcıda açın.

  2. İş 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.

  3. İş akışı tasarımcısında Liquid eylemini eklemek istediğiniz adımın altında Yeni adım'ı seçin.

  4. İşlem seçin arama kutusunun altında Tümü'ne tıklayın. Arama kutusuna liquid yazın.

  5. Eylemler listesinden kullanmak istediğiniz Liquid eylemini seçin.

    Bu örnek, JSON'ı JSON'a Dönüştür adlı eylemi kullanmaya devam eder.

    Screenshot showing Consumption workflow designer with a Liquid action selected.

  6. 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.

    1. Dinamik içerik listesinin görünmesi için İçerik kutusunun içine tıklayın.

    2. 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.

      Screenshot showing Consumption workflow, Liquid action's

  7. Harita listesinden Liquid şablonunuzu seçin.

    Bu örnek JsonToJsonTemplate adlı şablonla devam eder.

    Screenshot showing Consumption workflow, Liquid action's

    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:

    Screenshot showing Consumption workflow with finished

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

İş akışınızı test etme

  1. Postman veya benzer bir araç ve POST yöntemi kullanarak İstek tetikleyicisinin HTTP POST URL özelliğinde görünen İstek tetikleyicisinin URL'sine bir çağrı gönderin ve dönüştürülecek JSON girişini ekleyin, örneğin:

    {
       "devices": "Surface, Mobile, Desktop computer, Monitors",
       "firstName": "Dean",
       "lastName": "Ledet",
       "phone": "(111)0001111"
    }
    
  2. İş 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:

    Screenshot showing example output.

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:

Screenshot showing example output for JSON to text transformation.

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:

Screenshot showing example output for XML to JSON transformation.

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:

Screenshot showing example output for XML to text transformation.

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, Replacedeğil replacekullanı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 filtreyi Replace 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 karakterinden Replace 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:

Sonraki adımlar