การใช้งาน Ruk-Com PaaS Cloud API
คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี
ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง
วัตถุประสงค์
บทความนี้อธิบายการใช้งาน Ruk-Com PaaS Cloud API บน Ruk-Com Cloud PaaS โดยจัดลำดับขั้นตอนและจุดตรวจสอบสำหรับการนำไปใช้งานจริง
ก่อนเริ่มดำเนินการ
- เข้าสู่ระบบด้วยบัญชีที่มีสิทธิ์จัดการ Environment ที่เกี่ยวข้อง
- ตรวจสอบชื่อ Environment, Region และ Resource เป้าหมายก่อนบันทึกการเปลี่ยนแปลง
- สำรองข้อมูลหรือกำหนดแผนย้อนกลับก่อนแก้ไขระบบ Production
Ruk-Com PaaS Cloud API ช่วยให้นักพัฒนาดำเนินการตั้งค่าที่จำเป็นสำหรับ application's lifecycle และขยายฟังก์ชันการทำงานของ Platform ของเราโดยการรวมบริการอื่นๆ การใช้ API คุณสามารถสร้างโปรแกรม environment, deploy แอปและทำงานอื่นๆที่สามารถทำได้ก่อนหน้านี้ผ่าน Dashboard
Ruk-Com PaaS API ปฏิบัติตามทฤษฎี REST;ส่วนที่เหลือ APIกำหนดชุดของฟังก์ชันที่นักพัฒนาสามารถ request ได้และจะได้รับ response การโต้ตอบจะดำเนินการผ่าน Protocol HTTPS ข้อดีของวิธีการดังกล่าวคือการขยาย Protocol HTTPS ให้กว้างขึ้นซึ่งทำให้ REST API สามารถใช้ได้กับการเขียนโปรแกรมเกือบทุกภาษา
คำขอ Ruk-Com PaaS API
คำขอทั้งหมดของ API method คือ GET หรือ POST HTTPS-requests ไปยัง URL พร้อมกับชุด Parameter:
ประเภทของ URL ที่ควรใช้มีการระบุไว้ในแต่ละวิธีที่ช่อง REST
ข้อมูลของคำขอสามารถส่งเป็น query string (หลังเครื่องหมาย “?”) ในขณะที่ใช้ method GET หรือในเนื้อหาของ POST request ในกรณีของ GET request Parameter จะต้องเข้ารหัสแบบเปอร์เซ็นต์ (URL encoding)
หมายเหตุ:ตั้งแต่เวอร์ชัน Jalastic 5.1 จะไม่รองรับ method GET ภายใน API requests เนื่องจากเหตุผลด้านความปลอดภัย:
เข้าสู่ระบบ-https://[hoster-api-host]/1.0/users/authentication/rest/signin?เข้าสู่ระบบ=[string]&password=[string]
สมัครสมาชิก-https://reg.[hoster-domain]/signup?อีเมล=[string]
เปลี่ยนรหัสผ่าน-https://[hoster-api-host]/1.0/users/account/rest/changepassword?oldPassword=[string]&newPassword=[string]session=[string]
เพื่อเป็นการเตือนความจำมีการจำกัดความยาวของ URL request - 2048 characters เราจึงแนะนำให้ใช้:
- GET request เพื่อรับข้อมูลจาก Database มาแสดงผล
- POST request ใช้สำหรับการเปลี่ยนแปลงข้อมูล (การสร้าง environment, การเปลี่ยนไฟล์การกำหนดค่า ฯลฯ)
ด้วยวิธีนี้คุณจะไม่ถูกจำกัดความยาวของ request นอกจากนี้การใช้งานดังกล่าวมีความเกี่ยวข้องกับข้อกำหนด Protocol HTTPS มากขึ้น Ruk-Com PaaS API methods ทั้งหมดต้องยืนยันตัวตนและรายละเอียดเป้าหมายการดำเนินการ ซึ่งจัดเตรียมให้ผ่าน ParameterSessionและenvNameตามลำดับ
หมายเหตุ:หากไม่มีอาร์กิวเมนต์envNameในคำอธิบาย method จะถูกนำไปใช้กับบัญชี/Platform ทั้งหมดโดยที่เลิกใช้สมัครซึ่งก่อนหน้านี้ใช้เพื่อกำหนดเป้าหมายการดำเนินการ ควรถูกละเว้น
text value ของ Parameter ควรระบุใน Code UTF-8 ลำดับของ Parameter ใน requset นั้นไม่สำคัญ
การตอบสนองของ Ruk-Com PaaS API
request และ response จะเข้ารหัสแบบ UTF-8 สำหรับการ response ฟังก์ชัน API จะมีให้ในรูปแบบเจสันตัวอย่างวิธีการนี้จะอยู่ในเอกสารด้านล่าง
การดำเนินการ Ruk-Com PaaS API
ในการเริ่มการทำงานอัตโนมัติของกระบวนการ Ruk-Com PaaS API คุณต้องปฏิบัติตามข้อกำหนดต่อไปนี้:
- คุณต้องลงทะเบียนกับผู้ให้บริการ Hosting
หากคุณใช้ Maven ให้เพิ่ม dependency ต่อไปนี้ในpom.xml
<dependency>
<groupId>com.jelastic</groupId>
<artifactId>jelastic-public-j2se</artifactId>
<version>3.1</version>
</dependency>
ในการเรียกใช้ฟังก์ชัน API คุณจะต้องตรวจสอบ Parameter "session" มีหน้าที่ในการตรวจสอบสิทธิ์ เช่นระบุผู้ใช้ด้วย request ซึ่ง Session สามารถทำได้โดยการใช้ method:ผู้ใช้ > การรับรองความถูกต้อง > ลงชื่อเข้าใช้
โดยการเข้าสู่ระบบและรหัสผ่านคือบัญชี Ruk-Com Cloud ของคุณ
การเรียกใช้ฟังก์ชัน API ควรดำเนินการด้วย session value ที่ได้รับหากต้องการดำเนินการ Session การทำงานให้เสร็จสิ้นด้วย API ให้ไปที่ผู้ใช้ > การรับรองความถูกต้อง > ออกจากระบบ
ด้วยความช่วยเหลือจาก Ruk-Com PaaS Java Client Library คุณสามารถดำเนินการต่างๆได้อัตโนมัติโดยการเชื่อมต่อกับการจัดการ Application lifecycle ยกตัวอย่างเช่น การสร้าง environment, การเปลี่ยนสถานะ การลบ การ RestartNode การ deploy Application ฯลฯ
ดังนั้นมาดูวิธีการสร้าง environment ด้วย Topology แบบกำหนดเองและการตั้งค่าการใช้ Ruk-Com PaaS Java Client Library
การสร้าง environment
ตัวอย่างเวอร์ชันเต็มเกี่ยวกับการสร้าง environment ในเอกสาร Ruk-Com PaaS API(แท็บตัวอย่าง Ruk-Com PaaS Java) โดยเราจะอธิบายขั้นตอนหลักๆดังนี้:
1. สร้าง environment ใหม่แบบ public class ซึ่งจะรวมบล็อกและ Parameter ต่อไปนี้ทั้งหมด Parameter บล็อกแรกควรมีสตริงนี้:
private final static String HOSTER_URL = "<hoster-url>";
private final static String USER_EMAIL = "<email>";
private final static String USER_PASSWORD = "<password>";
private final static String ENV_NAME = "test-api-environment-" + new Random().nextInt(100);
โดยที่:
- <hoster-URL>- URL ของผู้ให้บริการ Hosting (Hoster’s URL / API) เช่นapp.manage.ruk-com.cloud
- <อีเมล>- อีเมลที่คุณสมัคร Ruk-Com Cloud (เข้าสู่ระบบ)
- <รหัสผ่าน>- รหัสผ่านของคุณสำหรับบัญชี Ruk-Com Cloud
2. จากนั้นกำหนดค่าการยืนยันตัวตนซึ่งจะใช้การเข้าสู่ระบบและรหัสผ่านที่คุณระบุไว้ข้างต้น
public static void main(String[] args) {
System.out.println("Authenticate user...");
AuthenticationResponse authenticationResponse = authenticationService.signin(USER_EMAIL, USER_PASSWORD);
System.out.println("Signin response: " + authenticationResponse);
if (!authenticationResponse.isOK()) {
System.exit(authenticationResponse.getResult());
}
final String session = authenticationResponse.getSession();
หลังจากการรับรองความถูกต้อง Session ใหม่ที่ไม่ซ้ำกันจะถูกสร้างขึ้นโดยจะใช้สำหรับดำเนินการที่จำเป็นภายในบัญชีผู้ใช้ การเรียกใช้ฟังก์ชัน API เพิ่มเติมทั้งหมดควรดำเนินการภายใน Session นี้ซึ่งคุณจะยังคงใช้ได้จนถึงการเรียก Signout method
3. ขั้นตอนต่อไปคือการรับรายการของ engines ที่พร้อมใช้งานสำหรับการระบุ<ประเภทเครื่องยนต์>(อาจเป็น java, php, ruby, js เป็นต้น)
System.out.println("Getting list of engines...");
ArrayResponse arrayResponse = environmentService.getEngineList(session, "<engine_type>");
System.out.println("GetEngineList response: " + arrayResponse);
if (!arrayResponse.isOK()) {
System.exit(arrayResponse.getResult());
}
4. หลังจากได้รับรายการ Template ของ Node ที่พร้อมใช้งานทั้งหมดสำหรับการระบุ<templates_type>ซึ่งสามารถเป็น:
- ALL - PlatformTemplate ที่มีอยู่ทั้งหมด เช่น native และ cartridges
- NATIVE - ค่าเริ่มต้นของ TemplateNode
- CARTRIDGE - Template ที่กำหนดเองซึ่งผู้ให้บริการ Host จะเพิ่มลงใน Platform เป็นคาร์ทริดจ์
System.out.println("Getting list of templates...");
arrayResponse = environmentService.getTemplates(session, "<templates_type>", false);
System.out.println("GetTemplates response: " + arrayResponse);
if (!arrayResponse.isOK()) {
System.exit(arrayResponse.getResult());
}
5. บล็อกถัดไปมีไว้สำหรับการกำหนดค่าและการตั้งค่าแบบกำหนดเองของ environment และ Server ใหม่ คุณสามารถดูรายละเอียดเพิ่มเติมเกี่ยวกับ Parameter JSON ที่ใช้ในการกำหนด environment topology ได้ที่นี่:
JSONObject env = new JSONObject()
.put("ishaenabled", false)
.put("engine", "php5.5")
.put("shortdomain", ENV_NAME);
JSONObject apacheNode = new JSONObject()
.put("nodeType", "apache2")
.put("extip", false)
.put("count", 1)
.put("fixedCloudlets", 1)
.put("flexibleCloudlets", 4);
JSONObject mysqlNode = new JSONObject()
.put("nodeType", "mysql5")
.put("extip", false)
.put("fixedCloudlets", 1)
.put("flexibleCloudlets", 4);
JSONObject memcachedNode = new JSONObject()
.put("nodeType", "memcached");
JSONArray nodes = new JSONArray()
.put(apacheNode)
.put(mysqlNode)
.put(memcachedNode);
6. ขั้นตอนสุดท้าย สร้าง environment ใหม่โดยการระบุการตั้งค่าทั้งหมด:
System.out.println("Creating environment...");
ScriptEvalResponse scriptEvalResponse = environmentService.createEnvironment(session,
"createenv", env.toString(), nodes.toString());
System.out.println("CreateEnvironment response: " + scriptEvalResponse);