จัดการเวอร์ชันสดและตัวอย่างช่อง รุ่น และเวอร์ชันสำหรับเว็บไซต์

Firebase Hosting มีเครื่องมือผ่านทั้งคอนโซล Firebase และ CLI Firebase เพื่อจัดการแชแนล รุ่น และเวอร์ชันสำหรับเว็บไซต์ Hosting ของคุณ

ภาพรวมของโครงสร้างพื้นฐานHosting

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

ทุกโปรเจ็กต์ Firebase จะมี Hosting เว็บไซต์ Hosting เริ่มต้นที่มีสิทธิ์เข้าถึงทรัพยากรทั้งหมด ของโปรเจ็กต์ (ฐานข้อมูล การตรวจสอบสิทธิ์ ฟังก์ชัน ฯลฯ) เว็บไซต์ ประกอบด้วย แชแนลอย่างน้อย 1 แชแนล โดยแต่ละแชแนลจะเชื่อมโยงกับ URL ที่แสดงเนื้อหาและการกำหนดค่า Hosting ที่เฉพาะเจาะจง

รูปภาพของ <span class=Firebase Hosting hierarchy" />

เว็บไซต์ Hosting ทุกเว็บไซต์จะมีแชแนล "สด" ที่แสดงเนื้อหาและการกำหนดค่า Hosting ที่ (1) โดเมนย่อยที่ Firebase จัดสรรให้ของเว็บไซต์ (SITE_ID.web.app และ SITE_ID.firebaseapp.com) และ (2) โดเมนที่กำหนดเองที่เชื่อมต่อ นอกจากนี้ คุณยังเลือกสร้าง แชแนล "ตัวอย่าง" ที่แสดงเนื้อหาและการกำหนดค่าของตัวเองใน "URL ตัวอย่าง" ชั่วคราวที่แชร์ได้ (SITE_ID--CHANNEL_ID-RANDOM_HASH.web.app)

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

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

จัดการการตั้งค่าของแชแนล

คุณสามารถควบคุมการตั้งค่าของแชแนลแต่ละแชแนลในเว็บไซต์ได้ การตั้งค่าบางอย่าง เช่น การหมดอายุของแชแนล จะใช้ได้กับแชแนลตัวอย่างเท่านั้น

จำกัดจำนวนรุ่นที่จะเก็บไว้

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

  • ทำไม Hosting จึงเก็บรุ่นก่อนหน้าไว้
    สำหรับแชแนลสด การเก็บรุ่นก่อนหน้าไว้จะช่วยให้คุณ ย้อนกลับไปใช้เว็บไซต์เวอร์ชันก่อนหน้าได้หากจำเป็น ส่วนแชแนลตัวอย่างยังไม่สามารถย้อนกลับได้

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

  • จะเกิดอะไรขึ้นเมื่อคุณจำกัดรุ่นที่จะเก็บไว้
    เมื่อคุณกำหนดขีดจำกัดสำหรับรุ่นที่จะเก็บไว้ ระบบจะกำหนดเวลาให้มีการลบเนื้อหาของรุ่นที่อยู่เหนือขีดจำกัดที่กำหนด โดยเริ่มจากรุ่นที่เก่าที่สุดก่อน

วิธีตั้งค่าขีดจำกัดพื้นที่เก็บข้อมูลรุ่นสำหรับแชแนล

  1. ในคอนโซล Firebase ให้ไปที่ Hosting และ Serverless > Hosting เพื่อเข้าถึงกล่องโต้ตอบการตั้งค่าพื้นที่เก็บข้อมูลรุ่น

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

    • สำหรับแชแนลตัวอย่าง
      ในแถวของแชแนลตัวอย่าง ให้คลิก แล้วเลือก การตั้งค่าแชแนล

  2. ป้อนจำนวนรุ่นที่ต้องการเก็บไว้ แล้วคลิกบันทึก

ตั้งค่าการหมดอายุของแชแนลตัวอย่าง

โดยค่าเริ่มต้น แชแนลตัวอย่างจะหมดอายุหลังจากวันที่สร้าง 7 วัน แต่แชแนลสดของเว็บไซต์จะไม่มีวันหมดอายุ

เมื่อแชแนลตัวอย่างหมดอายุ ระบบจะกำหนดเวลาในการลบแชแนล รวมถึงรุ่นและเวอร์ชันที่เกี่ยวข้องภายใน 24 ชั่วโมง และจะปิดใช้งาน URL ตัวอย่างที่เชื่อมโยงด้วย ข้อยกเว้นของการลบเวอร์ชันนี้คือกรณีที่เวอร์ชันเชื่อมโยงกับรุ่นอื่น (เช่น กรณีที่คุณโคลนเวอร์ชันจากแชแนลหนึ่งไปยังอีกแชแนลหนึ่ง ภายในเว็บไซต์เดียวกัน)

