ใช้โปรแกรมจำลอง SQL Connect สำหรับ CI/CD

Firebase SQL Connect มีโปรแกรมจำลองในเครื่องสำหรับการสร้างต้นแบบแบบครบวงจร รวมถึงการรวมอย่างต่อเนื่องและการติดตั้งใช้งานอย่างต่อเนื่อง (CI/CD) ดังนี้

  • โปรแกรมจำลอง SQL Connect จะโต้ตอบกับอินสแตนซ์ฐานข้อมูล PGLite ที่ผสานรวมในเครื่อง เพื่อให้คุณสร้างต้นแบบการค้นหาและการเปลี่ยนแปลง รวมถึงทดสอบ โค้ดฝั่งไคลเอ็นต์ในสภาพแวดล้อมในเครื่องอย่างเต็มรูปแบบ
  • นอกจากนี้ยังใช้โปรแกรมจำลอง SQL Connect สำหรับงานที่ไม่ต้องโต้ตอบได้ด้วย ซึ่งช่วยให้คุณเรียกใช้การทดสอบอัตโนมัติและเหมาะสําหรับใช้กับเวิร์กโฟลว์ CI/CD ซึ่งจะมีประโยชน์เมื่อสคีมามีความเสถียรและคุณต้องการสร้างต้นแบบ และทดสอบโค้ดฝั่งไคลเอ็นต์

คู่มือนี้ครอบคลุมการติดตั้งและการใช้งานโปรแกรมจำลองอย่างละเอียดกว่า คู่มือเริ่มใช้งานฉบับย่อ

ติดตั้งโปรแกรมจำลอง SQL Connect

ก่อนติดตั้ง Local Emulator Suite เพื่อใช้โปรแกรมจำลอง SQL Connect คุณจะต้องมีสิ่งต่อไปนี้

  • Node.js เวอร์ชัน 18.0 ขึ้นไป

ติดตั้ง Firebase CLI และตั้งค่าไดเรกทอรีโปรเจ็กต์

  1. ติดตั้ง Firebase CLI โดยทำตามคู่มือการติดตั้ง อย่าลืมอัปเดตเป็นประจำ เนื่องจากเรากำลังพัฒนาโปรแกรมจำลอง SQL Connect อย่างต่อเนื่องพร้อมทั้งแก้ไขข้อบกพร่องและ เพิ่มฟีเจอร์ใหม่ๆ

  2. หากยังไม่ได้ดำเนินการ ให้เริ่มต้นไดเรกทอรีการทำงานปัจจุบันเป็น โปรเจ็กต์ Firebase โดยทำตามข้อความแจ้งเพื่อระบุผลิตภัณฑ์ที่จะใช้

    firebase init

ตั้งค่าหรือแก้ไขการกำหนดค่า Local Emulator Suite

หากคุณเริ่มSQL Connectโปรแกรมจำลองจากส่วนขยาย SQL Connect ของ VS Code ระบบจะติดตั้งโปรแกรมจำลองให้คุณหากจำเป็น

คุณใช้ Firebase CLI เพื่อติดตั้งโปรแกรมจำลองด้วยตนเองพร้อมกับ คอมโพเนนต์อื่นๆ ที่เลือกของ Local Emulator Suite ได้ คำสั่งนี้จะเริ่มวิซาร์ดการกำหนดค่าที่ให้คุณเลือกโปรแกรมจำลองที่สนใจ ดาวน์โหลดไฟล์ไบนารีของโปรแกรมจำลองที่เกี่ยวข้อง และตั้งค่าพอร์ตของโปรแกรมจำลองหากค่าเริ่มต้นไม่เหมาะสม

  firebase init emulators

เมื่อติดตั้งโปรแกรมจำลองแล้ว ระบบจะไม่ตรวจหาการอัปเดตและจะไม่มีการดาวน์โหลดอัตโนมัติเพิ่มเติม จนกว่าคุณจะอัปเดต Firebase CLI เวอร์ชัน

เลือกโปรเจ็กต์ Firebase

ในขั้นตอนการตั้งค่า Firebase CLI จะแจ้งให้คุณเลือกหรือสร้าง โปรเจ็กต์ Firebase หากเลือกโปรเจ็กต์ที่มีอยู่ซึ่งคุณตั้งค่าด้วย SQL Connect แล้ว ระบบจะแนะนำการกำหนดค่าที่คุณเลือกในระหว่างการตั้งค่าโปรเจ็กต์

ตั้งค่าโปรแกรมจำลอง

กำหนดค่าโปรแกรมจำลอง

การเรียกใช้โฟลว์ firebase init จะแนะนำตัวเลือกการตั้งค่าโปรแกรมจำลองให้คุณ เช่นเดียวกับโปรแกรมจำลองอื่นๆ ใน Local Emulator Suite พารามิเตอร์การกำหนดค่า จะจัดเก็บไว้ในไฟล์โปรเจ็กต์ในเครื่อง

  • ไฟล์ firebase.json ของคุณมีการกำหนดพอร์ตของโปรแกรมจำลอง
    • คีย์ emulators:ui ใช้ไม่ได้กับโปรแกรมจำลอง SQL Connect

ทำงานร่วมกับแหล่งข้อมูลSQL Connectในเครื่องและเวอร์ชันที่ใช้งานจริง

หากต้องการให้มั่นใจว่าจะไม่ส่งผลต่อทรัพยากรการผลิต ให้ตั้งค่า demo- projectID หรือตรวจสอบว่าโค้ดไคลเอ็นต์ได้รับการติดตั้งเครื่องมือเพื่อเชื่อมต่อกับ โปรแกรมจำลองตามที่อธิบายไว้ในส่วนถัดไป

