ใช้โปรแกรมจำลอง 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 อยู่ระหว่างการพัฒนาอย่างต่อเนื่องโดยมีการแก้ไขข้อบกพร่องและ เพิ่มฟีเจอร์ใหม่ๆ

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

    firebase init

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

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

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

  firebase init emulators

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

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

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

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

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

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

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

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