0Pricing
DevOps Bootcamp · บทเรียน

ตัวแปรสภาพแวดล้อมและข้อมูลลับ

เรียนรู้การจัดการข้อมูลละเอียดอ่อนและการกำหนดค่าเฉพาะสภาพแวดล้อมอย่างปลอดภัยภายใน GitHub Actions

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

พื้นฐานตัวแปรสภาพแวดล้อมและข้อมูลลับ

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

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

เหตุผลที่ควรใช้ในการผสานรวมและการนำส่งอย่างต่อเนื่อง

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

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

ตัวแปรสภาพแวดล้อมในการทำงานอัตโนมัติของ GitHub

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

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

ตัวแปรสภาพแวดล้อมในตัวของ GitHub

ระบบการทำงานอัตโนมัติของ GitHub มีตัวแปรสภาพแวดล้อมที่กำหนดไว้ล่วงหน้าและมีประโยชน์มากมายให้โดยอัตโนมัติ ตัวแปรเหล่านี้ให้ข้อมูลบริบทเกี่ยวกับคลังโครงการ การทำงานของกระบวนการ และข้อมูลอื่น ๆ

ตัวอย่างเช่น GITHUB_SHA คือค่าแฮชของการส่งโค้ดเข้าสู่คลัง และ GITHUB_REF คือชื่อสาขาหรือแท็กที่ทำให้กระบวนการทำงานเริ่มต้น

คุณเข้าถึงตัวแปรเหล่านี้ได้โดยใช้วัตถุบริบท github ในนิพจน์ หรือเข้าถึงโดยตรงในรูปตัวแปรเชลล์ หากแมปตัวแปรเหล่านั้นกับ env

name: Print Context Variables
on: [push]
jobs:
  display_info:
    runs-on: ubuntu-latest
    steps:
      - name: Show commit SHA
        run: echo "Commit SHA: ${{ github.sha }}"
      - name: Show branch/tag ref
        run: echo "Ref: ${{ github.ref }}"

ตัวแปรสภาพแวดล้อมที่กำหนดเอง: ขอบเขตของกระบวนการทำงาน

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

ใช้คีย์เวิร์ด env ในระดับบนสุดของไฟล์กระบวนการทำงานเพื่อกำหนดตัวแปรเหล่านี้

name: Workflow-level Env Var
on: [push]
env:
  GREETING_MESSAGE: "Hello from Workflow!"
jobs:
  my_job:
    runs-on: ubuntu-latest
    steps:
      - name: Access workflow variable
        run: echo "${{ env.GREETING_MESSAGE }}" # Access via env context
      - name: Access workflow variable (shell)
        env:
          MY_VAR_IN_SHELL: ${{ env.GREETING_MESSAGE }}
        run: echo "$MY_VAR_IN_SHELL" # Access as shell variable

ตัวแปรสภาพแวดล้อมที่กำหนดเอง: ขอบเขตของงานและขั้นตอน

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

วิธีนี้ช่วยให้ควบคุมการตั้งค่าได้อย่างละเอียด

name: Job & Step-level Env Vars
on: [push]
jobs:
  my_job:
    runs-on: ubuntu-latest
    env:
      JOB_VAR: "Value for this job"
    steps:
      - name: Access Job-level variable
        run: echo "Job Var: ${{ env.JOB_VAR }}"
      - name: Step-specific variable
        env:
          STEP_VAR: "Value for this step"
        run: echo "Step Var: ${{ env.STEP_VAR }}"
      - name: Try to access step var in another step
        run: echo "Trying to access: ${{ env.STEP_VAR }}" || true # Will be empty

แนะนำข้อมูลลับของ GitHub

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

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

  • เข้ารหัส: GitHub จัดเก็บไว้อย่างปลอดภัย
  • ปกปิด: ซ่อนข้อมูลจากบันทึกการทำงานโดยอัตโนมัติ
  • ควบคุมการเข้าถึง: เปิดให้ใช้ได้เฉพาะกระบวนการทำงานที่ระบุ

การสร้างข้อมูลลับของ GitHub

ข้อมูลลับจะถูกสร้างและจัดการผ่านการตั้งค่าคลังโครงการหรือองค์กรบน GitHub ไม่ใช่โดยตรงในไฟล์กระบวนการทำงาน

  1. ไปยังการตั้งค่าของคลังโครงการ
  2. ไปที่ ข้อมูลลับและตัวแปร > การทำงาน
  3. คลิก ข้อมูลลับใหม่ของคลังโครงการ (หรือข้อมูลลับระดับองค์กรหากต้องการใช้ในขอบเขตที่กว้างขึ้น)
  4. ระบุชื่อ เช่น MY_API_KEY แล้ววางค่า

เมื่อบันทึกแล้ว คุณจะไม่สามารถดูค่าของข้อมูลลับนั้นได้อีก จะทำได้เพียงอัปเดตหรือลบข้อมูลลับ

