ทำความเข้าใจโฮสติ้งของแอปและวิธีการทำงาน

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

การสนับสนุนเฟรมเวิร์ก

App Hosting มีบิลด์ที่ไม่จำเป็นต้องกำหนดค่าและรองรับการใช้งานสำหรับเว็บแอป พัฒนาขึ้นในกรอบการทำงานเหล่านี้:

  • Next.js 13 ขึ้นไป
  • Angular 17.2 ขึ้นไป

App Hosting จะระบุเฟรมเวิร์กที่คุณใช้อยู่โดยตรวจสอบ package-lock.json หรือไฟล์ล็อกอื่นๆ ในที่เก็บของคุณ หากคุณพยายาม ทำให้แอป Node.js ที่ไม่มีไฟล์ล็อกใช้งานได้ App Hosting จะดำเนินการไม่สำเร็จ สร้างและเรียกใช้แอป คุณสร้าง package-lock.json ได้โดยเรียกใช้ npm install ในไดเรกทอรีราก

อะแดปเตอร์เฟรมเวิร์กของ App Hosting มีบทบาทสำคัญ 2 ประการดังนี้

  1. โดยจะแยกวิเคราะห์ซอร์สโค้ดและไฟล์การกำหนดค่าเฉพาะเฟรมเวิร์ก (เช่น next.config.js) เพื่อทำความเข้าใจลักษณะการทำงานของแอปที่กำหนดค่าไว้
  2. โมเดลจะเรียกใช้คำสั่งบิลด์ของแอปเพื่อสร้างเนื้อหาแบบคงที่และสร้าง เวอร์ชันที่ได้รับการเพิ่มประสิทธิภาพ ของแอปสำหรับเวอร์ชันที่ใช้งานจริง

อะแดปเตอร์เฟรมเวิร์กจะสร้างแอป Node.js ด้วย npm run build ซึ่งทำงานได้ดีที่สุด ด้วยสคริปต์บิลด์เริ่มต้นสำหรับแต่ละเฟรมเวิร์ก: next build สำหรับ Next.js และ ng build สำหรับ Angular App Hosting จะพยายามสร้างด้วยบิลด์ที่กำหนดเอง แต่ไม่รับประกันว่าจะประสบความสำเร็จได้

วิธีการทำงานของการผสานรวมที่เก็บ App Hosting

การเชื่อมต่อที่สำคัญระหว่างที่เก็บ GitHub กับ App Hosting แบ็กเอนด์จัดการโดย Developer Connect แพลตฟอร์มการเชื่อมต่อของ Google Cloud สำหรับเครื่องมือ DevOps ภายนอก ระหว่างการสร้างแบ็กเอนด์ App Hosting เวิร์กโฟลว์ UI ของ Developer Connect แนะนำขั้นตอนการติดตั้ง แอป Firebase GitHub ขั้นตอนสำคัญในกระบวนการนี้คือ:

  1. คุณให้สิทธิ์ Developer Connect ผู้ดูแลระบบ Secret Manager ทำให้ระบบจัดเก็บข้อมูลเข้าสู่ระบบเป็น "ข้อมูลลับ" ได้อย่างปลอดภัย ใน Cloud Secret Manager
  2. คุณให้สิทธิ์แอป Firebase GitHub ในการเข้าถึง GitHub ของคุณ ที่เก็บ
  3. Developer Connect จะจัดเก็บโทเค็นการให้สิทธิ์ GitHub โดยเฉพาะไว้ใน ที่เก็บของผู้จัดการข้อมูลลับของโปรเจ็กต์ อย่าแก้ไขหรือลบโทเค็นนี้

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

การผสานรวมกับ Firebase และบริการอื่นๆ ของ Google

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

บัญชีบริการแบ็กเอนด์ App Hosting

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

firebase-app-hosting-compute@PROJECT ID.iam.gserviceaccount.com

บัญชีบริการนี้ใช้กับแบ็กเอนด์ทั้งหมดโดยค่าเริ่มต้นและมีชุดค่าต่ำสุด ที่อนุญาตให้คุณสร้าง เรียกใช้ และตรวจสอบแอปของคุณ และยังมี การอนุญาตให้ ตรวจสอบสิทธิ์ Admin SDK ด้วยข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชันสำหรับ ดำเนินการต่างๆ เช่น โหลดข้อมูลจาก Cloud Firestore โปรดดู บทบาทApp Hostingใน Firebase

