Warning: in_array() expects parameter 2 to be array, string given in /home/content/31/10462331/html/babedev/blog/wp-content/plugins/facebook-button-plugin/facebook-button-plugin.php on line 380

Warning: in_array() expects parameter 2 to be array, string given in /home/content/31/10462331/html/babedev/blog/wp-content/plugins/facebook-button-plugin/facebook-button-plugin.php on line 383

ไร้สาระมาหลาย entry วันนี้กลับมาเรื่อง programming ดีกว่า

ก่อนหน้านี้เขียนเกี่ยวกับ Android ไป 2 อัน รอบนี้เปลี่ยนแนวมาดูเรื่อง backend กันบ้าง วันนี้ผมจะมานำเสนอการเขียน web app ด้วย GO เบื้องต้น และการนำ app ขึ้น Google App Engine


GO คืออะไร??

GO คือกริยาช่อง 1 ที่มีความหมายว่า “ไป”……. เอ๊ย ไม่ใช่!!!! GO คือ programming language ที่ถูกพัฒนาโดย Google มีจุดประสงค์เพื่อใช้เขียน backend เป็นหลัก เป็นภาษาที่ได้รับการพัฒนาต่อมาจาก C\C++ อีกที ทำให้ syntax บางอย่างคล้าย C (แต่เท่าที่ผมส่องดู มันคล้าย python มากกว่า) สำหรับข้อมูล GO สามารถหาได้ ที่นี้ ถ้ามีโอกาสผมจะกลับมาเขียนเกี่ยวกับ GO Lang นะครับ


GAE คือ?

มันคือระบบ Cloud Service ของ Google แบบเดียวกับ AWS, Heroku ประมาณนั้น แต่สิ่งที่น่าสนใจของ GAE นั้นก็คือ…… มันฟรีครับ จะมี Cloud Hosting เจ้าไหนยอมให้ลองใช้ฟรี แทบไม่มีขีดจำกัดได้แบบ Google บ้าง ถึงแม้ว่าการใช้งานแบบฟรี จะต้องติด sub domain “.appspot” แต่เท่านี้ก็เพียงพอต่อการสร้าง web service ล่ะ เพราะฉะนั้น GAE จึงเป็นที่นิยมในการ deploy web service มากมาย

และเช่นกัน ไว้ถ้ามีโอกาส ผมจะกลับมาบรรยายความสุดยอดของบริการ GAE (จริงๆต้องเรียกว่า Google Cloud Platform) ให้อ่านกันครับ ส่วนตอนนี้…. เชิญติดตามข้อมูลได้ ที่นี้ ครับ


รู้สึกเหมือนข้าม step ยังไงชอบกล แต่ entry นี้ผมขอติ๊ต่างว่าทุกท่านสามารถเขียน GO เป็น และใช้งาน GAE เป็นแล้วกันนะครับ สำหรับ app ที่จะนำขึ้น GAE จะเป็น web front end ง่ายๆ ที่แสดงข้อความ “こんにぢは世界”

เริ่มกันเลยดีกว่า สำหรับการพัฒนา GO บน GAE จะต้องการ Tools ดังต่อไปนี้

  1. Python 2.7 ย้ำว่าต้อง 2.7 นะครับ เพราะเวอร์ชั่น 3 อาจทำงานผิดเพี้ยนได้
  2. GO GAE SDK อันนี้จะมาทั้ง GO compiler และ GAE SDK ติดมาเลย

เมื่อติดตั้งเสร็จเรียบร้อย อย่าลืมตั้ง PATH ให้ GO SDK ด้วยนะครับ

เสร็จแล้วมาสร้างไฟล์ที่จะใช้ deploy กันดีกว่า เริ่มด้วย

  1. main.go ไฟล์ที่จะใช้ compile เพื่อแสดงผลบนเว็บ
  2. app.yaml เป็น project configuration สำหรับกำหนดค่าต่างๆ

มาเริ่มเขียนไฟล์ GO ก่อน โดยให้ Fprint ข้อความ こんにぢは世界

จาก code จะตั้งให้ถูก route ที่วิ่งเข้ามาไปหา function ชื่อ handler หมด และทำการ print ข้อความออกมา

สำหรับไฟล์ app.yaml จะมีให้ set หลักๆคือ

  1. application จะเป็น project ID ที่สร้างขึ้นมาใน Cloud Platform
  2. module ถ้ามีอันเดียวให้ตั้ง default ไว้ (หรือก็คือต้องมี default อย่างน้อย 1 อัน)
  3. version ก็ version ของ app
  4. runtime แน่นอน เราจะใช้ GO
  5. api_version จากคำแนะนำของ Google ให้ตั้ง go1 ไว้
  6. handlers จะเป็นเรื่องการตั้ง route

เมื่อมี 2 ไฟล์พร้อมแล้วให้ใช้คำสั่ง

เพื่อทำการ run บน localhost ก่อน เช็คความถูกต้องก่อน deploy และถ้าโอเคแล้วก็ใช้

command จะขึ้นถาม email ให้ใส่ gmail ที่สร้าง project ID ไป ส่วน password ถ้า gmail มีการทำ 2-step authentication ไว้ ให้ไป generate password ที่นี้

เลือกแถบ App-specific passwords > Manage application-specific passwords

2step_app

หน้านี้นี้ให้เลือก Select app เป็น Other และใส่ชื่อที่ต้องการ จากนั้นกด Generate ก็จะได้รหัสผ่านในช่องสีเหลืองเพื่อเอาไปใช้ในการ deploy

gen_password

กลับมาที่ command เมื่อใส่รหัสผ่านเรียบร้อย ระบบจะทำการ upgrade app ขึ้นไป ซึ่งจะใช้เวลาซักครู่ พอเสร็จแล้วให้เข้า URL ด้วยชื่อ project ID ตามด้วย .appspot.com ในกรณีของ app นี้ก็จะเป็น http://natural-cistern-665.appspot.com/

deployed

สำหรับการนำ GO app ขึ้น GAE ก็จบแต่เพียงเท่านี้ หวังว่าจะพอมีประโยชน์บ้างนะครับ ขอให้ทุกท่านสนุกกับการ programming สวัสดี ราตรีสวัสดิ์ครัช

おやすみなさい