Skip to main content
0

สรุปสั้น ๆ

จากงาน Microsoft Ignite ปีนี้ Microsoft ได้ออกมาอัปเดตว่า Azure App Service ที่เป็นบริการเอาสำหรับโฮสต์เว็บแอปพลิเคชัน, เว็บ API หรือ Mobile Backend ได้มีการอัปเดตว่าเค้าได้มีการรองรับภาษา Go เพิ่มมาแล้วนะ 

แล้ววิธีการ Deploy Go Application ไปยัง Azure App Service จะมีวิธีอย่างไรไปดูกัน 🚀

เขียนโดย
Sirasit Boonklang (Aeff)
Tech and Coding Consultant

บทความนี้ตีพิมพ์ และ เผยแพร่เมื่อ 20 มกราคม 2566

สิ่งที่เราต้องมีก่อน

  1. Azure Account และ ทำการ Activate Subscription ให้เรียบร้อย หากใครยังไม่มีก็สามารถสร้าง account ก่อนได้ที่ https://azure.microsoft.com/en-us/free/?ref=microsoft.com&utm_source=microsoft.com&utm_medium=docs
  2. Go ที่มีเวอร์ชันมากกว่า 1.18 ติดตั้งในเครื่องให้เรียบร้อย

มาสร้างตัวอย่าง Go Application อย่างง่าย ๆ กัน

  1. ไปที่ Visual Studio Code แล้วใช้คำสั่ง `go mod init ตามด้วยชื่อ module`

โดยคำสั่ง go mod init มันจะสร้างไฟล์ go.mod มาให้ แล้วการที่เราใส่ path ด้านหลังนั้นเพื่อให้จัดการ และ เรียกใช้ง่ายขึ้น เช่น เวลาที่ต้องการนำโปรเจกต์นี้ไปทำเป็น package ของตัวเองก็สามารถเรียกใช้จาก Github ได้เลย เจ้าไฟล์ go.mod มีหน้าที่เก็บพวกชื่อ package และเวอร์ชันของ package ต่าง ๆ ที่ใช้กับโค้ดเราและเวอร์ชัน Go ที่โค้ดเราใช้ 

หน้าตาไฟล์ go.mod เริ่มต้น

  1. สร้างไฟล์ชื่อ main.go 

  1. ต่อมาเราจะมาเขียนไฟล์ที่เป็นโค้ดการทำงานของภาษา Go  โดยเริ่มจากสร้างไฟล์ main.go ที่เป็นไฟล์การทำงานหลักของภาษา Go (แต่จริง ๆ แล้วในการรัน Go สามารถตั้งชื่ออื่นนอกจาก main ก็รันได้นะ)เมื่อเรารู้จักกับไฟล์ main.go แล้วเราไปดูโค้ดตัวอย่างกันครับ

โค้ดนี้จะประกอบไปด้วย 4 ส่วน 

3.1 ประกอบ package main ว่าเป็น package หลัก

3.2 ส่วนในการเรียกใช้งานโมดูลที่เกี่ยวข้อง ในโปรเจกต์นี้จะมี fmt (fmt มันย่อมาจาก formatted เป็น package เอาไว้เรียกใช้งานตัวจัดการ input และ output) และ net/http (เป็น package ที่มี HTTP Client และ Server มาให้ใช้ เราสามารถเรียกใช้ method Get, Head, Post และ PostForm ได้)

3.3 ฟังก์ชัน HelloServer

ฟังก์ชัน HelloServer รับพารามิเตอร์สองตัว ได้แก่ ResponseWriter และ Request ResponseWriter ใช้เพื่อรอรับ Responese และ HTTP  Request โดยการทำงานในฟังก์ชันจะมีการใช้ fmt.Fprintf ถูกเรียกใช้ด้วย ResponseWriter (ในที่นี่อยู่ตัวแปร w) และตามด้วยข้อความ Hello และ %s ที่เอาไว้แสดงข้อมูลที่เป็น String โดยตอนนี้ข้อมูลที่จะมาแสดงนั้นเป็น Path ของ URL ของ Request

