# มาสร้าง Logic App กัน

💬 รอบนี้จะมาสร้างโปรแกรมโดยไม่ต้องเขียนโค้ดเลยซักบรรทัด ด้วย service ที่ชื่อว่า **Logic App** กันดูบ้างละกัน ซึ่งเจ้า Logic app จะอยู่ในโมเดลที่เรียกว่า **SaaS (Software as a service)** ถ้าใครยังไม่รู้จัก Cloud model สามารถอ่านได้จากลิงค์นี้เบย [จิ้มตรงนี้เบาๆนะ](https://saladpuk.gitbook.io/learn/cloud/azure101/service-types)

{% hint style="info" %}
**Azure Portal**\
จะทำตามในรอบนี้ให้เข้าไปที่ <https://portal.azure.com> เน่อ\
ส่วนถ้าใครยังไม่ได้สมัครก็ไปสมัครให้เรียบร้อยแซ๊ร [(วิธีสมัครจิ้มตรงนี้)](https://saladpuk.gitbook.io/learn/cloud/azure101/register)
{% endhint %}

## 🤔 เขียนแอพโดยไม่เขียนโค้ดทำไง ?

1.ที่เมนูด้านซ้ายมือให้เลือก Resource groups ซะ แล้วในหน้าตรงกลางให้เลือกชื่อ Resource group ที่เราสร้างไว้

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-LnN7yk2OnaT21r8siXP%2F-LnNAau0ioJEOLFOqK82%2Fselect-resource-group.png?alt=media\&token=4a8a71d4-a3b6-4b55-9748-179b450ef8d8)

2.หลังจากที่เข้ามาใน Resource group แล้วให้กดปุ่ม + ที่มุมบนซ้ายของเมนู

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-LnN7yk2OnaT21r8siXP%2F-LnNB9KzR8PabMbxNE-O%2Fadd-new-service.png?alt=media\&token=24f536d7-750a-44ae-9455-7292b69f696c)

3.ระบบจะพาเราไปที่หน้า **Marketplace** ซึ่งในหน้า marketplace นี้เป็นหน้าหลักในการเลือก service ที่เราจะทำการสร้าง ซึ่งในรอบนี้เราจะพิมพ์ในช่องค้นหาว่า **Logic App** แล้วกด Enter เลย

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-LpU1cC8ol-svgzTYDeM%2Fimage.png?generation=1583529148864973\&alt=media)

4.ถัดมาเขาก็จะบอกรายละเอียดเกี่ยวกับ Logic App ว่ามันคืออะไร จะไปศึกษาลองเล่นต่อได้ยังไง ราคาที่ต้องจ่ายต่อเดือนคิดยังไง บลาๆ ก็ถ้าอ่านจนหนำใจแล้วก็จิ้มปุ่ม **Create** เบาๆไป 1 ทีงับ

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-LnrUmUkfTDsjM6RNooL%2Fimage.png?generation=1583529140876098\&alt=media)

5.ในขั้นตอนถัดมาเขาก็จะถามรายละเอียดของ Logic App ของเรา ซึ่งในส่วนนี้ก็ค่อยๆเลือกใส่ทีละอันเลย แล้วพอใส่เสร็จก็กดปุ่ม **Create** โลด

| ชื่อ              | รายละเอียด                                                                       |
| ----------------- | -------------------------------------------------------------------------------- |
| **Name**          | ชื่อ Logic App ที่จะสร้าง                                                        |
| **Location**      | ตัว Service นี้จะตั้งอยู่ที่ไหน (ทดสอบในไทยก็เลือก Southeast Asia นะ)            |
| **Log Analytics** | จะให้มันเก็บบันทึกๆการทำงานต่างๆที่เกิดขึ้นกับ Logic App นี้ไหม (แล้วแต่เลยครับ) |

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-M-ZMROvSZ6atEkHr7fa%2Fimage.png?generation=1583529173912553\&alt=media)

6.รอจนกว่าจะเสร็จก็เป็นอันเสร็จพิธี

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-LnN7yk2OnaT21r8siXP%2F-LnNDWdnC_ChnvlxLvlE%2Fdeploying.png?alt=media\&token=a9ea8a1b-058c-4cb6-b0bf-7ae9d409e560)

## 🤔 สร้างเสร็จแล้วไงต่อ ?