Hosting รองรับ 2 วิธีในการควบคุมการหมดอายุของแชแนล ดังนี้

  • Firebase คอนโซล
    ในแถวของแชแนลตัวอย่าง ให้คลิก แล้วเลือก การตั้งค่าแชแนล ป้อนวันที่และเวลาที่หมดอายุ

  • Firebase CLI
    เมื่อทำให้ใช้งานได้กับแชแนลตัวอย่าง ให้ส่งแฟล็ก --expires DURATION เช่น

    firebase hosting:channel:deploy new-awesome-feature --expires 7d

    การหมดอายุจะเกิดขึ้นได้ไม่เกิน 30 วันนับจากวันที่ทำให้ใช้งานได้ ใช้ h สำหรับชั่วโมง d สำหรับวัน และ w สำหรับสัปดาห์ (เช่น 12h, 7d, 2w ตามลำดับ)

โคลนเวอร์ชันจากแชแนลหนึ่งไปยังอีกแชแนลหนึ่ง

คุณสามารถโคลนเวอร์ชันที่ทำให้ใช้งานได้จากแชแนลหนึ่งไปยังอีกแชแนลหนึ่งได้ โดยสามารถโคลนระหว่างแชแนลสดหรือแชแนลตัวอย่าง ระหว่างเว็บไซต์ Hosting หรือแม้แต่ระหว่างโปรเจ็กต์ Firebase

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

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

  • โคลนจากแชแนลตัวอย่าง "QA" ไปยังแชแนลสดของเว็บไซต์ (เปิดตัวแล้ว)

  • โคลนจากแชแนลสดของเว็บไซต์ไปยังแชแนลตัวอย่าง "debug" (เช่น ก่อนย้อนกลับ)

  • โคลนจากแชแนลในโปรเจ็กต์ Firebase "staging" ไปยังแชแนลตัวอย่างในโปรเจ็กต์ Firebase "prod"

หากต้องการโคลนเวอร์ชัน ให้เรียกใช้คำสั่งต่อไปนี้จากไดเรกทอรีใดก็ได้

firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:TARGET_CHANNEL_ID

แทนที่ตัวยึดตำแหน่งแต่ละรายการด้วยข้อมูลต่อไปนี้

  • SOURCE_SITE_ID และ TARGET_SITE_ID: รหัสของเว็บไซต์ Hosting ที่มีแชแนล

    • สำหรับเว็บไซต์ Hosting เริ่มต้น ให้ใช้รหัสโปรเจ็กต์ Firebase
    • คุณสามารถระบุเว็บไซต์ Hosting ที่อยู่ในโปรเจ็กต์ Firebase เดียวกันหรือ แม้แต่ในโปรเจ็กต์ Firebase ที่แตกต่างกัน
  • SOURCE_CHANNEL_ID และ TARGET_CHANNEL_ID: ตัวระบุสำหรับแชแนล

    • สำหรับแชแนลสด ให้ใช้ live เป็นรหัสช่อง
    • หากแชแนล "เป้าหมาย" ที่ระบุยังไม่มีอยู่ คำสั่งนี้จะสร้างแชแนลก่อนที่จะทำให้ใช้งานได้กับแชแนล

ย้อนกลับไปใช้เว็บไซต์เวอร์ชันก่อนหน้า

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

การย้อนกลับจะสร้างรุ่นใหม่ที่แสดงเนื้อหาเวอร์ชันเดียวกับรุ่นก่อนหน้า ในตารางประวัติรุ่น ทั้ง 2 รุ่นจะแสดงตัวระบุเวอร์ชันเดียวกัน

วิธีย้อนกลับ

  1. ในคอนโซลFirebase ให้ไปที่ Hosting และ Serverless > Hosting

  2. ในตารางประวัติรุ่น ของเว็บไซต์ ให้วางเมาส์เหนือรายการรุ่นก่อนหน้าที่ต้องการย้อนกลับไปใช้

  3. คลิก แล้วเลือก ย้อนกลับ

ลบรุ่นด้วยตนเอง

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

เมื่อลบรุ่น คุณกำลังลบเนื้อหาของรุ่นนั้น ซึ่งระบบจะกำหนดเวลาให้มีการลบภายใน 24 ชั่วโมง ระบบจะเก็บออบเจ็กต์รุ่นไว้เพื่อให้คุณยังคงดูข้อมูลเมตาของรุ่นนั้นได้ (ผู้ที่ทำให้ใช้งานได้และเวลาที่ทำให้ใช้งานได้)

