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

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 ของคุณปลอดภัย

แผนภาพของสถาปัตยกรรมที่อธิบายไว้ในหน้านี้

  1. เมื่อมีการพุชการคอมมิตไปยังกิ่งก้านที่ใช้งานจริง Google Cloud Developer Connect จะส่งเหตุการณ์ไปยัง Firebase App Hosting
  2. เมื่อตอบสนองต่อเหตุการณ์นี้ Firebase App Hosting จะสร้างบิลด์ใหม่สำหรับ แบ็กเอนด์ที่เชื่อมต่อกับที่เก็บ
    1. ก่อนอื่น Firebase App Hosting จะสร้างบิลด์ใหม่Cloud Buildสำหรับการคอมมิตของคุณ ในงานนี้ Buildpack ของ Google Cloud จะพิจารณาว่าแอปพลิเคชันของคุณใช้เฟรมเวิร์กใด เพื่อสร้างคอนเทนเนอร์และการกำหนดค่า (รวมถึง ตัวแปรสภาพแวดล้อม, ข้อมูลลับ, อินสแตนซ์ขั้นต่ำหรือสูงสุด, หน่วยความจำพร้อมกัน , CPU และการกำหนดค่า VPC) ที่เหมาะกับแอปพลิเคชันของคุณ ดูข้อมูลเพิ่มเติมได้ที่App Hostingกระบวนการบิลด์
    2. เมื่อCloud Buildงานเสร็จสมบูรณ์แล้ว ระบบจะจัดเก็บคอนเทนเนอร์ของคุณไว้ในที่เก็บArtifact Registryที่สร้างขึ้นสำหรับ Firebase App Hosting โดยเฉพาะ Firebase App Hosting จากนั้นจะเพิ่มCloud Runรีวิชันใหม่ให้กับ Cloud Runบริการโดยใช้รูปภาพและการกำหนดค่าของคุณ
  3. เมื่อการแก้ไข Cloud Run เสร็จสมบูรณ์และได้รับการยืนยันว่าทำงานได้ตามปกติ Firebase App Hosting จะแก้ไขการกำหนดค่าการเข้าชมเพื่อชี้คำขอใหม่ทั้งหมด ไปยังการแก้ไข Cloud Run ใหม่ของคุณ ตอนนี้การเปิดตัว เสร็จสมบูรณ์แล้ว
  4. เมื่อมีการส่งคำขอไปยังเว็บไซต์ที่โฮสต์ใน 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

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

  1. คุณให้สิทธิ์ Developer Connect ในบทบาท ผู้ดูแลระบบ Secret Manager ซึ่งจะช่วยให้ระบบจัดเก็บข้อมูลเข้าสู่ระบบได้อย่างปลอดภัยเป็น "Secret" ใน Cloud Secret Manager
  2. คุณให้สิทธิ์แอป Firebase GitHub เพื่อเข้าถึงที่เก็บ GitHub คุณอาจต้องมีสิทธิ์ GitHub เพิ่มเติมเพื่อเข้าถึงที่เก็บที่ถูกต้อง
  3. 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หรือ CLI ของFirebase

  • us-central1 (ไอโอวา)
  • us-east4 (น. เวอร์จิเนีย)
  • 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 ดูบทบาท App HostingFirebase

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