SDK Connection
SDK Connection คือวิธีที่คุณอนุญาตให้แอปของคุณดึง feature flags จาก GrowthBook แต่ละ connection ถูกจำกัดขอบเขตไว้ที่ environment หนึ่งและ language/framework หนึ่ง
การสร้าง SDK Connection
หัวข้อที่มีชื่อว่า “การสร้าง SDK Connection”- ใน GrowthBook UI ไปที่ Settings ใน sidebar ด้านซ้าย
- คลิก SDK Connections
- คลิก Add SDK Connection
- ตั้งชื่อ (เช่น “Node.js Dev”)
- เลือก Environment (เช่น
development) - เลือก Language / Framework (เช่น JavaScript/Node.js)
- คลิก Save GrowthBook จะแสดงค่าสองค่าให้คุณ:
- apiHost — สำหรับ self-hosted:
http://localhost:3100; สำหรับ Cloud:https://cdn.growthbook.io - clientKey — string ที่ขึ้นต้นด้วย
sdk-...
- apiHost — สำหรับ self-hosted:
- คัดลอกทั้งสองค่า คุณจะใช้ค่าเหล่านี้ในการ initialize SDK
import { GrowthBook } from '@growthbook/growthbook';
const gb = new GrowthBook({ apiHost: 'http://localhost:3100', // self-hosted SDK API clientKey: 'sdk-YOUR_CLIENT_KEY',});
await gb.init({ timeout: 2000 });
// Check a boolean flagif (gb.isOn('my-feature')) { console.log('Feature is enabled');}import { GrowthBook } from '@growthbook/growthbook';
const gb = new GrowthBook({
apiHost: 'http://localhost:3100', // self-hosted SDK API
clientKey: 'sdk-YOUR_CLIENT_KEY',
});
await gb.init({ timeout: 2000 });
// Check a boolean flag
if (gb.isOn('my-feature')) {
console.log('Feature is enabled');
}ข้อแลกเปลี่ยน
หัวข้อที่มีชื่อว่า “ข้อแลกเปลี่ยน”| ตัวเลือก | Benefit | Cost |
|---|---|---|
| SDK key แยกต่อ environment | ปลอดภัยกว่า จำกัด blast radius | จัดการหลาย key ซับซ้อนกว่า |
| SDK key เดียวกันทุกที่ | ตั้งค่าเร็วกว่า | เสี่ยง flag รั่วข้าม environment |
ข้อผิดพลาดที่พบบ่อย
หัวข้อที่มีชื่อว่า “ข้อผิดพลาดที่พบบ่อย”- ใช้ SDK key เดียวกันทั้ง dev และ production ทำให้ทดสอบ flag ผิด environment โดยไม่ตั้งใจ
- hardcode
clientKeyในโค้ด client-side โดยไม่ผ่าน environment variable - ไม่ตั้ง timeout ให้
gb.init()ทำให้แอป hang รอ network
💡 ตัวอย่างจากของจริง
ทีม engineering ขนาดใหญ่แยก SDK connection ต่อ service/microservice เพื่อจำกัด blast radius ถ้า key รั่วออกไป