วิธีติดตั้ง Hasura GraphQL Engine
คู่มือนี้เรียบเรียงและปรับรูปแบบสำหรับ Ruk-Com Cloud PaaS ภาพหน้าจออาจแตกต่างเล็กน้อยตามเวอร์ชันของระบบ
คลิกหรือแตะภาพหน้าจอเพื่อดูรายละเอียดขนาดจริง
วัตถุประสงค์
บทความนี้อธิบายการใช้งาน วิธีติดตั้ง Hasura GraphQL Engine บน Ruk-Com Cloud PaaS โดยจัดลำดับขั้นตอนและจุดตรวจสอบสำหรับการนำไปใช้งานจริง
ก่อนเริ่มดำเนินการ
- เข้าสู่ระบบด้วยบัญชีที่มีสิทธิ์จัดการ Environment ที่เกี่ยวข้อง
- ตรวจสอบชื่อ Environment, Region และทรัพยากรเป้าหมายก่อนบันทึกการเปลี่ยนแปลง
- สำรองข้อมูลหรือกำหนดแผนย้อนกลับก่อนแก้ไขระบบ Production
ฮาซูระเป็นเอ็นจิ้นโอเพ่นซอร์สที่ใช้ภาษา GraphQL query สำหรับ API ช่วยให้คุณสร้างการเชื่อมต่อ, จัดการและกำหนดค่า event triggers สำหรับฐานข้อมูล PostgreSQL ได้ในไม่กี่นาที
ในบทนี้เราจะแสดงตัวอย่าง 2 ตัวอย่างของการติดตั้ง Hasura GraphQL engine ที่ Ruk-Com PaaS
- การปรับใช้อัตโนมัติด้วยฐานข้อมูล PostgreSQL ในเครื่อง
- การปรับใช้ด้วยตนเองกับฐานข้อมูล PostgreSQL ภายนอก
การ Deploy แบบอัตโนมัติ กับฐานข้อมูล PostgreSQL
1. เข้าสู่ระบบเข้าสู่แดชบอร์ดแล้วคลิก link # Marketplace ที่มุมบนซ้าย

2. ค้นหาแพ็คเกจ Docker Engine CE และเริ่มการติดตั้ง

3. ในการสร้างฐานข้อมูล Hasura และ PostgreSQL โดยอัตโนมัติในคอนเทนเนอร์เดียวกันให้เลือก Deploy containers from compose.yml และระบุการกำหนดค่าเริ่มต้นจาก repositoryฮาซูราบนDocker

หมายเหตุการติดตั้งต้องใช้ไอพีสาธารณะซึ่งเป็นตัวเลือกแบบชำระเงินสำหรับผู้ใช้ที่เรียกเก็บเงินเท่านั้น
กำหนดค่าฟิลด์ Environment ที่เหลือชื่อที่แสดง, ภูมิภาค(ถ้ามี) ตามความต้องการแล้วคลิกติดตั้ง
4. หลังจากติดตั้งสำเร็จคุณสามารถเข้าถึงคอนโซล Hasura เพื่อให้แน่ใจว่าทุกอย่างทำงานได้อย่างถูกต้อง http://{envDomain}:8080/console

ตอนนี้คุณสามารถให้ข้อมูลสำหรับฐานข้อมูลของคุณผ่านแท็บชื่อเดียวกันที่ด้านบนและลองใช้ GraphQL queries ในภายหลัง
การ Deploy Hasura กับ PostgreSQL ภายนอก
ในกรณีที่คุณมีฐานข้อมูลอยู่แล้วคุณสามารถเชื่อมต่อกับเครื่องยนต์ Hasura GraphQLได้
1. กดตัวเลือก Create a clean standalone engine จากหน้าต่าง Docker Engine CE ผ่านรักคอม คลาวด์ มาร์เก็ตเพลส.

