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

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

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

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

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

รูปภาพของ <span class=ลำดับชั้นของ Firebase Hosting" />

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

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

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

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

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

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

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

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

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

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

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

  1. ในคอนโซล Firebase ให้เข้าถึงกล่องโต้ตอบการตั้งค่าพื้นที่เก็บข้อมูลการเผยแพร่โดยทำดังนี้

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

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

  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คอนโซล ในตารางประวัติการเผยแพร่ของเว็บไซต์ ให้วางเมาส์เหนือรายการการเผยแพร่ก่อนหน้า ที่คุณต้องการย้อนกลับ

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

ลบผลงานด้วยตนเอง

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

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

วิธีลบผลงานมีดังนี้

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

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

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

ใน 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

Deploy 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

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

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

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

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

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

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