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 ประการดังนี้
- โดยจะแยกวิเคราะห์ซอร์สโค้ดและไฟล์การกำหนดค่าเฉพาะเฟรมเวิร์ก (เช่น
next.config.js
) เพื่อทำความเข้าใจลักษณะการทำงานของแอปที่กำหนดค่าไว้ - โมเดลจะเรียกใช้คำสั่งบิลด์ของแอปเพื่อสร้างเนื้อหาแบบคงที่และสร้าง เวอร์ชันที่ได้รับการเพิ่มประสิทธิภาพ ของแอปสำหรับเวอร์ชันที่ใช้งานจริง
อะแดปเตอร์เฟรมเวิร์กจะสร้างแอป 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 ขั้นตอนสำคัญในกระบวนการนี้คือ:
- คุณให้สิทธิ์ Developer Connect ผู้ดูแลระบบ Secret Manager ทำให้ระบบจัดเก็บข้อมูลเข้าสู่ระบบเป็น "ข้อมูลลับ" ได้อย่างปลอดภัย ใน Cloud Secret Manager
- คุณให้สิทธิ์แอป Firebase GitHub ในการเข้าถึง GitHub ของคุณ ที่เก็บ
- 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 เนื่องจากรายการเหล่านี้ไม่ได้ปกป้องแคช คำตอบ อย่าลืมตั้งค่า คำสั่งการควบคุมที่เหมาะสม สำหรับเนื้อหาที่คุณ กำลังแสดงผลอยู่