2017年7月24日

在Azure Logic App中使用Function App的Tips

一些在Logic App中使用Function App的筆記

  • Logic App中使用Function App

n   如何將參數傳給Function App

u  假如Logic AppHTTP Trigger會產出一個字串Outpout(如:Condition_1),我想要組成如下的Json文件,我們想把這個Json當成傳入給下一個步驟的Function App(RuleEngine)的參數。

{"condition":"Condition_1"}

設定的方式為:

Function RuleEnginRequest Body設定中,手動填上

{

           "condition":"<PLACE HOLDER>"

}

由標點到<PLACE HOLDER>處,手動加上actionBody('<上一步驟的名稱>')

n   Function App有一個Blob Input;會根據所傳入的condition值,讀取位於指定的Storage下的ruleengine/{condition}.json檔案

l   Function App定義Run.csx如下

public class BlobInfo

{

    public string condition { get; set; }

}

public async static Task<HttpResponseMessage>

Run(HttpRequestMessage req,

BlobInfo info,

string blobContents,

TraceWriter log)

{

           //…省略

}

l   Function.json設定binding如下

{

  "bindings": [

    {

      "name": "info",

      "type": "httpTrigger",

      "direction": "in"

    },

    {

      "name": "blobContents",

      "type": "blob",

      "direction": "in",

      "path": "ruleengine/{condition}.json",

      "connection": "<YOUR CONNECTION>"

    },

    {

      "name": "res",

      "type": "http",

      "direction": "out"

    }

  ]

}

n   針對某一個StepOutputIteration

u  加入ForEach Action,假設Json文件內容為

{

           handlers:[

                     {

                                "Name":"item1"

},

{

     "Name":"item2"

}

           ]

}

則指定針對actionOutputs(<步驟名稱>)['body']['handlers']Repeat

n   對每一個Array ElementName屬性做Switch-Case

 

沒有留言:

Blog Archive

About Me