วิธีลบรุ่น

  1. ในคอนโซลFirebase ให้ไปที่ Hosting และ Serverless > Hosting

  2. ในตารางประวัติรุ่น ของเว็บไซต์ ให้วางเมาส์เหนือรายการรุ่นก่อนหน้าที่ต้องการลบ

  3. คลิก แล้วเลือก ลบ

ลบไฟล์ด้วยตนเอง

ใน Firebase Hosting วิธีหลักในการลบไฟล์ที่เลือก จากเว็บไซต์ที่ทำให้ใช้งานได้แล้วคือการลบไฟล์ในเครื่อง แล้วทำให้ใช้งานได้อีกครั้ง

ลบแชแนลตัวอย่างด้วยตนเอง

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

เมื่อคุณลบแชแนลตัวอย่าง ระบบจะกำหนดเวลาในการลบแชแนล รวมถึงรุ่นและเวอร์ชันที่เกี่ยวข้องภายใน 24 ชั่วโมง และจะปิดใช้งาน URL ตัวอย่างที่เชื่อมโยงด้วย ข้อยกเว้นของการลบเวอร์ชันนี้คือกรณีที่เวอร์ชันเชื่อมโยงกับรุ่นอื่น (เช่น กรณีที่คุณโคลนเวอร์ชันจากแชแนลหนึ่งไปยังอีกแชแนลหนึ่ง ภายในเว็บไซต์เดียวกัน)

Hosting รองรับ 2 วิธีในการลบแชแนลตัวอย่าง ดังนี้

  • Firebase คอนโซล
    ในแถวของแชแนลตัวอย่าง ให้คลิก แล้วเลือก ลบแชแนล ยืนยันการลบ

  • Firebase CLI
    เรียกใช้คำสั่งต่อไปนี้จากไดเรกทอรีใดก็ได้

    firebase hosting:channel:delete CHANNEL_ID

คำสั่ง CLI สำหรับแชแนลตัวอย่างและการโคลน

คำสั่งสำหรับแชแนลตัวอย่าง

คำสั่งทั้งหมดสำหรับแชแนลตัวอย่างรองรับเป้าหมายการทำให้ใช้งานได้หากคุณมี เว็บไซต์ Hosting หลายรายการ

คำสั่ง คำอธิบาย
firebase hosting:channel:create CHANNEL_ID

สร้างแชแนลตัวอย่างใหม่ในเว็บไซต์ เริ่มต้น Hosting โดยใช้ CHANNEL_ID ที่ระบุ

คำสั่งนี้จะไม่ทำให้ใช้งานได้กับแชแนล

firebase hosting:channel:delete CHANNEL_ID

ลบแชแนลตัวอย่างที่ระบุ

คุณจะลบแชแนลสดของเว็บไซต์ไม่ได้

firebase hosting:channel:deploy CHANNEL_ID

ทำให้เนื้อหาและการกำหนดค่า Hosting ใช้งานได้กับแชแนลตัวอย่างที่ระบุ

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

firebase hosting:channel:list แสดงแชแนลทั้งหมด (รวมถึงแชแนล "สด") ใน เริ่มต้น Hosting ไซต์
firebase hosting:channel:open CHANNEL_ID เปิดเบราว์เซอร์ไปยัง URL ของแชแนลที่ระบุ หรือแสดง URL หากเปิดในเบราว์เซอร์ไม่ได้

คำสั่งสำหรับการโคลนเวอร์ชัน

คำสั่ง คำอธิบาย
firebase hosting:clone \
SOURCE_SITE_ID:SOURCE_CHANNEL_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

โคลนเวอร์ชันที่ทำให้ใช้งานได้ล่าสุดในแชแนล "แหล่งที่มา" ที่ระบุไปยังแชแนล "เป้าหมาย" ที่ระบุ

คำสั่งนี้จะทำให้ใช้งานได้กับแชแนล "เป้าหมาย" ที่ระบุด้วย หากแชแนล "เป้าหมาย" ยังไม่มีอยู่ คำสั่งนี้จะสร้างแชแนลตัวอย่างใหม่ในเว็บไซต์ "เป้าหมาย" Hosting ก่อนที่จะทำให้ใช้งานได้กับแชแนล

firebase hosting:clone \
SOURCE_SITE_ID:@VERSION_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

โคลนเวอร์ชันที่ระบุไปยังแชแนล "เป้าหมาย" ที่ระบุ

คำสั่งนี้จะทำให้ใช้งานได้กับแชแนล "เป้าหมาย" ที่ระบุด้วย หากแชแนล "เป้าหมาย" ยังไม่มีอยู่ คำสั่งนี้จะสร้างแชแนลตัวอย่างใหม่ในเว็บไซต์ "เป้าหมาย" Hosting ก่อนที่จะทำให้ใช้งานได้กับแชแนล

คุณจะพบ VERSION_ID ใน Hosting แดชบอร์ด ของ Firebase คอนโซล