Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: Azure Logic Apps (Tüketim + Standart)
Azure Logic Apps JSON, XML, düz dosyalar ve ikili veriler gibi tüm içerik türlerini destekler. Bazı içerik türleri yerel desteğe sahiptir, yani yayınlama veya dönüştürme ihtiyacı yoktur, ancak diğer içerik türleri gerekli biçimi sunmak için bazı teknik düzenlemeler veya biçim dönüşümü gerektirebilir.
Azure Logic Apps, iş akışlarındaki içeriği veya verileri işlemenin en iyi yolunu belirlemeye yardımcı olmak için, iş akışlarının dış arayanlardan gelen HTTP isteklerindeki üst bilgi değerini kullanır Content-Type .
Aşağıdaki liste, bir iş akışının karşılaşabileceği bazı örnek Content-Type değerleri içerir:
- application/json (yerel tür)
- metin/düz (yerel tür)
- application/xml ve application/octet-stream
- Diğer içerik türleri
Bu kılavuz, Azure Logic Apps'in farklı içerik türlerini nasıl işlediğini açıklar ve gerektiğinde bu türlerin doğru şekilde nasıl yayınlanıp dönüştürüldüğünü gösterir.
application/json
Üst bilgi değerinin Content-Typeapplication/json olduğu bir HTTP isteği için Azure Logic Apps içeriği JavaScript Nesne Gösterimi (JSON) nesnesi olarak depolar ve işler. JSON içeriğini varsayılan olarak herhangi bir tür dönüştürme veya değişiklik olmadan ayrıştırabilirsiniz. Bu içeriği bir ifade kullanarak da ayrıştırabilirsiniz.
Örneğin, aşağıdaki ifade, iş akışında bir öncül eylemin JSON adı olan body() ile My_action işlevini kullanır:
body('My_action')['client']['animal-type'][0]
Aşağıdaki adımlarda, ifadenin tür değiştirme veya dönüştürme olmadan nasıl çalıştığı açıklanmaktadır.
body()işlevi, eylemdenbodyMy_actionçıkış nesnesini alır.İşlev, döndürülen
bodynesnesindenclientnesnesine erişir.clientnesnesi, bir dizi olarak ayarlanmışanimal-typeözelliğini içerir.işlevi dizideki ilk öğeye erişir ve doğrudan atama veya dönüştürme olmadan köpek değerini döndürür.
Üst bilgi kullanmayan Content-Type JSON verileriyle çalışıyorsanız, json() işlevini kullanarak bu verileri el ile JSON'a dönüştürebilirsiniz, örneğin:
json(triggerBody())['client']['animal-type']
İşlev, iş akışının tetikleyici çıktısından
triggerBody()nesnesinibodyalır. Bu nesne genellikle bir JSON nesnesidir.Nesnenin
bodykaynağı, iş akışı tetikleyicisi tarafından alınan gelen HTTP isteğinden veya olayından kaynaklanır.İşlev,
json()işlevdenbodydöndürülen nesneyi JSON nesnesi olarak açıkça ayrıştırıyortriggerBody().Bu davranış, örneğin tetikleyici gövdesi JSON olarak işlenmesini gerektiren bir dize olduğunda yararlıdır.
Kalan ifade davranışı önceki örneğe benzer.
JSON özellikleri için belirteç oluşturma
Azure Logic Apps'te, JSON içeriğindeki özellikleri temsil eden kullanıcı dostu belirteçler oluşturabilirsiniz. Daha sonra bu belirteçleri kullanarak iş akışınızda bu özelliklere ve değerlerine daha kolay başvurabilirsiniz.
Aşağıdaki listede yaygın iş akışı işlemleri ve JSON içeriğindeki özellikler için belirteç oluşturmanın ilgili yolları açıklanmaktadır:
HTTP isteği alındığında adlı istek tetikleyicisi
Tasarımcıda İstek tetikleyicisiyle çalışırken, isteğe bağlı olarak her özellik değeri için JSON nesnelerini, özelliklerini ve beklenen veri türlerini tanımlayan bir JSON şeması sağlayabilirsiniz. JSON şemanız yoksa, kullanabileceğiniz bir JSON şeması oluşturmak için örnek bir yük sağlayabilirsiniz.
Tetikleyici, gelen HTTP isteklerinden JSON içeriğini ayrıştırmak ve JSON içeriğindeki özellikleri temsil eden belirteçler oluşturmak için şemayı kullanır. Daha sonra iş akışınızdaki sonraki eylemlerde bu özelliklere ve değerlerine kolayca başvurabilir ve kullanabilirsiniz.
Aşağıdaki adımlarda bir JSON şeması oluşturmak için nasıl örnek bir yük sağlayabileceğiniz açıklanmaktadır:
Tasarımcıda İstek tetikleyicisini seçerek bilgi bölmesini açın.
Parametreler sekmesindeki İstek Gövdesi JSON Şeması kutusunun altında Şema oluşturmak için örnek yükü kullan'ı seçin.
Örnek bir JSON yükü girin veya yapıştırın kutusuna örnek bir yük girin ve Bitti'yi seçin.
Oluşturulan şema artık tetikleyicinizde görünür.
Kod görünümü düzenleyicisinde İstek tetikleyicisi için temel alınan JSON tanımını gözden geçirebilirsiniz:
"triggers": { "When_an_HTTP_request_is_received": { "type": "Request", "kind": "Http", "inputs": { "schema": { "type": "object", "properties": { "client": { "type": "object", "properties": { "animal-type": { "type": "array", "items": { "type": "string" }, }, "name": { "type": "string" } } } } } } } }İş akışınızı tetikleyebilmek için , iş akışını ilk kez kaydettikten sonra oluşturulan İş Akışı URL'sini veya tetikleyicinin HTTP URL'sini alın.
İş akışını test etmek için, iş akışı URL'sine veya tetikleyici URL'sine HTTP isteği gönderebileceğiniz bir istemci aracı veya uygulaması kullanın. İsteğin Content-Type adlı bir üst bilgi içerdiğinden ve üst bilgi değerinin application/json olarak ayarlandığından emin olun.
JSON ayrıştır eylemi
Tasarımcıda bu eylemi kullandığınızda, JSON çıktısını ayrıştırabilir ve JSON içeriğinizdeki özellikleri temsil eden kullanıcı dostu belirteçler oluşturabilirsiniz. Daha sonra mantıksal uygulamanızın iş akışı boyunca bu özelliklere kolayca başvurabilir ve kullanabilirsiniz.
İstek tetikleyicisine benzer şekilde, ayrıştırmak istediğiniz JSON içeriğini açıklayan bir JSON şeması sağlayabilir veya oluşturabilirsiniz. Bu şekilde Azure Service Bus, Azure Cosmos DB vb. verileri daha kolay kullanabilirsiniz.
text/plain
İş akışınız üst bilgi değerinin Content-Typemetin/düz olduğu HTTP istekleri alıyorsa. Azure Logic Apps içeriği ham biçimde depolar ve işler. Sonraki iş akışı adımlarında bu içeriğe başvurmanız veya dönüştürme yapmadan kullanmanız durumunda, giden isteklerin Content-Type üst bilgi değeri text/plain olarak ayarlanmış olur.
Örneğin, düz bir dosyayla çalıştığınızı ve gelen HTTP isteğinin üst bilgi değerinin Content-Type olarak text/plainayarlandığını varsayalım:
Date,Name,Address
Oct-1,Frank,123 Ave
Bu isteği, başka bir istek göndermek için istek gövdesini kullanan sonraki bir eyleme gönderirseniz, ikinci isteğin Content-Type üst bilgi değeri text/plain olarak ayarlanır. Verilerle düz metin olarak çalışıyor ve üst bilgi belirtmediyseniz, örneğin, string() işlevini kullanarak bu verileri elle metne dönüştürebilirsiniz.
string(triggerBody())
application/xml ve application/octet-stream
Azure Logic Apps her zaman gelen bir HTTP isteği veya yanıtında Content-Type üst bilgi değerini korur. İş akışınız Content-Type öğesini application/octet-stream olarak ayarlanmış içerik alırsa ve bu içeriği dönüştürmeden sonraki bir eyleme eklerseniz, giden istek de Content-Type olarak ayarlanır application/octet-stream. Bu yaklaşım, iş akışında ilerlerken verilerin kaybolmamasını sağlar. Durum bilgisi olan iş akışlarında, sonraki eylemin durumu, girişleri ve çıkışları bir JSON nesnesinde depolanırken durum iş akışında ilerler.
Dönüştürücü işlevleri
Azure Logic Apps, bazı veri türlerini korumak için içeriği ikili base64 kodlu bir dizeye dönüştürür. Bu dize, hem yük olan $content hem de otomatik olarak dönüştürülen $content-type öğesini koruyan uygun meta verilere sahiptir.
Aşağıdaki listede, belirli işlevleri kullandığınızda Azure Logic Apps'in içeriği nasıl dönüştürdüğü açıklanmaktadır:
-
json(): Verileriapplication/jsontürüne dönüştürür. -
xml(): Verileriapplication/xmltürüne dönüştürür. -
binary(): Verileriapplication/octet-streamtürüne dönüştürür. -
string(): Verileritext/plaintürüne dönüştürür. -
base64(): İçeriği base64 ile kodlanmış bir dizeye dönüştürür. -
base64toString(): base64 ile kodlanmış bir dizeyi olaraktext/plaindönüştürür. -
base64toBinary(): base64 ile kodlanmış bir dizeyi olarakapplication/octet-streamdönüştürür. -
dataUri(): Bir dizeyi veri URI'sine dönüştürür. -
dataUriToBinary(): Veri URI'sini ikili dizeye dönüştürür. -
dataUriToString(): Veri URI'sini dizeye dönüştürür.
Örneğin, iş akışı tetikleyicinizin içeriğin aşağıdaki örneğe Content-Type benzer şekilde ayarlandığı application/xml bir HTTP isteği aldığını varsayalım:
<?xml version="1.0" encoding="UTF-8" ?>
<CustomerName>Frank</CustomerName>
Bu içeriği aşağıdaki ifadeyi xml() ve triggerBody() işlevlerini kullanarak yayımlayabilirsiniz.
xml(triggerBody())
Daha sonra elde edilen içeriği iş akışında sonraki eylemlerle kullanabilirsiniz. Bunun yerine, xpath() ve xml() fonksiyonlarını kullanan aşağıdaki ifadeyi kullanabilirsiniz:
xpath(xml(triggerBody()), '/CustomerName')
Diğer içerik türleri
Azure Logic Apps diğer içerik türlerini destekler, ancak $content değişkenini kodunu çözerek bir HTTP isteğinden ileti gövdesini manuel olarak almanız gerekebilir.
Örneğin, iş akışınızın olarak ayarlandığı Content-Typeapplication/x-www-url-formencodedbir HTTP isteği aldığını varsayalım. Tüm verileri korumak için istek gövdesi yükün $content base64 dizesi olarak kodlandığı değişkeni içerir:
CustomerName=Frank&Address=123+Avenue
Bu içerik türü düz metin veya JSON biçiminde olmadığından Azure Logic Apps aşağıdaki CustomerName=Frank&Address=123+Avenue ve $content-type değişkenleri kullanarak depolar$content:
"body": {
"$content-type": "application/x-www-url-formencoded",
"$content": "AAB1241BACDFA=="
}
Azure Logic Apps, form verilerini işlemek için yerel işlevler de içerir, örneğin:
Ya da aşağıdaki örnek gibi bir ifade kullanarak verilere el ile erişebilirsiniz:
string(body('formdataAction'))
Giden bir isteği gerçekleştirmek için application/x-www-url-formencoded ifadesini Content-Type üst bilgi değeri olarak kullanın ve body('formdataAction') gibi bir ifade kullanarak herhangi bir atama yapmadan istek içeriğini eylem gövdesine ekleyin. Bu yöntem yalnızca eylem gövdesi inputs nesnesindeki body tek parametreyse çalışır. İfadeyi body('formdataAction') içerik türünün application/jsonolduğu bir istekte kullanırsanız, gövde kodlanmış olarak gönderildiğinden bir çalışma zamanı hatası alırsınız.