[Azure] Azure Logic App - 製作簡單的 API +取得 Azure Storage Table 資料,並且判斷邏輯輸出
今天要搞點事情,這篇文章我真的寫了一段時間了,應該是說這範例花了我很多時間測試,因為跨越到很多東西,這次我們加玩了 Condition , Inline Code ( javascript) ,所以花了一段時間測試,今天就分享一下測試心得吧..
前置作業,在開始之前,因為撰寫 Inline Code 必須要開啟整合帳號 詳細請參考 https://docs.microsoft.com/zh-tw/azure/logic-apps/logic-apps-enterprise-integration-partners
之後在 Logic App 設定中在 Workflow 有一個地方必須要指定你開啟的 Integration accounts 這樣 Inline code 才能用
現在解釋案例,我寫程式 POST 到 Azure Logic App 的一個 work flow ,我會去 Azure Storage Table 查詢 Partition Key and RowKey 一致的資料,然後我會寫邏輯,如果失敗 或是 成功回應不同訊息
1. 建立第一個 trigger , When A HTTP Request is Received ,因為要制定傳入的資料,所以 JSON Schema ,相關的觀念可以參考 [C#] 使用 NJsonSchema.CodeGeneration.CSharp 製作 JSON Schema + 驗證 JSON
2. 加入一個 Action 去撈資料,並且設定為 Step1 的傳入的 PK , RK 進行查詢。
3. Step2 有兩種狀況 一個是錯誤 (因為沒拉到資料) ,另一種狀況是成功的 然後我們分別在下面,所以我們加入一個 Condition 去判斷 Partition Key + RowKey 查詢查回來 Partition Key 不等於 null 加入 兩種 inline code 進行判斷並且 輸出.
True Condition Inline Code ( 也就是成功,不等於null) :
False Condition Inline Code (失敗,等於 null ):
這樣透過 C# 程式端這邊 post 到步驟1 的網址就可以拿到各自的 json 答案。
附上完整的 Azure Logic App Code :
這花了一點時間盡量紀錄完整希望幫助到有碰到的人,看起來很複雜,其實自己做完之後是到還好,只是有些地方沒這麼熟悉,不過為了達到無 server 化的目標跟成本考量,這點研究我覺得蠻值得的..
reference:
https://docs.microsoft.com/zh-tw/azure/logic-apps/logic-apps-add-run-inline-code
標籤:
Azure
,
AzureStorage
,
DevOps
,
LogicApp
,
Serverless
-- Yesterday I wrote down the code. I bet I could be your hero. I am a mighty little programmer. 如果這篇文章有幫助到您,簡單留個言,或是幫我按個讚,讓我有寫下去的動力...