MLOps Academy · บทเรียน

ส่งการตั้งค่าผ่านตัวแปรสภาพแวดล้อม

เก็บเส้นทางโมเดลและข้อมูลลับไว้นอกอิมเมจ

บทเรียน 3 จาก 413 ขั้นตอน

ส่งการตั้งค่าผ่านตัวแปรสภาพแวดล้อม เป็นบทเรียน MLOps Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน MLOps Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส MLOps Academy มีบทเรียนทั้งหมด 4 บทเรียน

อย่าฝังการตั้งค่าไว้ในอิมเมจ

การเขียนเส้นทางโมเดลหรือคีย์ API ไว้ตายตัวจะฝังข้อมูลนั้นลงในอิมเมจตลอดไป ให้ส่งค่าเหล่านี้เป็น ตัวแปรสภาพแวดล้อม ขณะรันแทน

อ่านตัวแปรสภาพแวดล้อมใน Python

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

import os
model_path = os.getenv("MODEL_PATH", "/models/latest.pkl")

ค่าเริ่มต้นภายในอิมเมจ

คำสั่ง ENV ใน Dockerfile จะกำหนดค่าเริ่มต้นที่ฝังอยู่ในอิมเมจ เหมาะสำหรับการตั้งค่าที่ไม่ใช่ความลับและเปลี่ยนแปลงไม่บ่อย

ENV MODEL_PATH=/models/latest.pkl

แทนที่ค่าเมื่อเรียกใช้

แทนที่ค่าใดก็ได้ด้วย -e ใน docker run จากนั้นอิมเมจเดียวกันก็สามารถให้บริการทั้งสภาพแวดล้อมทดสอบหรือสภาพแวดล้อมจริงด้วยการตั้งค่าที่แตกต่างกัน

docker run -e MODEL_PATH=/models/v2.pkl model-api

จัดกลุ่มตัวแปรไว้ในไฟล์

จัดเก็บตัวแปรจำนวนมากให้เป็นระเบียบในไฟล์ แล้วโหลดด้วย --env-file คำสั่งเรียกใช้ของคุณจะสั้นและอ่านง่าย

docker run --env-file prod.env model-api

อย่าคอมมิตข้อมูลลับ

เก็บไฟล์ข้อมูลลับไว้นอก Git และนอกอิมเมจ เพิ่ม .env ลงใน .gitignore และ .dockerignore เพื่อป้องกันไม่ให้ข้อมูลรั่วไหล

ข้อมูลลับต้องอยู่นอกระบบ

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

ตรวจสอบเมื่อเริ่มต้น

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

if not os.getenv("MODEL_PATH"):
    raise RuntimeError("MODEL_PATH is required")

การตั้งค่าแบบ Twelve-Factor

หลักการ twelve-factor ระบุให้จัดเก็บการตั้งค่าไว้ในสภาพแวดล้อม วิธีนี้ทำให้อิมเมจเดียวสามารถนำไปใช้ได้กับเป้าหมายการนำส่งทุกแบบ

การตั้งค่า Pydantic

เครื่องมืออย่าง pydantic-settings จะอ่านตัวแปรสภาพแวดล้อมลงในออบเจ็กต์การตั้งค่าที่มีชนิดข้อมูล พร้อมตรวจสอบชนิดข้อมูลและค่าเริ่มต้นในจุดเดียวอย่างเป็นระเบียบ

from pydantic_settings import BaseSettings

อิมเมจเดียว หลายสภาพแวดล้อม

ประโยชน์คือ สร้าง once แล้วเรียกใช้อิมเมจเดียวกันทุกประการในสภาพแวดล้อมพัฒนา ทดสอบ และจริง โดยเปลี่ยนเฉพาะตัวแปรที่คุณฉีดเข้าไป

ตรวจสอบอย่างรวดเร็ว

มาดูกันว่าการตั้งค่าควรอยู่ที่ใด

สรุปทบทวน

คุณอ่านการตั้งค่าด้วย os.getenv กำหนดค่าเริ่มต้นผ่าน ENV แทนที่ค่าด้วย -e และ --env-file และเก็บข้อมูลลับไว้ภายนอก ได้อิมเมจแบบพกพาเพียงหนึ่งเดียว ✅

เริ่มต้นได้ฟรี

เรียนรู้ Python ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
30
บทเรียน
120

คำถามที่พบบ่อย

บทเรียน “ส่งการตั้งค่าผ่านตัวแปรสภาพแวดล้อม” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ส่งการตั้งค่าผ่านตัวแปรสภาพแวดล้อม” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส MLOps Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส MLOps Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ส่งการตั้งค่าผ่านตัวแปรสภาพแวดล้อม”

เก็บเส้นทางโมเดลและข้อมูลลับไว้นอกอิมเมจ คุณปฏิบัติ MLOps Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน MLOps Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน MLOps Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “ส่งการตั้งค่าผ่านตัวแปรสภาพแวดล้อม” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน MLOps Academy นี้ได้ไหม

ได้ บทเรียน MLOps Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เขียน Dockerfile สำหรับ API ของโมเดล
  2. ลดขนาดอิมเมจด้วยการสร้างหลายระยะ
  3. ส่งการตั้งค่าผ่านตัวแปรสภาพแวดล้อม
  4. รันและทดสอบคอนเทนเนอร์ภายในเครื่อง
← กลับไปที่ MLOps Academy