จากขั้นตอนด้านบน มันเป็นการสร้าง service ที่เรียกว่า Logic App ขึ้นมาเฉยๆ ซึ่งขั้นตอนถัดไปเราก็จะทำการกำหนดว่าจะให้แอพตัวนี้ทำงานอะไรบ้าง ตามขั้นตอนด้านล่างนี้เลย

1.เข้าไปที่ resource group ที่สร้างไว้ แล้วจะเห็น Logic App โผล่ขึ้นมาละ ให้จิ้มสัมผัสมันเบาๆอย่างอ่อนโยน 1 ที

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-Lnlo1zxM1y0U7ASnlPO%2Fimage.png?generation=1583529134048111\&alt=media)

2.เขาจะพาเรามาหน้า Logic App Designer ซึ่งเจ้าหน้านี้แหละเราจะมากำหนดว่าจะให้แอพของเราทำงานอะไรบ้าง โดยเราสามารถเลือกให้มันทำงานได้ 2 รูปแบบคือ **สร้างเอง** หรือ **ใช้แบบที่เขาสร้างไว้ให้แล้ว**

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-Lps8kVO3EAmsth7CrJS%2Fimage.png?generation=1583529163340766\&alt=media)

**(1) แบบสร้างเอง**\
ในรูปแบบนี้จะมีตัวเลือกให้เราเลือกว่า แอพเราจะเริ่มทำงานเมื่อไหร่ ซึ่งมี option พื้นฐานให้เลือกตามรูปด้านล่างนี้

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-Lpr0cpes_p_B21ecohM%2Fimage.png?generation=1583529177160998\&alt=media)

| ชื่อ | ลักษณะการทำงาน |
| ---- | -------------- |

| When a HTTP request is received | เราจะได้ลิงค์มา 1 ตัวแล้วเมื่อไหร่ที่มีคนเปิดลิงค์ของเราปุ๊ป มันจะสั่งให้แอพของเราทำงานทันที |
| ------------------------------- | -------------------------------------------------------------------------------------------- |

| When a new tweet is posted | เมื่อมีคนโพสต์ Twitter เมื่อไหร่ มันจะสั่งให้แอพของเราทำงานทันที |
| -------------------------- | ---------------------------------------------------------------- |

| Recurrence | <p>ตั้งเวลา - เมื่อถึงเวลาที่กำหนด มันจะสั่งให้แอพของเราทำงานทันที</p><p>เช่นทุกๆ 5 นาที หรือ ทุกๆวันตอนเช้า บลาๆ</p> |
| ---------- | --------------------------------------------------------------------------------------------------------------------- |

| When a new email is received ... | เมื่อได้รับอีเมล์ใหม่ใน Outlook มันจะสั่งให้แอพของเราทำงานทันที |
| -------------------------------- | --------------------------------------------------------------- |

**(2) ใช้แบบที่เขาสร้างไว้ให้แล้ว**

ในรูปแบบนี้จะเป็นตัวเลือกที่ทาง Microsoft สร้างการทำงานแบบคร่าวๆไว้แล้ว ซ฿่งเรามีหน้าที่ไปปรับแก้ว่าแอพเราอยากให้มันทำอะไรเพิ่มบ้างเท่านั้นเอง ซึ่งมีตัวเลือกเยอะม๊วกๆๆๆ ขอเอาแค่ตัวน่าสนใจมาให้ดูละกันนะ

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-LwnE7pzBi31gaBFtRVu%2Fimage.png?generation=1583529159071226\&alt=media)

ในตัวเลือกด้านบนจะมีตัว Connect ไปทำงานกับ Ethereum, Twitter, Facebook, Instagram, SAP, Slack, PowerBI, MailChimp และอื่นๆทีอีกมากมายให้ลองเลือกเล่นดู

ในตัวอย่างนี้ผมจะเน้นความเข้าใจเป็นหลัก ดังนั้นผมขอเลือกสร้างโดยใช้ HTTP Trigger ตามรูปด้านล่างนะครับ ซึ่งเราจะได้รับลิงค์มาตัวนึง แล้วเมื่อไหร่ที่มีคนเปิดลิงค์ของเราปุ๊ป แอพของเราก็จะเริ่มทำงานนั่นเอง

![เลือกตัวนี้เบย HTTP Trigger](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-LofWc7jOrYFNbgBK0SL%2Fimage.png?generation=1583529160227338\&alt=media)