การใช้ข้อมูลลับในกระบวนการทำงาน

หากต้องการใช้ข้อมูลลับ ให้อ้างอิงข้อมูลนั้นด้วยวัตถุบริบท secrets ในกระบวนการทำงาน เช่นเดียวกับการใช้ env สำหรับตัวแปรสภาพแวดล้อม

GitHub จะปกปิดข้อมูลลับจากบันทึกการทำงานโดยอัตโนมัติ โดยแทนที่ค่าของข้อมูลลับด้วย *** เพื่อป้องกันการเปิดเผยโดยไม่ได้ตั้งใจ

name: Use a Secret Demo
on: [push]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Display a secret (redacted)
        run: echo "My secret key is: ${{ secrets.MY_API_KEY }}"
        # GitHub Actions automatically redacts the value in logs.
      - name: Pass secret to an environment variable
        env:
          API_KEY_ENV: ${{ secrets.MY_API_KEY }}
        run: echo "API Key in env: $API_KEY_ENV"

แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยของข้อมูลลับ

การจัดการข้อมูลลับอย่างปลอดภัยมีความสำคัญอย่างยิ่งต่อความถูกต้องสมบูรณ์ของกระบวนการผสานรวมและการนำส่งอย่างต่อเนื่อง ปฏิบัติตามแนวทางเหล่านี้เสมอ:

  • สิทธิ์ขั้นต่ำ: ให้สิทธิ์เข้าถึงข้อมูลลับเฉพาะจุดที่จำเป็นอย่างยิ่งเท่านั้น
  • ห้ามฝังค่าตายตัว: อย่าใส่ข้อมูลลับโดยตรงในไฟล์กระบวนการทำงานหรือโค้ดใด ๆ ของคลังโครงการ
  • หลีกเลี่ยงการบันทึกข้อมูล: แม้ GitHub จะปกปิดข้อมูลลับ แต่ควรหลีกเลี่ยงคำสั่งแสดงข้อความที่กำหนดเองซึ่งอาจเปิดเผยบางส่วนของข้อมูลลับโดยไม่ได้ตั้งใจ
  • เปลี่ยนหมุนเวียนเป็นประจำ: เปลี่ยนข้อมูลลับเป็นระยะเพื่อลดความเสี่ยงที่ข้อมูลจะถูกบุกรุก
  • เฉพาะสภาพแวดล้อม: ใช้ข้อมูลลับที่แตกต่างกันสำหรับสภาพแวดล้อมการพัฒนา สภาพแวดล้อมเตรียมใช้งาน และระบบจริง

ตรวจสอบความเข้าใจอย่างรวดเร็ว: ตัวแปรสภาพแวดล้อมเทียบกับข้อมูลลับ

ข้อความใดอธิบายความแตกต่างหรือคุณลักษณะสำคัญของตัวแปรสภาพแวดล้อมและข้อมูลลับใน GitHub Actions ได้อย่างถูกต้อง

ทบทวน: การกำหนดค่าอย่างปลอดภัย

ยอดเยี่ยม! คุณได้เรียนรู้วิธีจัดการการกำหนดค่าในเวิร์กโฟลว์ GitHub Actions เรียบร้อยแล้ว

  • ตัวแปรสภาพแวดล้อม ช่วยให้คุณเพิ่มข้อมูลแบบไดนามิกที่ไม่ละเอียดอ่อนลงในการทำงานของเวิร์กโฟลว์ โดยปรับใช้ได้ในระดับเวิร์กโฟลว์ งาน หรือขั้นตอน
  • ข้อมูลลับ มีความสำคัญอย่างยิ่งต่อการจัดการข้อมูลละเอียดอ่อน เช่น คีย์ API อย่างปลอดภัย เพื่อให้ข้อมูลเหล่านั้นยังคงถูกเข้ารหัสและไม่ปรากฏในโค้ดสาธารณะของคุณ
  • ปฏิบัติตามแนวทางปฏิบัติด้านความปลอดภัยที่ดีเสมอเมื่อทำงานกับข้อมูลลับ เพื่อปกป้องการนำไปใช้งานจริงของคุณจากช่องโหว่

การทำความเข้าใจแนวคิดเหล่านี้ช่วยให้ไปป์ไลน์ CI/CD ของคุณมีทั้งความยืดหยุ่นและความปลอดภัย

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

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

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

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

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

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

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

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

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

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

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

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

  1. บทนำสู่การนำส่งอย่างต่อเนื่อง
  2. การนำไปใช้ในสภาพแวดล้อมทดสอบก่อนผลิต
  3. ตัวแปรสภาพแวดล้อมและข้อมูลลับ
  4. การนำไปใช้งานจริงด้วยด่านอนุมัติ
← กลับไปที่ DevOps Bootcamp