Heroกู deploy Spring Boot for API

Phai Panda
4 min readMay 19, 2020

--

เมื่อผมนึกถึง host หรือ cloud สำหรับ deploy โปรแกรม Java แบบไวๆผมมักนึกถึง Heroku ครับ เขาทำมันให้ง่ายได้ มาดูกัน

Heroku Free Account

อันดับแรกเราต้องมี account (แบบฟรี) ของเขาเสียก่อน สมัครได้เลยนะครับ

Heroku deploy Java

หลังจากนั้นหา doc ของเขาแบบไวๆครับ Google ไปว่า (ผมใช้ Google Chrome นะ)

heroku deploy java

หัวข้อที่เราสนใจคือ

Getting Started on Heroku with Java | Heroku Dev Center

Heroku with Java tutorial

ความจริงแล้วลำดับขั้นตอนต่างๆชัดเจน สามารถทำตามได้เลย แต่ผมก็จะนำเสนอด้วยนะ

Create Spring Boot for API Project

มีโปรเจกต์ Spring Boot Web หรือยัง ถ้าไม่มี Google ไปว่า

spring init

ผมสร้างตัวอย่างขึ้นมา JDK 8 โดย Maven ชื่อ ShopDemo

และอย่าลืม spring boot starter web นะครับ

ตัว starter web นี้ใช้สร้าง API ได้ เพื่อนๆสามารถอ่านเพิ่มเติมได้ที่นี่

สำหรับใครก็ตามที่ใช้ IDEA เขียน Java เป็นทุนอยู่แล้ว ก็เปิดโปรเจกต์นี้ขึ้นมาครับ

intelliJ IDEA

ผมจะสร้าง controller ชื่อ ProductController อยู่ที่ package ชื่อ com.pros.ShopDemo.controller แต่ต้องการให้มันเป็นพิมพ์เล็กทั้งหมด ดังนั้นจึง rename เป็น com.pros.shopdemo.controller

สร้าง Get Method สำหรับขอรายการสินค้าทั้งหมด มีชนิดเป็น String[] (สตริงอาร์เรย์)

แหม ผมไม่ได้ค่าโฆษณานะบอกเลย

เมื่อรันโปรเจกต์ก็จะได้หน้าตาแบบนี้เมื่อเรียกด้วย browser

http://localhost:8080/products
มี /products api พร้อมใช้งานแล้ว

จนถึงตอนนี้ก็ได้ว่าเรามี API แล้วนะครับ ต่อไปก็จะนำมันไป deploy บน Heroku ล่ะ

Before Deploy

ตาม doc ของ Heroku ดูว่ามีสามอย่างนี้พร้อมแล้วหรือยัง หากยังก็ติดตั้งให้เรียบร้อยโดยคลิกที่ลิงก์

บอกกับมือใหม่ว่า Maven 3 ที่กล่าวถึงนี้ไม่ใช่ Maven เดิมที่ติดมากับ IDEA นะ ตรงนั้นก็ให้แยกไปต่างหาก (ปล่อยไป ไม่ต้องนำมาเกี่ยวข้องกัน) เพราะมันจัดการง่ายกว่า ให้ติดตั้ง Maven 3 แบบ global ไปเลยอีกตัว (ทำเป็นกันนะ เคร~)

ส่วน Heroku Command Line Interface หรือ Heroku CLI จำเป็นต้องมี Git ติดตั้งไว้ก่อน (required) และเราต้อง login เพื่อยืนยันตัวตนด้วย

ตรวจสอบสำหรับคนติดตั้งเรียบร้อยแล้ว

Java 8

java -version

Maven 3

mvn -version

Heroku CLI

ไปยังโปรเจกต์ Spring Boot ของเราครับ เปิด command line หรือ terminal ขึ้นมาจาก root ของโปรเจกต์แล้วพิมพ์

heroku login

จากนั้นมันจะเปิด browser ขึ้นมา

จัดการ login เลยนางหนู

เมื่อทำสำเร็จจะได้หน้าตาอย่างนี้

เห็นแล้วปิดหน้าต่างนี้ได้

ส่วนสถานะเราใน command line (terminal) ก็แบบนี้

เยี่ยมมากทหาร!

Deploy Spring Boot (Shop Demo) project to Heroku

นาทีสำคัญมาถึงแล้ว ที่นี่จะต้องมี git repository อยู่ด้วยนะ

ตรวจสอบว่า git ของโปรเจกต์พร้อมไหม

พิมพ์ git status กลับได้ผลลัพธ์เช่นนี้

ไม่พบ git ในโปรเจกต์

ฉะนั้น init git ก่อน

git init

จัดการ commit ให้เรียบร้อยนะนางหนู

git add .

ต่อด้วย

git commit -m "init project"

เรื่องของ git นี้เพื่อนๆที่ยังไม่คุ้นเคยสามารถหาอ่านจากบทความอื่นประกอบนะครับ

ตอนนี้เท่ากับว่าเรามี source code เก็บไว้ใน git ซึ่งตัว git ดูแลโปรเจกต์ของเราอยู่ ขั้นตอนถัดไปเราจะต้องทำให้ Heroku รู้จัก git นี้ผ่าน git remote

คำสั่งต่อไปนี้จะสร้าง Heroku application พร้อมกับ link ไปที่ git remote ให้อัตโนมัติ

heroku create

จากนั้นทดสอบว่า git remote ได้รู้จัก Heroku application นั้นแล้วหรือยัง

git remote -v

ผลลัพธ์

remote ก็คือ ปลายทางที่เราต้องการ push source ไป

รอช้าอยู่ใย push source ไปได้แล้ว

git push heroku master

ลองเข้าไปดูที่ Heroku website ที่ account ของเราเอง

my Heroku account

An Application is Running

ดูต่อครับว่ามัน running อยู่ไหม

heroku open

วู้ๆๆ ใช้ได้

ยอดเยี่ยมมาก

จากนั้นเรียก api /products ของเรา

.../products
สำเร็จ!

พวกเราทำได้นะ เยี่ยมมาก! ไว้พบกันใหม่ครับ

--

--

No responses yet