2. หลังจากสร้างแล้วให้เชื่อมต่อกับคอนเทนเนอร์ผ่านเว็บ SSHและสร้างไฟล์ที่มีเนื้อหาต่อไปนี้ (เช่น nano docker-run.sh)):
docker run -d --restart=always -p 80:8080 \
-e HASURA_GRAPHQL_DATABASE_URL=postgres://{username}:{password}@{host}/{dbname} \
-e HASURA_GRAPHQL_ENABLE_CONSOLE=true \
-e HASURA_GRAPHQL_ADMIN_SECRET=myadminsecretkey \
hasura/graphql-engine:v1.0.0

สำหรับข้อมูลโดยละเอียดเกี่ยวกับคำสั่ง docker run โปรดดูเอกสารอย่างเป็นทางการ ในกรณีของเราพารามิเตอร์มีดังต่อไปนี้
- d - รัน Service ใน background (แบบ deamon)
- –restart=always - เพื่อเริ่ม daemon เสมอ (เช่นหลังจากรีสตาร์ทคอนเทนเนอร์)
- -p 80:8080 - กำหนดค่าการเปลี่ยนเส้นทางพอร์ตจากพอร์ต 80 ของคอนเทนเนอร์ Docker Engine ไปยัง 8080 หนึ่งใน Hasura image ที่ทำงานอยู่ภายใน
- -e – ตั้งค่าตัวแปร Env (ดู link #รายการทั้งหมดสำหรับรายละเอียดเพิ่มเติม)
- HASURA_GRAPHQL_DATABASE_URL - ลิงก์การเชื่อมต่อไปยังฐานข้อมูล PostgreSQL ของคุณโดยมีอักขระพิเศษที่เข้ารหัส URL (หากอยู่ที่ Ruk-Com สามารถดูรายละเอียดที่ต้องการได้ในอีเมลหลังการสร้าง PostgreSQL)
- HASURA_GRAPHQL_ENABLE_CONSOLE - เปิดใช้คอนโซล Hasura
- HASURA_GRAPHQL_ADMIN_SECRET – กำหนดค่า secret key ของแอดมินเพื่อเข้าถึงคอนโซล ในกรณีของเรา คือ myadminsecretkey - hasura/graphql-engine:v1.0.0 - Docker image ที่จะติดตั้ง
3. ทำให้ไฟล์นี้สามารถเรียกใช้งานได้และเรียกใช้เพื่อสร้างคอนเทนเนอร์ Hasura Docker
chmod +x docker-run.sh
sh docker-run.sh

คุณสามารถรันคำสั่ง docker ps เพิ่มเติมเพื่อให้แน่ใจว่าบริการ Hasura พร้อมทำงานแล้ว
4. ในกรณีของเราแอปพลิเคชันคอนโซลอยู่บนพอร์ต 80 เพื่อให้คุณสามารถคลิก Open in Browser ถัดจาก Env ของคุณเพื่อเปลี่ยนเส้นทางอัตโนมัติ มิฉะนั้นควรเพิ่มพอร์ตที่จำเป็นใน Env URL ด้วย

ตามการตั้งค่าของเราควรระบุ secret key ของแอดมินเพื่อเข้าถึงคอนโซล (ในกรณีของเรา คือ myadminsecretkey)
5. ตอนนี้คุณสามารถเริ่มทำงานกับฐานข้อมูลของคุณผ่าน GraphQL API ตัวอย่างเช่นจากแท็บ GraphiQL
หมายเหตุ
หากมีตารางอยู่แล้วนั่นควรถูกติดตามโดย Hasura ไปที่แท็บ Data และอนุญาตให้เข้าถึงข้อมูลที่ต้องการ


หรือคุณสามารถใช้ GraphQL Endpoint (ระบุไว้ที่ด้านบนสุดของหน้า) เพื่อสร้างคำขอ POST ของคุณไปยังฐานข้อมูลผ่านเครื่องมือหรือสคริปต์ที่ต้องการ