App Hosting จัดการชุดงานที่ซับซ้อนในเบื้องหลังเพื่อลดความซับซ้อนในการติดตั้งใช้งานแอป หน้านี้จะอธิบายส่วนสําคัญของขั้นตอนงานดังกล่าว โดยให้ข้อมูลเกี่ยวกับจุดที่คุณอาจต้องการปรับแต่งขั้นตอน ทั้งนี้ขึ้นอยู่กับความต้องการของแอป
คําศัพท์และคําจํากัดความสําคัญ
หากต้องการทำความเข้าใจรายละเอียดของขั้นตอน App Hosting คุณควรกำหนดคำศัพท์บางอย่างให้ชัดเจน คําศัพท์สําคัญพื้นฐานมีดังนี้
- แบ็กเอนด์: ชุดทรัพยากรที่มีการจัดการซึ่ง App Hostingสร้างขึ้นเพื่อสร้างและเรียกใช้เว็บแอป
- บิลด์: การแก้ไขที่เฉพาะเจาะจงของแอป ซึ่งมักจะลิงก์กับ git commit กระบวนการสร้างบิลด์มีขั้นตอนย่อยมากมาย โดยเฉพาะอย่างยิ่งการสร้างแอปใน Cloud Build และการนำส่งการแก้ไข (ในขั้นต้นจะแสดงการเข้าชม 0% จนกว่าจะเปิดตัว) ใน Cloud Run
- การเปิดตัว: กระบวนการตั้งค่าบิลด์ให้แสดงการเข้าชม เมื่อทริกเกอร์โดยอัตโนมัติจาก Git Commit App Hosting จะสร้างบิลด์โดยใช้สาขาที่ใช้งานอยู่ก่อน จากนั้นจะสร้างการเปิดตัวเพื่อนำการเข้าชมแบบเรียลไทม์ไปยังบิลด์ดังกล่าว
- Branch ที่ใช้งานอยู่: Branch ของที่เก็บ GitHub ที่ติดตั้งใช้งานใน URL ที่ใช้งานอยู่ โดยทั่วไปแล้ว จะเป็นสาขาที่ผสานสาขาฟีเจอร์หรือสาขาการพัฒนา
สถาปัตยกรรมของ Google Cloud และ App Hosting
App Hosting จะจัดระเบียบชุดผลิตภัณฑ์ Google Cloud เพื่อให้คุณนำไปใช้งาน แสดง และตรวจสอบเว็บแอปได้ แอปสร้างขึ้นด้วย Cloud Build, แสดงใน Cloud Run และแคชไว้ใน Cloud CDN บริการที่ผสานรวม เช่น เครื่องมือจัดการข้อมูลลับของ Cloud จะรักษาคีย์ API ของคุณให้ปลอดภัย