3.4 ฟังก์ชัน main ซึ่งจะเป็นฟังก์ชันการทำงานหลัก Go จะรันได้ต้องมีฟังก์ชัน main เท่านั้น โดยในฟังก์ชันนี้จะมีการเรียกใช้ แพ็คเกจ “net/http” ใช้ HTTP Client และ Server โดยฟังก์ชัน “http.HandleFunc” จะทำการ Register HandleFunc สำหรับกำหนดตัวจัดการ Request เข้ามาใน Path  (“/”) และ ฟังก์ชัน “http.ListenAndServe” จะทำการเริ่มรัน HTTP Server ด้วย โดยในที่นี้จะใช้เป็นพอร์ต :8080

  1. หลังจากเขียนโค้ดเสร็จก็ลองรันกันน ด้วยคำสั่ง go run main.go

  1. แล้วเราก็ลองเปิด Browser แล้วไปที่ http://localhost:8080/ จะพบกับข้อความ Hello, ! ออกมา

  1. หากเราต้องการให้ Hello แล้วตามด้วยข้อความเพิ่มเติม สามารถลองใส่ / แล้วตามด้วยข้อความเพิ่มไปได้ เช่น http://localhost:8080/Azure%20App%20Service

  1. เมื่อเรารันตัวอย่างได้แล้ว ต่อมาเป็นขั้นตอนการ Deploy หากใครยังไม่มี Azure Subscription แล้วต้องการทำตามบทความนี้ แอดก็เอาแหล่งในการ Activate Sandbox ของ Microsoft Learn ที่สามารถไปใช้ฟรี ๆ ได้ 4 ชั่วโมงสำหรับการทำแลปนี้ โดยไปที่ ลิงก์นี้ แล้วกด Activate Sandbox ได้เลย

  1. เมื่อ Sandbox ถูก Activate แล้วให้ไปที่ Visual Studio Code ดาวน์โหลด Azure App Service extension มา

  1. แล้วไปที่ Azure App Service extension แล้วคลิกขวา เลือก Create New Web App

  1. ทำการตั้งชื่อเว็บแอป โดยชื่อนี้จะไปอยู่ใน URL ด้วยนะ

  1. เลือก Runtime เป็น Go ตอนนี้จะมีให้เลือก 2 เวอร์ชัน คือ 1.19 และ 1.18

  1. Plan หรือ ระดับของบริการ หากใครต้องการแพลนฟรี สำหรับ Dev/Test ให้เลือกเป็น F1

  1. เมื่อ Azure App Service ของเราสร้างเสร็จแล้ว สร้างคลิกขวาที่ App Service ของเราแล้วกด Deploy to Web App ..

  1. เลือกโฟลเดอร์ที่ต้องการจะ Deploy แล้วกด Deploy ได้เลย

สำหรับขั้นตอนในการ Deploy เราสามารถมาดู Log ระหว่าง Deploy ได้ที่ OUTPUT ด้านล่าง 

เมื่อการ deployment completed แล้วให้ไปที่ App Service ของเรา คลิกขวาแล้วกด Browse Website ได้เลย

 เพิ่งเท่านี้เราก็สามารถเอาเว็บตัวอย่างของเรา Deploy ขึ้นไปบน Azure App Service ได้แล้ว เย้ 🎉

หากใครที่จะเริ่มต้นเรียนรู้ภาษา Go และเรียนรู้การใช้งาน Azure App Service อยากจะบอกดังๆว่า เรามีคอร์สฟรีที่ไม่ควรพลาด

Introduction to Go Programming Language

ใครยังไม่เคยลองใช้งานภาษา Golang มาลองดูกันสักนิดดีกว่า…ว่าเรียน Golang แล้วเราสามารถนำเอาไปใช้งานร่วมกับอะไรได้บ้าง ?
เรียกได้ว่าเป็นอีกหนึ่งภาษาที่ค่อนข้างมาแรงในช่วงนี้ ด้วยความเร็วแรงขั้นเทพที่มาพร้อมกับความสามารถที่หลากหลายทำให้ไม่น่าแปลกใจเลยที่จะเป็นหนึ่งในภาษายอดฮิตในช่วงที่ผ่านมา
 สำหรับใครที่ยังไม่ได้ลอง อย่าลืมไปลองกันดูนะครับ ไม่ผิดหวังแน่นอน แต่ถ้าใครเกร็ง ๆ กลัวว่าจะยากไปหรือเรียนรู้เองแล้วไม่เข้าใจ ไม่เป็นไรครับเพราะ borntoDev เรามีคอร์สเรียนฟรีภาษา Golang ให้ลองเรียนกันแบบง่าย ๆ เข้าใจไวไว เรียนจบได้ Certifaicate ด้วยนะ ลงทะเบียนเรียนฟรีได้ที่ : คลิกที่นี่

Get started with Azure App Service

คอร์สเรียนที่คุณจะได้เรียนรู้ตั้งแต่เริ่มต้นพื้นฐานไปจนถึงการนำ Web Application ขึ้นไปรันบนระบบคลาวด์ พร้อมกับการใช้งานฟีเจอร์ต่าง ๆ ที่หลากหลายใน Azure App Service เนื้อหาจัดเต็มกว่า 20 ตอน ! เรียนจริง ลงมือทำจริง ได้ผลงานของตัวเองจริง ๆ !! ลงทะเบียนเรียนฟรีได้ที่ : คลิกที่นี่

ระบบฝึกทักษะ การเขียนโปรแกรม

ที่พร้อมตรวจผลงานคุณ 24 ชั่วโมง

  • โจทย์ปัญหากว่า 200 ข้อ ที่รอท้าทายคุณอยู่
  • รองรับ 9 ภาษาโปรแกรมหลัก ไม่ว่าจะ Java, Python, C ก็เขียนได้
  • ใช้งานได้ฟรี ! ครบ 20 ข้อขึ้นไป รับ Certificate ไปเลย !!
เข้าใช้งานระบบ DevLab ฟรี !เรียนรู้เพิ่มเติม

เรียนรู้ไอที “อัพสกิลเขียนโปรแกรม” จากตัวจริง
ปั้นให้คุณเป็น คนสายไอทีระดับมืออาชีพ

BorntoDev

Author BorntoDev

BorntoDev Co., Ltd.

More posts by BorntoDev

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

ตั้งค่าความเป็นส่วนตัว

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

ยอมรับทั้งหมด
จัดการความเป็นส่วนตัว
  • คุกกี้ที่จำเป็น
    เปิดใช้งานตลอด

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

  • คุกกี้สำหรับการติดตามทางการตลาด

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

บันทึกการตั้งค่า