> For the complete documentation index, see [llms.txt](https://www.saladpuk.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.saladpuk.com/cloud/azure101/logic-app.md).

# มาสร้าง 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 ที่เราสร้างไว้

![](/files/-LnNAau0ioJEOLFOqK82)

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

![](/files/-LnNB9KzR8PabMbxNE-O)

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

![](/files/-LpU1cC8ol-svgzTYDeM)

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

![](/files/-LnrUmUkfTDsjM6RNooL)

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

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

![](/files/-M-ZMROvSZ6atEkHr7fa)

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

![](/files/-LnNDWdnC_ChnvlxLvlE)

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

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

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

![](/files/-Lnlo1zxM1y0U7ASnlPO)

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

![](/files/-Lps8kVO3EAmsth7CrJS)

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

![](/files/-Lpr0cpes_p_B21ecohM)

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

| 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 สร้างการทำงานแบบคร่าวๆไว้แล้ว ซ฿่งเรามีหน้าที่ไปปรับแก้ว่าแอพเราอยากให้มันทำอะไรเพิ่มบ้างเท่านั้นเอง ซึ่งมีตัวเลือกเยอะม๊วกๆๆๆ ขอเอาแค่ตัวน่าสนใจมาให้ดูละกันนะ

![](/files/-LwnE7pzBi31gaBFtRVu)

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

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

![เลือกตัวนี้เบย HTTP Trigger](/files/-LofWc7jOrYFNbgBK0SL)

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

![](/files/-LvAGOOkf4uE0N1XpZMn)

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

![](/files/-LpK8KKpwWjXRmd6I83e)

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

![](/files/-LoNecrM0k6JBrO5xnMm)

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

![](/files/-LoImRoy9M4RVeS8gKoH)

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

![](/files/-Lw2S2DGwHkyKn-E2MQy)

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

![](/files/-M-i4WlnEnNOndU1UH_T)

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

![](/files/-LpTrEIyKTNaDd5ShehG)

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

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

![](/files/-LqvzKurSP958kbqZNvu)

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

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

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

![](/files/-LujiQ-1uQsdABR6MAXE)

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

![](/files/-Lr2mtQ2R8f0uEZb2mRV)

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

![](/files/-LuoOWF3YbSkgp6KYwRI)

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

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

![](/files/-LofQsQusBsaBYbD7GWf)

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

![](/files/-LoQj56fnpY7IvmJlGvZ)

## 🎥 ตัวอย่างการทำ 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 ได้อย่างมหาศาลเลยไงล่ะ
