CLOUD PAAS / DATABASE

วิธีติดตั้ง 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

การ Deploy แบบอัตโนมัติ กับฐานข้อมูล PostgreSQL

1. เข้าสู่ระบบเข้าสู่แดชบอร์ดแล้วคลิก link # Marketplace ที่มุมบนซ้าย

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

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

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

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

https://raw.githubusercontent.com/hasura/graphql-engine/master/install-manifests/docker-compose/docker-compose.yaml

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

หมายเหตุการติดตั้งต้องใช้ไอพีสาธารณะซึ่งเป็นตัวเลือกแบบชำระเงินสำหรับผู้ใช้ที่เรียกเก็บเงินเท่านั้น

กำหนดค่าฟิลด์ Environment ที่เหลือชื่อที่แสดง, ภูมิภาค(ถ้ามี) ตามความต้องการแล้วคลิกติดตั้ง

4. หลังจากติดตั้งสำเร็จคุณสามารถเข้าถึงคอนโซล Hasura เพื่อให้แน่ใจว่าทุกอย่างทำงานได้อย่างถูกต้อง http://{envDomain}:8080/console

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

ตอนนี้คุณสามารถให้ข้อมูลสำหรับฐานข้อมูลของคุณผ่านแท็บชื่อเดียวกันที่ด้านบนและลองใช้ GraphQL queries ในภายหลัง

การ Deploy Hasura กับ PostgreSQL ภายนอก

ในกรณีที่คุณมีฐานข้อมูลอยู่แล้วคุณสามารถเชื่อมต่อกับเครื่องยนต์ Hasura GraphQLได้

1. กดตัวเลือก Create a clean standalone engine จากหน้าต่าง Docker Engine CE ผ่านรักคอม คลาวด์ มาร์เก็ตเพลส.

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

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
ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

สำหรับข้อมูลโดยละเอียดเกี่ยวกับคำสั่ง 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
ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

คุณสามารถรันคำสั่ง docker ps เพิ่มเติมเพื่อให้แน่ใจว่าบริการ Hasura พร้อมทำงานแล้ว

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

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

ตามการตั้งค่าของเราควรระบุ secret key ของแอดมินเพื่อเข้าถึงคอนโซล (ในกรณีของเรา คือ myadminsecretkey)

5. ตอนนี้คุณสามารถเริ่มทำงานกับฐานข้อมูลของคุณผ่าน GraphQL API ตัวอย่างเช่นจากแท็บ GraphiQL

หมายเหตุ
หากมีตารางอยู่แล้วนั่นควรถูกติดตามโดย Hasura ไปที่แท็บ Data และอนุญาตให้เข้าถึงข้อมูลที่ต้องการ

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS
ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

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