ทำให้ใช้งานได้จริง
คีย์และข้อมูลลับ ตั้งครั้งเดียว ไม่แสดงกลับมาอีก
แอปส่วนใหญ่สุดท้ายต้องถือคีย์บางตัวที่ห้ามหลุด บทนี้บอกว่าค่าไหนให้เอไอตั้งได้ ค่าไหนคุณต้องกรอกเอง ทำไมคีย์ที่เขียนไว้ในโค้ดถึงขึ้นออนไลน์ไม่ได้ และอะไรที่ยังเป็นหน้าที่ของคุณ
แยกให้ออกก่อน ค่าไหนลับ ค่าไหนไม่ลับ
ค่าที่ใครเห็นก็ไม่เสียหาย เช่น เขตเวลา ชื่อร้าน หรือโหมดของแอป เป็นค่าทั่วไป เอไอตั้งให้ได้เลย ส่วนค่าที่ถ้าหลุดแล้วคนอื่นเอาไปใช้ได้ เช่น secret key ของ Stripe, API key ของ OpenAI หรือ channel secret ของ LINE เป็นคีย์ลับ ค่าพวกนี้คุณต้องกรอกเอง และเอไอไม่ควรได้เห็นเลย
1. ค่าทั่วไป ให้เอไอตั้งได้
บอกเอไอในแชตได้เลย เช่น “ตั้ง TIMEZONE เป็น Asia/Bangkok ให้แอปนี้” หรือสั่งในเทอร์มินัล
ตั้งเสร็จ แอปก็รีสตาร์ตพร้อมค่าใหม่ ค่าทั้งหมดเก็บแบบเข้ารหัส ถ้าอยากดูว่ามีตัวแปรอะไรบ้าง คำสั่งนี้แสดงแค่ชื่อ ไม่แสดงค่า แชร์หน้าจอได้โดยไม่ต้องห่วง
2. คีย์ลับ กรอกในคอนโซล ไม่ใช่ในแชต
อย่าวางคีย์ลงในแชตกับเอไอ บอกเอไอแค่ชื่อของคีย์ แล้วให้คุณเป็นคนกรอกค่าเอง
พอเอไอประกาศชื่อนี้ตอน deploy Erawan ก็จะพักแอปไว้ก่อนเริ่มทำงานครั้งแรก แล้วส่งลิงก์หน้า secret ของแอปในคอนโซลกลับมา เปิดลิงก์นั้น วางค่าคีย์ แล้วบันทึก แอปก็เริ่มทำงานต่อเอง ค่าคีย์ไม่ผ่านแชต ไม่ผ่านเอไอ และไม่ติดไปกับโค้ดตอน build
บันทึกแล้วก็อ่านค่ากลับออกมาไม่ได้อีก ไม่ว่าจากคอนโซล คำสั่งในเทอร์มินัล API หรือเอไอของคุณ ทำได้แค่เปลี่ยนเป็นค่าใหม่หรือลบทิ้ง ต้นฉบับของคีย์จึงควรอยู่ที่ผู้ให้บริการ หรือในโปรแกรมเก็บรหัสผ่านของคุณ
ถ้าค่าคีย์อยู่ในไฟล์บนเครื่องแล้ว และคุณเปิดเทอร์มินัลไว้ ใช้คำสั่งนี้แทนได้ ชื่อคีย์ต้องประกาศไว้ตอน deploy ก่อน ระบบจะให้พิมพ์ค่าในช่องที่ไม่แสดงตัวอักษร แล้วให้กดยืนยันในเบราว์เซอร์อีกครั้ง
3. ถ้าเผลอเขียนคีย์ไว้ในโค้ด
ก่อน build ทุกครั้ง Erawan อ่านโค้ดหาคีย์ที่หน้าตาเหมือนของจริง ทั้งคีย์ของ AWS, Google, Stripe และ Slack, private key, รหัสผ่านหรือ API key ที่เขียนค่าไว้ตรง ๆ ในโค้ด รวมถึงไฟล์ .env ที่มีค่าอยู่ข้างใน เจอตัวไหน deploy ก็หยุดตรงนั้น แล้วบอกเอไอว่าต้องแก้ไฟล์ไหน
ที่หยุดเลยแทนที่จะแค่เตือน เพราะคีย์ที่หลุดออกไป คนแปลกหน้าเอาไปใช้ได้ แต่บิลมาลงที่บัญชีคุณ
ระบบไม่ตรวจไฟล์เทส ไฟล์ตัวอย่าง และเอกสาร ส่วนค่าที่เห็นชัดว่าเป็นค่าสมมติ อย่าง your-key-here หรือ changeme ก็ผ่านไปได้
อยากรู้ผลก่อนเอาขึ้นจริง ใช้คำสั่งนี้ ระบบจะตรวจแบบเดียวกันโดยไม่ deploy
ถ้า deploy หยุดไปแล้ว อ่านวิธีแก้ต่อในบทเมื่อ build ล้มเหลว
สิ่งที่ยังเป็นหน้าที่ของคุณ
คีย์ที่เคยหลุด หรือคีย์ที่คนออกจากทีมไปแล้วเคยถือ ต้องไปออกใหม่ที่ผู้ให้บริการ แล้วเอาค่าใหม่มาเปลี่ยนใน Erawan ส่วนใครในแอปเห็นข้อมูลอะไรได้บ้าง ก็เป็นเรื่องที่โค้ดของคุณต้องตัดสินเอง Erawan เก็บคีย์ให้ได้ แต่ตัดสินแทนไม่ได้ว่าแอปควรเอาคีย์ไปทำอะไร
ติดตามบทเรียนใหม่และข่าวจากเอราวัณ