4.พอเลือกเสร็จเขาก็จะพามายังหน้าออกแบบแอพของเรา ซึ่งในรูปจะเห็นว่ามันจะทำงานเมื่อได้รับ **HTTP request** เข้ามา ซึ่งในขั้นตอนนี้ผมจะให้มันรองรับการเรียกแบบ HTTP Get ด้วย ดังนั้นให้เรากด **Add new parameter** แล้วติ๊กช่อง **Method** ครับ

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-LvAGOOkf4uE0N1XpZMn%2Fimage.png?generation=1583529176042771\&alt=media)

5.หลังจากนั้นให้เลือก **GET** นะครับ เราจะได้เรียก Url ของเราผ่านเว็บได้ง่ายๆ

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-LpK8KKpwWjXRmd6I83e%2Fimage.png?generation=1583529152670957\&alt=media)

6.แล้วต่อมาก็กดปุ่ม **Next step** เพื่อกำหนดว่า ถ้าได้รับ HTTP request ละจะทำอะไรต่อ

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-LoNecrM0k6JBrO5xnMm%2Fimage.png?generation=1583529163775288\&alt=media)

7.ในตัวอย่างนี้ผมจะให้แอพผมโพสต์ Twitter เข้าไปที่ twitter account ผมนะครับ ดังนั้นก็ค้นหาว่า **post twitter** แล้วเลือก **Post a tweet** ได้เลยครับ

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-LoImRoy9M4RVeS8gKoH%2Fimage.png?generation=1583529147277375\&alt=media)

8.ถัดมาเขาก็จะให้ผมทำการ login เพื่อกำหนดว่าจะส่ง twitter เข้าไปที่ account ไหน ดังนั้นเราก็กด **Sign in** โลด

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-Lw2S2DGwHkyKn-E2MQy%2Fimage.png?generation=1583529169634387\&alt=media)

9.หลังจาก Login แล้วเขาก็จะถามว่าเราจะส่งอะไรบ้างเข้า twitter ซึ่งในข้อนี้ผมจะส่งแค่ข้อความอย่างเดียวนะ ดังนั้นก็เลือกแค่ **Tweet text** ครับ

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-M-i4WlnEnNOndU1UH_T%2Fimage.png?generation=1583529117471781\&alt=media)

10.ถัดมาเขาก็จะให้เราใส่ข้อความที่เราจะส่งเข้า twitter ครับ ซึ่งในตัวอย่างผมพิมพ์ว่า **Test message** ซึ่งในจุดนี้เขาจะมีกล่องตัวช่วยเปิดขึ้นมาด้านขวามือ ซึ่งกล่องนี้เราสามารถเลือกเอาข้อมูลต่างๆที่ได้จากขั้นตอนก่อนหน้าทุกตัวมาใช้ได้ครับ

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-LpTrEIyKTNaDd5ShehG%2Fimage.png?generation=1583529175885478\&alt=media)

{% hint style="info" %}
**ข้อแนะนำ**\
ตัวเลือกด้านขวา เราสามารถทำ custom ค่าหรือเรียกใช้ function ต่างๆได้นะครับ เช่น หาผลรวม, ดูว่าข้อความยาวกี่ตัวอักษร หรือ ไปเอาข้อมูลจากขั้นตอนก่อนหน้า เช่น ตอนที่มีคนเรียก HTTP เข้ามาเราสามารถไปอ่าน **Request body เพื่ออ่าน Json ออกมาได้ด้วยนะครับซึ่งตัวอย่างพวกนั้นอยู่ใน วีดีโอด้านล่างแล้วครับ**
{% endhint %}

11.ตอนนี้ผมคิดว่าตัวอย่างน่าจะโอเคละ ดังนั้นขั้นตอนสุดท้ายผมก็กดปุ่ม **Save** เพื่อบันทึกว่าโปรแกรมมันจะทำงานตามนี้นะ

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-LqvzKurSP958kbqZNvu%2Fimage.png?generation=1583529094601373\&alt=media)

{% hint style="info" %}
**สรุปการทำงาน**\
เมื่อมีใครก็ตามกดลิงค์เข้ามาที่แอพของเราปุ๊ป โปรแกรมของเราก็จะทำการโพสต์ Twitter เข้าไปที่ account ผมทันทีนั่นเอง
{% endhint %}

## 🤔 แล้วจะลองเรียกใช้โปรแกรมยังไง ?