- เมื่อมีการพุชการคอมมิตไปยังสาขาที่ใช้งานอยู่ Google Cloud Developer Connect จะส่งเหตุการณ์ไปยัง Firebase App Hosting
- Firebase App Hosting สร้างบิลด์ใหม่สําหรับแบ็กเอนด์ที่เชื่อมต่อกับที่เก็บเพื่อตอบสนองต่อเหตุการณ์นี้
- ขั้นแรก Firebase App Hosting จะสร้างบิลด์ Cloud Build ใหม่สําหรับการคอมมิตของคุณ ในกรณีนี้ บิลด์แพ็ก Google Cloud จะกำหนดเฟรมเวิร์กที่ใช้ในแอปพลิเคชันเพื่อสร้างคอนเทนเนอร์และการกำหนดค่า (รวมถึงตัวแปรสภาพแวดล้อม ข้อมูลลับ อินสแตนซ์ขั้นต่ำหรือสูงสุด การกำหนดค่าหน่วยความจำแบบพร้อมกัน CPU และ VPC) ที่เหมาะกับแอปพลิเคชัน ดูข้อมูลเพิ่มเติมได้ที่กระบวนการบิลด์ App Hosting
- เมื่องาน Cloud Build เสร็จสมบูรณ์แล้ว ระบบจะจัดเก็บคอนเทนเนอร์ของคุณไว้ในที่เก็บข้อมูล Artifact Registry โดยเฉพาะสำหรับ Firebase App Hosting Firebase App Hosting จะเพิ่มCloud Runฉบับแก้ไขใหม่ให้กับบริการCloud Runโดยใช้รูปภาพและการกําหนดค่าของคุณ
- เมื่อการแก้ไข Cloud Run เสร็จสมบูรณ์และได้รับการยืนยันว่าทำงานได้อย่างถูกต้องแล้ว Firebase App Hosting จะแก้ไขการกำหนดค่าการเข้าชมเพื่อชี้คำขอใหม่ทั้งหมดไปยังการแก้ไข Cloud Run ใหม่ เมื่อถึงจุดนี้ การเปิดตัวจะเสร็จสมบูรณ์
- เมื่อส่งคำขอไปยังเว็บไซต์ที่โฮสต์ใน Firebase App Hosting ระบบจะแสดงคำขอโดยตัวจัดสรรภาระงานของ Google Cloud ที่เปิดใช้ Cloud CDN ระบบจะส่งคำขอที่ไม่ได้แคชไปยังบริการ Cloud Run ดูคำแนะนำเกี่ยวกับวิธีเพิ่มประสิทธิภาพด้วย Cloud CDN ได้ที่หัวข้อแคชเนื้อหาแอป
การผสานรวมเฟรมเวิร์ก
App Hosting รองรับการสร้างและทำให้ใช้งานได้โดยกำหนดค่าไว้ล่วงหน้าสำหรับเว็บแอปที่พัฒนาในเฟรมเวิร์กต่อไปนี้
- Next.js 13.5.x ขึ้นไป
- Angular 18.2.x ขึ้นไป
ดูรายละเอียดเกี่ยวกับเวอร์ชันและระดับการสนับสนุนที่เฉพาะเจาะจงได้ที่กำหนดการการสนับสนุน
นอกจาก Next.js และ Angular แล้ว App Hosting ยังรองรับเฟรมเวิร์กเว็บที่สามารถสร้างเอาต์พุตจากบิลด์ที่ตรงกับข้อกำหนดของกลุ่มเอาต์พุตด้วย ดูข้อมูลเพิ่มเติมเกี่ยวกับเฟรมเวิร์ก อะแดปเตอร์เฟรมเวิร์ก และเครื่องมือที่เกี่ยวข้องที่ App Hosting รองรับได้ที่เฟรมเวิร์กและเครื่องมือสำหรับ App Hosting
วิธีการทํางานของการผสานรวมที่เก็บข้อมูล App Hosting
การเชื่อมต่อที่สําคัญระหว่างที่เก็บ GitHub กับแบ็กเอนด์ App Hosting จะจัดการโดย Developer Connect ซึ่งเป็นแพลตฟอร์มการเชื่อมต่อของ Google Cloud สําหรับเครื่องมือ DevOps ภายนอก ในระหว่างการสร้างแบ็กเอนด์ App Hosting เวิร์กโฟลว์ UI ของ Developer Connect จะแนะนำคุณในการติดตั้งแอป Firebase GitHub ขั้นตอนสำคัญในกระบวนการนี้มีดังนี้
- คุณให้สิทธิ์ Developer Connect บทบาทผู้ดูแลระบบ Secret Manager ซึ่งจะช่วยให้ระบบจัดเก็บข้อมูลเข้าสู่ระบบอย่างปลอดภัยเป็น "ข้อมูลลับ" ใน Secret Manager ของ Cloud
- คุณให้สิทธิ์แอป GitHub ของ Firebase เข้าถึงที่เก็บ GitHub คุณอาจต้องมีสิทธิ์ GitHub เพิ่มเติมเพื่อเข้าถึงที่เก็บที่ถูกต้อง
- Developer Connect จะจัดเก็บโทเค็นการให้สิทธิ์ GitHub โดยเฉพาะในที่เก็บข้อมูลเครื่องมือจัดการข้อมูลลับของโปรเจ็กต์ โปรดอย่าแก้ไขหรือลบโทเค็นนี้
นอกจากนี้ App Hosting ยังผสานรวมกับ GitHub Checks API เพื่อตรวจสอบการเปิดตัวด้วย การตรวจสอบนี้ช่วยให้คุณดูสถานะของการเปิดตัวใน GitHub และแก้ไขข้อบกพร่องในกระบวนการติดตั้งใช้งานได้ในกรณีที่มีข้อผิดพลาด
การผสานรวมกับ Firebase และบริการอื่นๆ ของ Google
App Hosting จะตั้งค่าทั้งสภาพแวดล้อมการสร้างและรันไทม์เพื่อให้คุณเริ่มต้นใช้งาน Firebase Admin SDK ด้วยข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน Google ได้ วิธีนี้จะช่วยให้แบ็กเอนด์สื่อสารกับผลิตภัณฑ์อื่นๆ ของ Firebase ได้ทั้งในรันไทม์และเวลาสร้าง ดูข้อมูลเพิ่มเติมเกี่ยวกับการเริ่มต้นแอปและหัวข้ออื่นๆ ที่เกี่ยวข้องกับ Firebase SDK ได้ที่ผสานรวม Firebase SDK ในเว็บแอป
สถานที่ตั้ง App Hosting แห่ง
App Hosting จะสร้างทรัพยากรแบ็กเอนด์ในตำแหน่งที่เจาะจง ซึ่งเรียกว่าภูมิภาคหลัก แม้ว่า App Hosting จะผสานรวมกับ CDN ทั่วโลกเพื่อการนําส่งที่รวดเร็ว แต่ระบบจะแสดงเนื้อหาที่ไม่ได้แคชจากภูมิภาคหลักของแอป ความยืดหยุ่นนี้ในตำแหน่งของเว็บแอปมีข้อดีหลักๆ ดังนี้
- ปรับปรุงประสิทธิภาพและลดเวลาในการตอบสนองโดยนำข้อมูลมาไว้ใกล้ผู้ใช้มากขึ้นตามภูมิศาสตร์
- ปัญหาร้ายแรงที่เกิดขึ้นกับ App Hosting ในภูมิภาคหนึ่งจะไม่ส่งผลต่อเว็บแอปที่ติดตั้งใช้งานในภูมิภาคอื่นๆ
คุณเลือกภูมิภาคใดก็ได้ต่อไปนี้เมื่อสร้างApp Hostingแบ็กเอนด์จากคอนโซลหรือ Firebase CLI
us-central1
(ไอโอวา)asia-east1
(ไต้หวัน)europe-west4
(เนเธอร์แลนด์)
บัญชีบริการแบ็กเอนด์ App Hosting
ในระหว่างการบิลด์และรันไทม์ แบ็กเอนด์ App Hosting จะตรวจสอบสิทธิ์กับบริการอื่นๆ ของ Google ด้วยบัญชีบริการ ระบบจะสร้างบัญชีบริการเริ่มต้นเพื่อวัตถุประสงค์เหล่านี้เมื่อคุณเปิดใช้ App Hosting ในโปรเจ็กต์ Firebase เป็นครั้งแรก
firebase-app-hosting-compute@PROJECT ID.iam.gserviceaccount.com
บัญชีบริการนี้จะมีผลกับแบ็กเอนด์ทั้งหมดโดยค่าเริ่มต้น และมีชุดสิทธิ์ขั้นต่ำที่ให้คุณสร้าง เรียกใช้ และตรวจสอบแอปได้ นอกจากนี้ ยังมีสิทธิ์ตรวจสอบสิทธิ์ SDK การดูแลระบบด้วยข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชันเพื่อดําเนินการต่างๆ เช่น การโหลดข้อมูลจาก Cloud Firestore ดูบทบาท App Hosting ของ Firebase
หากแอปต้องโต้ตอบกับบริการเพิ่มเติมของ Google ขณะสร้างหรือจากแบ็กเอนด์ที่ทำงานอยู่ คุณสามารถปรับแต่งบัญชีบริการเริ่มต้นได้โดยการเพิ่มบทบาท ตัวอย่างเช่น หากแอปของคุณต้องใช้สิทธิ์สำหรับ Vertex AI คุณอาจต้องเพิ่ม roles/aiplatform.user
หรือบทบาทที่เกี่ยวข้อง