หากแอปจำเป็นต้องโต้ตอบกับบริการเพิ่มเติมของ Google ระหว่างบิลด์ หรือจากแบ็กเอนด์ที่ทำงานอยู่ คุณก็ปรับแต่งบัญชีบริการเริ่มต้นได้โดย การเพิ่มบทบาท ตัวอย่างเช่น หากแอปของคุณต้องการสิทธิ์สําหรับ Vertex AI คุณสามารถ อาจต้องเพิ่ม roles/aiplatform.user หรือบทบาทที่เกี่ยวข้องบางอย่าง

คำศัพท์และคำจำกัดความที่สำคัญ

  • แบ็กเอนด์: คอลเล็กชันของทรัพยากรที่มีการจัดการซึ่ง App Hosting สร้าง เพื่อสร้างและเรียกใช้เว็บแอปของคุณ
  • การเปิดตัว: เวอร์ชันที่เจาะจงของแอปที่เผยแพร่อยู่ซึ่งลิงก์กับคอมมิตของ Git
  • Branch แบบสด: Branch ของที่เก็บ GitHub ที่ทำให้ใช้งานได้แล้ว URL ที่เผยแพร่อยู่ บ่อยครั้งที่มันเป็นกิ่งก้านของกิ่งก้านที่แสดงจุดเด่น หรือ รวม Branch ของการพัฒนาแล้ว

ปัญหาที่ทราบและข้อจำกัด

การแสดงตัวอย่าง App Hosting มีข้อจำกัดบางอย่างที่ทราบ ได้แก่

  • การลบแบ็กเอนด์ไม่ทำงาน
  • การเพิ่มประสิทธิภาพรูปภาพยังไม่พร้อมใช้งาน
  • ในบางกรณี แบ็กเอนด์ App Hosting อาจแสดงผล Intermittent connection error ข้อความที่ URL ของแอป การแก้ไข จะพร้อมใช้งานในรุ่นถัดไป
  • ส่วนหัวการควบคุมแคชได้รับการแก้ไขเพื่อจำกัดแคช CDN ไว้ที่ 60 วินาที ในช่วง เมื่อ App Hosting สามารถล้างแคชได้อย่างรวดเร็วบน ทำให้ใช้งานได้ ขีดจำกัดนี้จะถูกยกเลิก
  • ส่วนหัว Set-Cookie จะถูกตัดออกจากคำตอบที่แสดงผ่าน App Hosting ระนาบข้อมูล ซึ่งการแก้ไขจะพร้อมใช้งานในรุ่นหลังจากนี้
  • ไฟล์แบบคงที่ที่ไม่ได้แคชจะให้บริการจาก Cloud Run ใน สำหรับเผยแพร่ในภายหลัง ระบบจะจัดเก็บและแสดงจากต้นทางของ App Hosting เพื่อประสิทธิภาพที่ดีขึ้น
  • SKU App Hosting รายการอาจไม่แสดงในหน้าการใช้งานแบ็กเอนด์ใน คอนโซล Firebase ซึ่งจะพร้อมใช้งานในรุ่นหลังจากนี้
  • คอนโซล Firebase อาจแสดงข้อความ "ไม่พบบิลด์และ ไม่ถูกต้อง" ในการสร้างแบ็กเอนด์
  • ปัจจุบันแบ็กเอนด์ทั้งหมดในโปรเจ็กต์เดียวกันใช้องค์กร/บัญชี GitHub ร่วมกัน โดยจะเชื่อมต่อกับที่เก็บต่างๆ ภายใต้องค์กร/บัญชีดังกล่าวได้ วิธีสร้างแบ็กเอนด์ที่เชื่อมต่อกับบัญชี GitHub ต่างๆ ให้แยกไปอยู่ในโครงการที่ต่างกัน
  • ปัจจุบันรองรับเฉพาะภูมิภาค us-central1
  • มิดเดิลแวร์ Next.js, การเขียนใหม่ และการเปลี่ยนเส้นทางจะดำเนินการใน Cloud Run หลัง CDN เนื่องจากรายการเหล่านี้ไม่ได้ปกป้องแคช คำตอบ อย่าลืมตั้งค่า คำสั่งการควบคุมที่เหมาะสม สำหรับเนื้อหาที่คุณ กำลังแสดงผลอยู่