App Hosting จะจัดการชุดงานเบื้องหลังที่ซับซ้อนเพื่อลดความซับซ้อนในการติดตั้งใช้งานแอป หน้านี้จะอธิบายส่วนสำคัญของขั้นตอนงานดังกล่าว โดยให้ข้อมูลเกี่ยวกับจุดที่คุณอาจต้องการปรับแต่งขั้นตอนตามความต้องการของแอป
คำศัพท์และคำจำกัดความที่สำคัญ
หากต้องการทำความเข้าใจรายละเอียดของขั้นตอน App Hosting คุณควรทำความเข้าใจคำศัพท์บางคำอย่างเจาะจง คำศัพท์สำคัญพื้นฐานมีดังนี้
- แบ็กเอนด์: คอลเล็กชันทรัพยากรที่มีการจัดการซึ่ง App Hosting สร้างขึ้นเพื่อสร้างและเรียกใช้เว็บแอปของคุณ
- บิลด์: การแก้ไขเฉพาะของแอป ซึ่งโดยปกติจะลิงก์กับ Git Commit กระบวนการสร้างบิลด์มีกระบวนการย่อยมากมาย โดยเฉพาะอย่างยิ่งการสร้างแอปใน Cloud Build และการติดตั้งใช้งานการแก้ไข (เริ่มแรกจะแสดงการเข้าชม 0% จนกว่าจะเปิดตัว) ใน Cloud Run
- การเปิดตัว: กระบวนการตั้งค่าบิลด์ให้แสดงการเข้าชมอย่างต่อเนื่อง เมื่อทริกเกอร์โดยอัตโนมัติด้วยคอมมิต Git App Hosting จะสร้างบิลด์โดยใช้ Branch ที่ใช้งานอยู่ก่อน จากนั้นจะสร้างการเปิดตัวเพื่อนำการเข้าชมแบบสดไปยังบิลด์นั้น
- Branch ที่เผยแพร่อยู่: Branch ของที่เก็บ GitHub ที่ทำให้ใช้งานได้ใน URL ที่เผยแพร่อยู่ ซึ่งมักจะเป็นสาขาที่รวมสาขาฟีเจอร์หรือสาขาการพัฒนาเข้าด้วยกัน
สถาปัตยกรรมของ Google Cloud และ App Hosting
App Hosting จัดระเบียบชุดผลิตภัณฑ์ Google Cloud เพื่อให้คุณสามารถติดตั้งใช้งาน แสดง และตรวจสอบเว็บแอปได้ แอปสร้างขึ้นด้วย Cloud Build, แสดงใน Cloud Run และแคชใน Cloud CDN บริการแบบผสานรวมอย่าง Cloud Secret Manager จะช่วยรักษาคีย์ API ของคุณให้ปลอดภัย
- เมื่อมีการพุชคอมมิตไปยังสาขาที่ใช้งานอยู่ Google Cloud Developer Connect จะส่งเหตุการณ์ไปยัง Firebase App Hosting
- เมื่อตอบสนองต่อเหตุการณ์นี้ Firebase App Hosting จะสร้างบิลด์ใหม่สำหรับแบ็กเอนด์ที่เชื่อมต่อกับที่เก็บ
- ขั้นแรก Firebase App Hosting จะสร้างบิลด์ Cloud Build ใหม่สำหรับคอมมิตของคุณ ในงานนี้ Google Cloud Buildpack จะกำหนดเฟรมเวิร์กที่ใช้ในแอปพลิเคชันเพื่อสร้างคอนเทนเนอร์และการกำหนดค่า (รวมถึงตัวแปรสภาพแวดล้อม, ข้อมูลลับ, อินสแตนซ์ขั้นต่ำหรือสูงสุด, การเกิดขึ้นพร้อมกัน, หน่วยความจำ, 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 โดยขั้นตอนสำคัญในกระบวนการนี้มีดังนี้
- คุณให้บทบาทผู้ดูแลระบบ Secret Manager แก่ Developer Connect ซึ่งจะช่วยให้ระบบจัดเก็บข้อมูลเข้าสู่ระบบเป็น "ข้อมูลลับ" ใน Cloud Secret Manager ได้อย่างปลอดภัย
- คุณให้สิทธิ์แอป Firebase GitHub ในการเข้าถึงที่เก็บ GitHub คุณอาจต้องใช้สิทธิ์ GitHub เพิ่มเติมเพื่อเข้าถึงที่เก็บที่ถูกต้อง
- Developer Connect จะจัดเก็บโทเค็นการให้สิทธิ์ GitHub โดยเฉพาะไว้ในที่เก็บ Secret Manager ของโปรเจ็กต์ อย่าแก้ไขหรือลบโทเค็นนี้
นอกจากนี้ 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 หรือ Firebase CLI
us-central1(ไอโอวา)us-east4(N. เวอร์จิเนีย)us-east5(โคลัมบัส)asia-east1(ไต้หวัน)asia-southeast1(สิงคโปร์)europe-west4(เนเธอร์แลนด์)
บัญชีบริการแบ็กเอนด์ App Hosting
ในระหว่างการสร้างและที่รันไทม์ แบ็กเอนด์ App Hosting จะตรวจสอบสิทธิ์กับบริการอื่นๆ ของ Google ด้วยบัญชีบริการ ระบบจะสร้างบัญชีบริการเริ่มต้นเพื่อวัตถุประสงค์เหล่านี้ในครั้งแรกที่คุณเปิดใช้ App Hosting ในโปรเจ็กต์ Firebase
firebase-app-hosting-compute@PROJECT ID.iam.gserviceaccount.com
บัญชีบริการนี้จะมีผลกับแบ็กเอนด์ทั้งหมดโดยค่าเริ่มต้น และมีชุดสิทธิ์ขั้นต่ำที่ช่วยให้คุณสร้าง เรียกใช้ และตรวจสอบแอปได้ นอกจากนี้ยังมีสิทธิ์ตรวจสอบสิทธิ์ Admin SDK ด้วยข้อมูลรับรองเริ่มต้นของแอปพลิเคชันเพื่อดำเนินการต่างๆ เช่น โหลดข้อมูลจาก Cloud Firestore ดูบทบาท Firebase App Hosting
หากแอปของคุณจำเป็นต้องโต้ตอบกับบริการเพิ่มเติมของ Google ไม่ว่าจะในเวลาบิลด์หรือจากแบ็กเอนด์ที่ทำงานอยู่ คุณสามารถปรับแต่งบัญชีบริการเริ่มต้นได้โดยการเพิ่มบทบาท ตัวอย่างเช่น หากแอปของคุณต้องใช้สิทธิ์สำหรับ Vertex AI คุณอาจต้องเพิ่ม roles/aiplatform.user หรือบทบาทที่เกี่ยวข้องบางอย่าง