1.หลังจากที่กด save ไปเรียบร้อยแล้ว ให้ลองเปิดกล่อง **When a HTTP request is received** ออกมาดูครับ เราจะเห็น ลิงค์ที่เขาสร้างเอาไว้ ให้เรากดปุ่ม copy ด้านขวามือครับ

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-LujiQ-1uQsdABR6MAXE%2Fimage.png?generation=1583529165952601\&alt=media)

2.ลองเอา Url ที่ copy มาไปเปิดใน web browser ดูครับผม ซึ่งถ้าไม่มีปัญหาอะไรเราจะเจอหน้าขาวๆตามนี้ครับ

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-Lr2mtQ2R8f0uEZb2mRV%2Fimage.png?generation=1583529150684406\&alt=media)

3.ลองเข้าไปดูใน Twitter ของเรากัน ก็จะเจอข้อความที่ Logic App เขียนเข้ามาครับ!

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-LuoOWF3YbSkgp6KYwRI%2Fimage.png?generation=1583529107462924\&alt=media)

{% hint style="warning" %}
Twitter ผมไม่ต้องกดติดตามใดๆนะครับ เพราะผมไม่เคยโพสต์อะไรเลย มีแต่ Azure นี่แหละที่คอยโพสต์ให้ผมตอนที่ผมไปออกอบรม (ฮา)
{% endhint %}

4.สุดท้ายถ้าเรากลับไปดูที่ตัว Logic App ที่สร้างไว้ เราก็จะเห็นสถานะว่ามีการเรียก Url ของเราเข้ามาตอนเวลาไหน ทำงานสำเร็จหรือไม่ ซึ่งสามารถกดเข้าไปดูรายละเอียดได้ด้วยนะ

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-LofQsQusBsaBYbD7GWf%2Fimage.png?generation=1583529162830939\&alt=media)

5.ซึ่งภายในรายละเอียดก็จะบอกว่า ตัวแอพเราเรียกอะไรไปบ้าง ทำงานเสร็จหรือไม่เสร็จที่ขั้นตอนไหน ซึ่งในจุดนี้เราสามารถกดดูรายละเอียดถ้า ถ้ามันทำไม่เสร็จเพื่อที่จะได้เตรียมไล่จัดการปัญหาต่อไปครับ

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-LoQj56fnpY7IvmJlGvZ%2Fimage.png?generation=1583529121071473\&alt=media)

## 🎥 ตัวอย่างการทำ Logic App แบบอื่นๆ

ในตัวอย่างนี้ผมจะลองให้มันส่งข้อมูลผ่าน HTTP POST ด้วย แล้วให้มันตัดสินใจต่อว่าจะทำการส่งอีเมล์ไปรายงานผลดีหรือเปล่าด้วยนะครับ

{% embed url="<https://www.youtube.com/watch?v=NDw3ywvwCys&list=PLUjAn8nwWniiReiOqUqYwxG7ny2bhENMg&index=11>" %}

{% hint style="warning" %}
ในวีดีโอเหมือนผมโดนตัวอะไรซักอย่างไปพูดว่าเป็น PaaS ตลอดทั้งๆที่มันก็เขียนจั่วหัวว่าเป็น SaaS นะครับต้องขออภัยด้วย
{% endhint %}

## 🎯 บทสรุป

เราสามารถเขียนแอพขึ้นมาโดยที่ไม่จำเป็นต้องเขียนโค้ดเป็นเลยก็ได้ โดยใช้เจ้า Logic App ซึ่งข้อดีข้อนี้คือช่วยลดงานของ developer ลงอย่างมหาศาล เช่น ถ้าผลลัพท์น้อยกว่าเท่านี้เราจะต้องอีเมล์ไปแจ้งลูกค้านะ แต่ถ้าผลลัพท์เป็นแบบนี้เราจะต้องสั่งซื้อสินค้านะ บลาๆ ซึ่งปรกติเราจะต้องไปเขียนโปรแกรมนั่ง test ว่าโปรแกรมมี bug บลาๆต่อใช่ไหมล่ะ แต่ถ้าเราเปลี่ยนมาใช้ Logic App แล้วละก็ คนชงกาแฟน้องๆที่เดินส่งเอกสารก็จะมีบทบาทเข้ามาช่วยลดเวลาของเหล่า developer ได้อย่างมหาศาลเลยไงล่ะ
