โดยส่วนใหญ่แล้ว เราขอแนะนำให้ใช้การเปิดตัวอัตโนมัติหรือการเปิดตัวที่ทริกเกอร์ด้วยตนเองจากคอนโซล Firebase อย่างไรก็ตาม คุณอาจต้องใช้ขั้นตอนการติดตั้งใช้งานที่ปรับแต่งมากขึ้น App Hosting มีตัวเลือกมากมายสำหรับการติดตั้งใช้งานที่กำหนดเอง
ติดตั้งใช้งานจากแหล่งที่มา
การทำให้ใช้งานได้จากแหล่งที่มาช่วยให้คุณพุชซอร์สโค้ดและการกำหนดค่าของแอปพลิเคชันไปยัง App Hosting ได้โดยตรงโดยไม่ต้องเชื่อมต่อ GitHub แบบถาวร
เมื่อทำให้ใช้งานได้จากแหล่งที่มา App Hosting จะอัปโหลดซอร์สโค้ดไปยังที่เก็บข้อมูล Google Cloud Storage เรียกใช้คำสั่งบิลด์ของเฟรมเวิร์กใน Cloud Build และทำให้ Artifact ที่คอมไพล์แล้วใช้งานได้ใน Cloud Run และ Cloud CDN กระบวนการบิลด์เดียวกันนี้ใช้สำหรับการติดตั้งใช้งานซอร์สโค้ดในเครื่องและการติดตั้งใช้งาน GitHub หากมีไฟล์ .gitignore อยู่ในโปรเจ็กต์ ระบบจะไม่รวมไฟล์และโฟลเดอร์ที่แสดงอยู่ภายในไว้ในการติดตั้งใช้งาน
คุณสามารถทำให้ใช้งานได้จากแหล่งที่มาในเครื่องโดยใช้ Firebase CLI หรือคอนโซล Firebase ก็ได้
สิทธิ์ IAM และการตั้งค่าโครงสร้างพื้นฐานที่จำเป็น
เนื่องจากทั้ง Firebase CLI และคอนโซล Firebase ใช้โครงสร้างพื้นฐานแบ็กเอนด์เดียวกันในการจัดเก็บและสร้างที่เก็บถาวรของแหล่งที่มา ข้อกำหนดสิทธิ์ IAM เดียวกันจึงมีผลกับทั้ง 2 วิธีการทำให้ใช้งานได้
ข้อกำหนดที่แน่นอนจะขึ้นอยู่กับว่าคุณกำลังติดตั้งใช้งานในสถานที่ (ภูมิภาค) ที่เฉพาะเจาะจงเป็นครั้งแรกหรือไม่ ดูข้อมูลเพิ่มเติมเกี่ยวกับสิทธิ์ได้ที่ภาพรวมของ Firebase IAM และสิทธิ์ Firebase App Hosting ที่เฉพาะเจาะจง
สิทธิ์สำหรับการเริ่มต้นใช้งานครั้งแรก (การติดตั้งใช้งานครั้งแรกในสถานที่หนึ่งๆ)
เมื่อเริ่มการติดตั้งใช้งานแหล่งที่มาในเครื่องในตำแหน่งโปรเจ็กต์เป็นครั้งแรก App Hosting ต้องจัดสรรบักเก็ต GCS เพื่อจัดเก็บที่เก็บถาวรและให้สิทธิ์เข้าถึงแก่ App Hosting Service Agent เพื่อเข้าถึงที่เก็บถาวรเหล่านั้น เนื่องจากงานเหล่านี้เป็นงานด้านการดูแลระบบระดับโปรเจ็กต์ จึงต้องใช้สิทธิ์เจ้าของโปรเจ็กต์หรือผู้ดูแลระบบ IAM ผู้ใช้ที่มีบทบาทเป็นผู้แก้ไขหรือผู้ดูขั้นพื้นฐานจะไม่สามารถดำเนินการตั้งค่าเริ่มต้นนี้ได้และจะถูกบล็อก
สิทธิ์ในการตั้งค่าที่จำเป็นต้องมีก่อน ได้แก่
- เปิดใช้ Storage API:
serviceusage.services.enable - สร้างบักเก็ตต้นทาง:
storage.buckets.createและstorage.buckets.list - กำหนดค่า Service Agent:
resourcemanager.projects.setIamPolicyเพื่อให้สิทธิ์เข้าถึงแบบอ่าน (roles/storage.objectViewer) แก่ App Hosting เพื่อให้สามารถดึงข้อมูลโค้ดที่อัปโหลดระหว่างการบิลด์ได้
สำหรับการติดตั้งใช้งานครั้งแรก ระบบจะสร้างที่เก็บข้อมูล GCS ที่มีวงจร 30 วัน หลังจากนั้นระบบจะลบที่เก็บข้อมูลดังกล่าว อย่างไรก็ตาม คุณสามารถจัดการกรอบเวลานี้ได้ในคอนโซล Cloud ใน Cloud Storage -> ที่เก็บข้อมูล -> วงจร -> กฎ ดูจัดการวงจรของออบเจ็กต์
สิทธิ์สำหรับการติดตั้งใช้งานครั้งต่อๆ ไป (หลังจากเริ่มต้นตำแหน่งแล้ว)
เมื่อเริ่มต้นบัケットต้นทางและการเชื่อมโยงบทบาทสำหรับตำแหน่งแล้ว (โดยการติดตั้งใช้งาน CLI เริ่มต้นหรือการตั้งค่าคอนโซล) นักพัฒนาซอฟต์แวร์ ผู้แก้ไข หรือผู้ดูแลระบบ App Hosting ทั่วไปจะติดตั้งใช้งานการอัปเดตได้ การติดตั้งใช้งานตามปกติไม่จำเป็นต้องใช้สิทธิ์การดูแลระบบระดับโปรเจ็กต์
สิทธิ์ในการติดตั้งใช้งานที่ใช้งานอยู่มีดังนี้
- ยืนยันที่เก็บข้อมูล:
storage.buckets.list - อัปโหลดที่เก็บถาวรของแหล่งที่มา:
storage.objects.create - ทริกเกอร์บิลด์และการเปิดตัว: สิทธิ์ App Hosting มาตรฐาน (
apphosting.builds.createและapphosting.rollouts.create)
ทำให้ใช้งานได้จากแหล่งที่มาด้วย Firebase CLI
Firebase CLI v14.4.0 ขึ้นไปช่วยให้คุณพุชซอร์สโค้ดและการกำหนดค่าของแอปจากเครื่องของคุณไปยัง Firebase ได้โดยตรง วิธีนี้สะดวกหากคุณจัดการการติดตั้งใช้งาน Firebase อื่นๆ อยู่แล้ว (เช่น กฎความปลอดภัยหรือฟังก์ชัน) และต้องการติดตั้งใช้งานเว็บแอปและบริการแบ็กเอนด์ร่วมกันด้วยคำสั่ง CLI เดียว
ข้อกำหนดเบื้องต้น
- โปรเจ็กต์ต้องใช้แพ็กเกจ Blaze
- คุณต้องใช้ firebase-tools เวอร์ชัน 14.4.0 ขึ้นไป
ขั้นตอนการทำให้ใช้งานได้
- เรียกใช้
firebase init apphostingในไดเรกทอรีโปรเจ็กต์ที่อยู่ในเครื่อง - เมื่อได้รับข้อความแจ้ง ให้เลือกใช้โปรเจ็กต์ที่มีอยู่ แล้วเลือกโปรเจ็กต์ Firebase เป้าหมาย
- เลือกแบ็กเอนด์ใหม่หรือที่มีอยู่เพื่อทำให้ใช้งานได้ ขั้นตอนนี้จะตั้งค่าการทำให้ใช้งานได้ของ App Hosting สำหรับไดเรกทอรีในเครื่องและแจ้งให้คุณระบุรายละเอียดการกำหนดค่า ดังนี้
- รหัสของแบ็กเอนด์ที่จะทำให้ใช้งานได้
- ภูมิภาคที่จะทำให้ใช้งานได้ หากสร้างแบ็กเอนด์ใหม่
- เส้นทางไปยังไดเรกทอรีรากของโค้ดของแอปพลิเคชัน
- รันไทม์ Node.js ที่ต้องการ การเลือกรันไทม์ที่มีเวอร์ชันจะเปิดใช้การอัปเดตอิมเมจพื้นฐานอัตโนมัติ (ABIU) เพื่อใช้แพตช์ด้านความปลอดภัยกับสภาพแวดล้อมที่สำคัญโดยอัตโนมัติ
- App Hosting จะบันทึกค่ากำหนดการติดตั้งใช้งานไว้ใน
firebase.jsonโดยสร้างไฟล์ในโปรเจ็กต์ที่อยู่ในเครื่องหากยังไม่มี เมื่อการเริ่มต้นเสร็จสมบูรณ์แล้ว ให้เรียกใช้firebase deployเพื่อทำให้ซอร์สโค้ดใช้งานได้
ตัวอย่าง firebase.json
{
"apphosting": [
{
"backendId": "my-backend",
// rootDir specifies the directory containing the app to deploy, but the entire
// parent directory of firebase.json will be zipped and uploaded to ensure that
// dependencies outside of the app directory will be available at build time.
"rootDir": "./my-app",
"ignore": [
"node_modules",
".git",
"firebase-debug.log",
"firebase-debug.*.log",
"functions"
]
}
]
}
ติดตั้งใช้งานด้วยคอนโซล Firebase (การอัปโหลดไฟล์ ZIP)
คอนโซล Firebase มีอินเทอร์เฟซแบบกราฟิกเพื่อทำให้แอปพลิเคชันใช้งานได้โดยการอัปโหลดไฟล์เก็บถาวรต้นฉบับที่บีบอัดโดยตรง ซึ่งเป็นทางเลือกแทนขั้นตอนการเชื่อมต่อ GitHub ในกรณีที่คุณไม่ต้องการใช้ GitHub หรือต้องการตั้งค่า CI/CD อื่น
คุณสามารถอัปโหลดที่เก็บถาวรได้ในระหว่างการสร้างแบ็กเอนด์เริ่มต้นหรือเมื่อสร้างการเปิดตัวด้วยตนเองในแบ็กเอนด์ที่มีอยู่ รวมถึงแบ็กเอนด์ที่ติดตั้งใช้งานโดยใช้ Firebase CLI ในตอนแรก
รูปแบบที่รองรับ
เครื่องมืออัปโหลดของคอนโซลจะตรวจสอบและยอมรับรูปแบบไฟล์ที่บีบอัดถาวร 2 รูปแบบโดยค่าเริ่มต้น ดังนี้
.zip.tgz
รูปแบบเหล่านี้จะแสดงอย่างชัดเจนในข้อความคำอธิบายของเครื่องมืออัปโหลดไฟล์
ขั้นตอนการทำให้ใช้งานได้
ตัวเลือก ก: ระหว่างการเริ่มต้นใช้งานแบ็กเอนด์ครั้งแรก
- เลือกแหล่งที่มา: ในวิซาร์ดการสร้างแบ็กเอนด์ ให้เลือกอัปโหลดไฟล์ ZIP ในขั้นตอน "คุณต้องการนําเข้าแอปอย่างไร"
- การเตรียมความพร้อมผู้ใช้งานใหม่: การคลิก "ถัดไป" จะทริกเกอร์โฟลว์การเตรียมการในเบื้องหลัง ซึ่งจะเปิดใช้ Storage API ตามลำดับ ตรวจสอบว่ามีการตั้งค่าบทบาทที่ถูกต้อง และอัปเดตหรือแทรก Bucket UI จะแสดงภาพหมุนเพื่อแสดงการโหลดพร้อมข้อความสถานะแบบไดนามิก: "กำลังเปิดใช้ API..." "กำลังตรวจสอบสิทธิ์..." และ "กำลังเตรียมที่เก็บข้อมูล..."
- การจัดการข้อผิดพลาดและมาตรการป้องกัน: หากขั้นตอนการเตรียมการไม่สำเร็จ (เช่น ผู้ที่ไม่ใช่เจ้าของได้รับ
403 PERMISSION_DENIEDเนื่องจากสิทธิ์ IAM ไม่เพียงพอ) UI จะแสดงคำเตือนเฉพาะที่แนะนำให้คุณติดต่อเจ้าของโปรเจ็กต์ การไปยังส่วนต่างๆ ของ Stepper จะถูกล็อกอย่างเข้มงวด และปุ่ม "ถัดไป" และ "เสร็จสิ้นและทำให้ใช้งานได้" สุดท้ายจะยังคงปิดใช้อยู่จนกว่าปัญหาจะได้รับการแก้ไข
- การจัดการข้อผิดพลาดและมาตรการป้องกัน: หากขั้นตอนการเตรียมการไม่สำเร็จ (เช่น ผู้ที่ไม่ใช่เจ้าของได้รับ
- อัปโหลดไฟล์: เมื่อเตรียมการเสร็จเรียบร้อยแล้ว ให้เลือกหรือลากไฟล์ที่เก็บถาวรไปยังคอมโพเนนต์เครื่องมืออัปโหลดไฟล์
กำหนดการตั้งค่า: ระบุไดเรกทอรีรากของแอป (ค่าเริ่มต้นคือ
/)คลิกเสร็จสิ้นและทำให้ใช้งานได้: ปุ่ม "เสร็จสิ้น" แบบสแตนด์อโลนจะปิดใช้สำหรับการอัปโหลดไฟล์ ZIP เนื่องจากอัปโหลดที่เก็บถาวรเป็นการดำเนินการแบบครั้งเดียว และต้องตามด้วยการทำให้ใช้งานได้ทันทีเพื่อให้มั่นใจว่าแบ็กเอนด์จะทำงานได้
ตัวเลือก ข: การสร้างการเปิดตัวด้วยตนเอง
- เปิดกล่องโต้ตอบ: ในแดชบอร์ด App Hosting ให้คลิกสร้างการเปิดตัว
- เลือกแหล่งที่มา: เลือกอัปโหลดไฟล์ ZIP ในตัวเลือกของกล่องโต้ตอบ หากแบ็กเอนด์ไม่มีการเชื่อมต่อ GitHub อยู่ ตัวเลือก "GitHub" จะปิดใช้
- การเตรียมและการอัปโหลด: การเลือกจะทริกเกอร์ขั้นตอนการเตรียมเบื้องหลังแบบเดียวกัน ("กำลังเปิดใช้ API...", "กำลังตรวจสอบสิทธิ์..." และ "กำลังเตรียมที่เก็บข้อมูล...") เมื่อดำเนินการเสร็จแล้ว ให้ลากหรือเลือกไฟล์ที่เก็บถาวรโดยใช้เครื่องมืออัปโหลด ระบุไดเรกทอรีรากของแอป แล้วคลิกทำให้ใช้งานได้เพื่อทริกเกอร์การสร้างและการเปิดตัว
ทำให้ใช้งานได้โดยใช้ Terraform
หากต้องการควบคุมกระบวนการสร้างและสภาพแวดล้อมที่ติดตั้งใช้งานได้มากขึ้น คุณสามารถติดตั้งใช้งานโดยใช้ Terraform Terraform ช่วยให้คุณกำหนดและจัดการทรัพยากร App Hosting โดยใช้ไฟล์การกำหนดค่าแบบประกาศ และให้ความสามารถในการติดตั้งใช้งานอิมเมจคอนเทนเนอร์ที่สร้างไว้ล่วงหน้าของคุณเองไปยัง App Hosting โดยตรง แทนที่จะอาศัย App Hosting เพื่อสร้างจากซอร์สโค้ดของคุณ
หากเพิ่งเคยใช้ Terraform ให้ดูเริ่มต้นใช้งาน Terraform และ Firebase หากคุ้นเคยกับ Terraform อยู่แล้ว คุณสามารถเริ่มต้นใช้งานไฟล์การกำหนดค่าตัวอย่างและแหล่งข้อมูล App Hosting อื่นๆ ได้
ตั้งค่าการเชื่อมต่อ GitHub สำหรับ CI/CD
คุณมีตัวเลือกในการเชื่อมต่อที่เก็บ GitHub ได้ทุกเมื่อในแท็บการทำให้ใช้งานได้ของการตั้งค่าแบ็กเอนด์ในคอนโซล Firebase ซึ่งจะช่วยให้คุณติดตั้งใช้งานต้นแบบแอปจากสภาพแวดล้อมในเครื่อง แล้วเปลี่ยนไปใช้ไปป์ไลน์ CI/CD แบบอัตโนมัติเมื่อพร้อม
ทำให้ใช้งานได้โดยใช้เครื่องมือ AI
เราจะเลิกให้บริการ Firebase Studio ในวันที่ 22 มีนาคม 2027 แม้ว่าแบ็กเอนด์ App Hosting ของคุณจะไม่ได้รับผลกระทบ แต่ปุ่มเผยแพร่ใน Firebase Studio จะเลิกใช้งาน หากต้องการเผยแพร่การอัปเดตต่อไปโดยไม่เปลี่ยน URL ให้ย้ายข้อมูลโปรเจ็กต์ ดูวิธีย้ายข้อมูล