เริ่มโปรแกรมจำลอง

หากเรียกใช้โปรแกรมจำลองแบบไม่โต้ตอบ เช่น สำหรับเวิร์กโฟลว์ CI/CD ให้เริ่มต้นด้วยตัวเลือก exec

firebase emulators:exec ./path/to/test-script.sh

หากคุณผสานรวมการค้นหาและการเปลี่ยนแปลงที่กำหนดไว้ล่วงหน้าในโค้ดฝั่งไคลเอ็นต์และใช้โปรแกรมจำลองสำหรับการทดสอบไคลเอ็นต์โดยเฉพาะ คุณสามารถใช้start เพื่อการทำงานแบบอินเทอร์แอกทีฟได้ นอกจากนี้ คุณยังเริ่มโปรแกรมจำลองจากส่วนขยาย SQL Connect VS Code ได้ด้วย

firebase emulators:start

ใช้โค้ดฝั่งไคลเอ็นต์เป็นเครื่องมือในการสื่อสารกับโปรแกรมจำลอง

ตั้งค่าในแอปหรือคลาสทดสอบเพื่อโต้ตอบกับโปรแกรมจำลอง SQL Connect ดังนี้

JavaScript
import { initializeApp } from "firebase/app";
import { connectorConfig } from "@name-of-package";
import { connectDataConnectEmulator, getDataConnect } from 'firebase/data-connect';

// TODO: Replace the following with your app's Firebase project configuration
const firebaseConfig = {
  //...
};

const app = initializeApp(firebaseConfig);

const dataConnect = getDataConnect(app, connectorConfig);
connectDataConnectEmulator(dataConnect, "localhost", 9399);

// Make calls from your app
  
Kotlin Android
val connector = MoviesConnector.instance

// Connect to the emulator on "10.0.2.2:9399"
connector.dataConnect.useEmulator()

// (Alternatively) if you're running your emulator on non-default port:
connector.dataConnect.useEmulator(port = 9999)

// Make calls from your app
  
iOS
let connector = DataConnect.dataConnect(DefaultConnectorClient.connectorConfig)

// Connect to the emulator on "127.0.0.1:9399"
connector.useEmulator()

// (alternatively) if you're running your emulator on non-default port:
connector.useEmulator(port: 9999)

// Make calls from your app
  

ใช้โปรแกรมจำลองสำหรับการทดสอบและการผสานรวมอย่างต่อเนื่อง

เรียกใช้อิมเมจ Local Emulator Suite ที่สร้างโดยใช้คอนเทนเนอร์

การติดตั้งและกำหนดค่า Local Emulator Suite ด้วยคอนเทนเนอร์ ในการตั้งค่า CI ทั่วไปนั้นทำได้ง่าย

ข้อควรทราบมีดังนี้

  • ระบบจะติดตั้งและแคชไบนารีของโปรแกรมจำลองที่ ~/.cache/firebase/emulators/ คุณอาจต้องเพิ่มเส้นทางนี้ลงในการกำหนดค่าแคช CI เพื่อหลีกเลี่ยงการดาวน์โหลดซ้ำ
  • หากไม่มีไฟล์ firebase.json ในที่เก็บ คุณต้องเพิ่มอาร์กิวเมนต์บรรทัดคำสั่งลงในคำสั่ง emulators:start หรือ emulators:exec เพื่อระบุว่าควรเริ่มโปรแกรมจำลองใด เช่น --only dataconnect

ล้างฐานข้อมูลระหว่างการทดสอบ

Firebase ขอแนะนำให้ทำดังนี้เพื่อรีเซ็ตสภาพแวดล้อมการทดสอบระหว่างการทดสอบ

  • เขียนการเปลี่ยนแปลงเฉพาะเพื่อจัดการสิ่งต่อไปนี้
    • ในการตั้งค่า ให้ป้อนข้อมูลเริ่มต้นลงในอินสแตนซ์ฐานข้อมูลในเครื่อง
    • ในการลบ ให้ลบข้อมูลที่แก้ไขแล้วออกจากอินสแตนซ์ฐานข้อมูลหลังการทดสอบ

ความแตกต่างระหว่างโปรแกรมจำลอง SQL Connect กับเวอร์ชันที่ใช้งานจริง

SQL Connectโปรแกรมจำลองจะจำลองฟีเจอร์ต่างๆ ของผลิตภัณฑ์ฝั่งเซิร์ฟเวอร์ อย่างไรก็ตาม โปรดทราบว่ามีข้อยกเว้นบางประการดังนี้

  • เวอร์ชันและการกำหนดค่าโดยละเอียดของ PGLite อาจแตกต่างจากเวอร์ชันของอินสแตนซ์ Cloud SQL ที่ใช้งานจริง
  • หากคุณใช้โปรแกรมจำลองเพื่อพัฒนาด้วยการผสานรวม pgvector และ Vertex API ของ SQL Connect การเรียกใช้ Vertex API ของ Cloud จะดำเนินการโดยตรง แทนที่จะผ่านการผสานรวม Vertex ของ Cloud SQL อย่างไรก็ตาม ระบบจะยังคงเรียกใช้ API ที่ใช้งานจริง ซึ่งหมายความว่าคุณต้องใช้โปรเจ็กต์ Firebase จริง ไม่สามารถใช้โปรเจ็กต์ demo- และจะมีการเรียกเก็บค่าใช้จ่ายของ Vertex API