คู่มือการจัดการตัวแปรสภาพแวดล้อมด้วย Infisical + Node.js

ในการพัฒนาซอฟต์แวร์ การจัดการตัวแปรสภาพแวดล้อม เช่น คีย์ API ข้อมูลประจำตัว และข้อมูลที่ละเอียดอ่อนอื่นๆ เป็นสิ่งสำคัญ Infisicalเป็นแพลตฟอร์มโอเพ่นซอร์สที่เข้ารหัสแบบ end-to-end ที่สามารถช่วยคุณจัดการตัวแปรสภาพแวดล้อมตามขนาด
ในบทช่วยสอนนี้ เราจะสาธิตวิธีใช้Infisicalเพื่อจัดการตัวแปรสภาพแวดล้อมสำหรับ Node Stack ของคุณ ตั้งแต่การพัฒนาในพื้นที่ไปจนถึงการผลิต เราจะใช้Infisical Cloudแต่ใช้ขั้นตอนเดียวกันนี้หากคุณใช้อินสแตนซ์ที่โฮสต์เอง
มาดำน้ำกันเถอะ!
Infisical คืออะไร?
Infisicalซึ่งเป็นแพลตฟอร์มการจัดการความลับแบบเข้ารหัสแบบโอเพ่นซอร์สแบบ end-to-end ที่คุณสามารถจัดเก็บตัวแปรสภาพแวดล้อมด้วย โฮสต์ได้เองอย่างสมบูรณ์บนโครงสร้างพื้นฐานของคุณเองมีเอกสารครบถ้วนและสวยงามอย่างเหลือเชื่อ

Node SDKช่วยให้คุณดึงข้อมูลตัวแปรสภาพแวดล้อมกลับมาที่รันไทม์ได้ ไม่ว่าจะเป็นการพัฒนาในพื้นที่หรือการผลิต
การตั้งค่าโครงการ
ในการเริ่มต้น เราจะตั้งค่าโครงการใน Infisical และเพิ่มตัวแปรสภาพแวดล้อมให้กับสภาพแวดล้อม
- สร้างโครงการใหม่ใน Infisical
- เพิ่มความลับให้กับสภาพแวดล้อมการพัฒนาของโครงการนี้ เพื่อให้เราสามารถดึงกลับมาพัฒนาท้องถิ่นได้ ในหน้าภาพรวมความลับ ให้กดสำรวจการพัฒนาและเพิ่มความลับด้วยคีย์NAMEและใส่ค่าYOUR_NAME ตัวแปรสภาพแวดล้อมนี้จะถูกดึงมาเพื่อพัฒนาในพื้นที่
ในการเข้าถึงความลับจากแอปพลิเคชันโหนดของเรา เราจำเป็นต้องสร้างโทเค็น Infisical
- ไปที่การตั้งค่าโครงการ > โทเค็นบริการแล้วกดเพิ่มโทเค็นใหม่
- ตั้งชื่อโทเค็น (เช่น “โทเค็นแอปของฉัน”) และเลือกการพัฒนาภายใต้สภาพแวดล้อม ในขั้นตอนนี้ เรากำลังจัดเตรียมการเข้าถึงโทเค็นนี้ให้กับสภาพแวดล้อมการพัฒนาของโครงการนี้
- คัดลอกโทเค็นและเก็บไว้ให้สะดวก

สำหรับคำแนะนำนี้ เราจะสร้างแอปพลิเคชัน Express ขั้นต่ำ อย่างไรก็ตาม หลักการเดียวกันนี้ใช้กับแอปพลิเคชันโหนดใดๆ เช่น แอปพลิเคชันที่สร้างขึ้นบน Koa หรือ Fastify
เริ่มต้นโครงการ Node.js ใหม่ด้วยpackage.json
ไฟล์ เริ่มต้น
$ npm init -y
$ npm install express infisical-node
const express = require("express");
const app = express();
const PORT = 3000;
const client = new InfisicalClient({
token: "YOUR_INFISICAL_TOKEN"
});
app.get("/", async (req, res) => {
const name = (await client.getSecret("NAME")).secretValue;
res.send(`Hello, ${name}!`);
});
app.listen(PORT, () => {
console.log(`Example app listening on port ${PORT}`);
});
เริ่มแอพและเยี่ยมชมhttp://localhost:3000เพื่อดูข้อความ “สวัสดี ชื่อของคุณ”
$ node index.js
เคล็ดลับ
เพื่อให้มั่นใจถึงประสิทธิภาพสูงสุด เราขอแนะนำให้สร้างอินสแตนซ์เดียวของไคลเอนต์ Infisical และส่งออกเพื่อใช้ในแอปทั้งหมดของคุณ เหตุผลก็คือเนื่องจากNode SDKแคชข้อมูลลับทั้งหมดและอัปเดตข้อมูลเป็นระยะ ลดการเรียกที่มากเกินไป การแคชในตัวนี้ทำให้การซิงค์ตัวแปรสภาพแวดล้อมเป็นไปอย่างราบรื่นตามขนาด
ฉันยังแนะนำให้เก็บ Infisical Token ไว้ใน.env
ไฟล์ในการพัฒนาในเครื่องหรือเป็นตัวแปรสภาพแวดล้อมเดียวในการผลิต ด้วยวิธีนี้ คุณไม่ต้องฮาร์ดโค้ดลงในแอปพลิเคชันของคุณ และสามารถใช้เพื่อดึงข้อมูลตัวแปรสภาพแวดล้อมที่เหลือของคุณได้
ประการสุดท้าย SDK มีความสามารถมากกว่าแค่การดึงข้อมูลที่เป็นความลับ ด้วย การ ดำเนินการสร้างอัปเดตและลบคุณสามารถสร้างกลยุทธ์การจัดการความลับไดนามิกเต็มรูปแบบด้วยการดำเนินการต่างๆ เช่น การหมุนเวียนข้อมูลลับ
บทสรุป
ตอนนี้คุณรู้วิธีดึงข้อมูลลับจากInfisicalสำหรับแอปพลิเคชันโหนดของคุณ แล้ว ด้วยการใช้โทเค็น Infisical ที่กำหนดขอบเขตไปยังสภาพแวดล้อมที่แตกต่างกัน คุณสามารถจัดการความลับในขั้นตอนต่างๆ ของโครงการของคุณได้อย่างง่ายดาย ตั้งแต่การพัฒนาในท้องถิ่นไปจนถึงการผลิต Infisical นำเสนอโซลูชันที่ปลอดภัยและเป็นมิตรกับนักพัฒนาเพื่อจัดการข้อมูลที่ละเอียดอ่อนของคุณ ทำให้มั่นใจได้ว่าแอปพลิเคชันของคุณสร้างขึ้นโดยคำนึงถึงแนวทางปฏิบัติที่ดีที่สุด