โดยส่วนใหญ่แล้ว เราขอแนะนำให้ใช้ การเปิดตัวแบบอัตโนมัติ หรือ การเปิดตัวที่ทริกเกอร์ด้วยตนเอง จากคอนโซล Firebase อย่างไรก็ตาม คุณอาจต้องการใช้โฟลว์การทำให้ใช้งานได้ที่ปรับแต่งมากขึ้น App Hosting มีตัวเลือกมากมายสำหรับการทำให้ใช้งานได้ที่กำหนดเอง
ทำให้ใช้งานได้จากแหล่งที่มา
การทำให้ใช้งานได้จากแหล่งที่มาช่วยให้คุณพุชซอร์สโค้ดและ การกำหนดค่าของแอปพลิเคชันไปยัง App Hosting ได้โดยตรงโดยไม่ต้องมีการเชื่อมต่อ GitHub แบบถาวร
เมื่อทำให้ใช้งานได้จากแหล่งที่มา App Hosting จะอัปโหลดซอร์สโค้ดไปยังบัคเก็ต
Google Cloud Storage เรียกใช้คำสั่งบิลด์ของเฟรมเวิร์กใน
Cloud Build และทำให้ทรัพยากรที่คอมไพล์แล้วใช้งานได้ใน Cloud Run และ
Cloud CDN ระบบจะใช้กระบวนการบิลด์เดียวกันกับการทำให้ใช้งานได้จากแหล่งที่มาในเครื่อง
กับการทำให้ใช้งานได้จาก GitHub หากมีไฟล์ .gitignore ในโปรเจ็กต์ ระบบจะยกเว้นไฟล์และโฟลเดอร์ที่ระบุไว้ในไฟล์ดังกล่าวจากการทำให้ใช้งานได้
คุณสามารถทำให้ใช้งานได้จากแหล่งที่มาในเครื่องโดยใช้ Firebase CLI หรือ Firebase console
สิทธิ์ IAM และการตั้งค่าโครงสร้างพื้นฐานที่จำเป็น
เนื่องจากทั้ง Firebase CLI และคอนโซล Firebase ใช้โครงสร้างพื้นฐานแบ็กเอนด์เดียวกัน ในการจัดเก็บและบิลด์ไฟล์เก็บถาวรของแหล่งที่มา ข้อกำหนดด้านสิทธิ์ IAM จึงเหมือนกันสำหรับวิธีการทำให้ใช้งานได้ทั้ง 2 วิธี
ข้อกำหนดที่แน่นอนจะขึ้นอยู่กับว่าคุณทำให้ใช้งานได้ในสถานที่ (ภูมิภาค) ที่เฉพาะเจาะจงเป็นครั้งแรกหรือไม่ ดูข้อมูลเพิ่มเติมเกี่ยวกับสิทธิ์ได้ที่ ภาพรวมของ Firebase IAM และสิทธิ์เฉพาะของ Firebase App Hosting
สิทธิ์สำหรับการเริ่มต้นใช้งานครั้งแรก (การทำให้ใช้งานได้ในสถานที่เป็นครั้งแรก)
เมื่อมีการเริ่มต้นการทำให้ใช้งานได้จากแหล่งที่มาในเครื่องในสถานที่ของโปรเจ็กต์เป็นครั้งแรก Hosting ต้องจัดเตรียมบัคเก็ต GCS เพื่อจัดเก็บไฟล์เก็บถาวรและให้สิทธิ์เข้าถึงแก่ Hosting Service Agent เพื่อเข้าถึงไฟล์ดังกล่าว เนื่องจากเป็นงานดูแลระบบระดับโปรเจ็กต์ จึงต้องใช้สิทธิ์เจ้าของโปรเจ็กต์หรือผู้ดูแลระบบ IAM ผู้ใช้ที่มีบทบาทเป็นผู้แก้ไขหรือผู้ดูขั้นพื้นฐานจะไม่สามารถทำการตั้งค่าเริ่มต้นนี้ได้และจะถูกบล็อก
สิทธิ์ในการตั้งค่าเบื้องต้น ได้แก่
- เปิดใช้ Storage API:
serviceusage.services.enable - สร้างบัคเก็ตแหล่งที่มา:
storage.buckets.createและstorage.buckets.list - กำหนดค่า Service Agent:
resourcemanager.projects.setIamPolicyเพื่อให้ Hostingสิทธิ์เข้าถึงแบบอ่าน (roles/storage.objectViewer) เพื่อให้ดึงข้อมูล โค้ดที่อัปโหลดระหว่างบิลด์ได้
สำหรับการทำให้ใช้งานได้ครั้งแรก ระบบจะสร้างบัคเก็ต GCS ที่มีอายุการใช้งาน 30 วัน หลังจากนั้นระบบจะลบบัคเก็ต อย่างไรก็ตาม คุณสามารถจัดการกรอบเวลานี้ได้ในคอนโซล Cloud ในส่วน Cloud Storage -> บัคเก็ต -> อายุการใช้งาน -> กฎ ดู จัดการอายุการใช้งานของออบเจ็กต์
สิทธิ์สำหรับการทำให้ใช้งานได้ในครั้งต่อๆ ไป (หลังจากเริ่มต้นสถานที่แล้ว)
เมื่อเริ่มต้นบัคเก็ตแหล่งที่มาและการผูกบทบาทสำหรับสถานที่หนึ่งๆ แล้ว (โดยการทำให้ใช้งานได้จาก CLI ครั้งแรกหรือการตั้งค่าคอนโซล) นักพัฒนาแอป ผู้แก้ไข หรือ App Hosting ผู้ดูแลระบบ ทั่วไปจะทำให้การอัปเดตใช้งานได้ ไม่จำเป็นต้องมีสิทธิ์ดูแลระบบระดับโปรเจ็กต์สำหรับการทำให้ใช้งานได้ตามปกติ
สิทธิ์ในการทำให้ใช้งานได้ที่ใช้งานอยู่ ได้แก่
- ยืนยันบัคเก็ต:
storage.buckets.list - อัปโหลดไฟล์เก็บถาวรของแหล่งที่มา:
storage.objects.create - ทริกเกอร์บิลด์และการเปิดตัว: สิทธิ์มาตรฐาน Hosting (
apphosting.builds.createและapphosting.rollouts.create)
ทำให้ใช้งานได้จากแหล่งที่มาด้วย Firebase CLI
Firebase CLI เวอร์ชัน 14.4.0 ขึ้นไป ช่วยให้คุณพุชซอร์สโค้ดและการกำหนดค่าของแอปจากเครื่องในเครื่อง ไปยัง Firebase ได้โดยตรง ซึ่งสะดวกหากคุณจัดการการทำให้ใช้งานได้อื่นๆ ของ Firebase (เช่น กฎความปลอดภัยหรือฟังก์ชัน) อยู่แล้ว และต้องการทำให้เว็บแอปและบริการแบ็กเอนด์ใช้งานได้พร้อมกันด้วยคำสั่ง CLI เดียว
ข้อกำหนดเบื้องต้น
- โปรเจ็กต์ต้องอยู่ในแพ็กเกจ Blaze
- คุณต้องใช้ firebase-tools เวอร์ชัน 14.4.0 ขึ้นไป
ขั้นตอนการทำให้ใช้งานได้
- เรียกใช้
firebase init apphostingในไดเรกทอรีโปรเจ็กต์ที่อยู่ในเครื่อง - เมื่อได้รับข้อความแจ้ง ให้เลือกใช้โปรเจ็กต์ที่มีอยู่ แล้วเลือกโปรเจ็กต์ Firebase เป้าหมาย
- เลือกแบ็กเอนด์ใหม่หรือแบ็กเอนด์ที่มีอยู่เพื่อทำให้ใช้งานได้ ขั้นตอนนี้จะตั้งค่าการทำให้ใช้งานได้ของ 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 ตามลำดับ ตรวจสอบว่าได้ตั้งค่าบทบาทที่ถูกต้อง และแทรก/อัปเดตบัคเก็ต UI จะแสดงวงล้อโหลด
พร้อมข้อความสถานะแบบไดนามิก: "กำลังเปิดใช้ API..." "กำลังตรวจสอบสิทธิ์..." และ "กำลังเตรียมบัคเก็ต...".
- การจัดการข้อผิดพลาดและการป้องกัน: หากขั้นตอนการเตรียมการใดๆ ล้มเหลว (เช่น ผู้ที่ไม่ใช่เจ้าของได้รับ
403 PERMISSION_DENIEDเนื่องจากสิทธิ์ IAM ไม่เพียงพอ) UI จะแสดงคำเตือนเฉพาะที่แนะนำให้คุณติดต่อเจ้าของโปรเจ็กต์ การนำทาง Stepper จะถูกล็อกอย่างเข้มงวด และปุ่ม "ถัดไป" และปุ่ม "เสร็จสิ้นและทำให้ใช้งานได้" สุดท้ายจะยังคงปิดใช้งานอยู่จนกว่าปัญหาจะได้รับการแก้ไข
- การจัดการข้อผิดพลาดและการป้องกัน: หากขั้นตอนการเตรียมการใดๆ ล้มเหลว (เช่น ผู้ที่ไม่ใช่เจ้าของได้รับ
- อัปโหลดไฟล์: เมื่อการเตรียมการเสร็จสมบูรณ์แล้ว ให้เลือกหรือลาก ไฟล์เก็บถาวรลงในคอมโพเนนต์ตัวอัปโหลดไฟล์
กำหนดการตั้งค่า: ระบุไดเรกทอรีรากของแอป (ค่าเริ่มต้นคือ
/)คลิกเสร็จสิ้นและทำให้ใช้งานได้: ปุ่ม "เสร็จสิ้น" แบบสแตนด์อโลนจะปิดใช้งานสำหรับการ อัปโหลด Zip เนื่องจากการอัปโหลดไฟล์เก็บถาวรเป็นการดำเนินการแบบครั้งเดียวและต้อง ตามด้วยการทำให้ใช้งานได้ทันทีเพื่อให้แน่ใจว่าแบ็กเอนด์จะทำงานได้
ตัวเลือก ข: การสร้างการเปิดตัวด้วยตนเอง
- เปิดกล่องโต้ตอบ: ในแดชบอร์ด Hosting ให้คลิกสร้างการเปิดตัว
- เลือกแหล่งที่มา: เลือกอัปโหลด Zip ใน Stepper ของกล่องโต้ตอบ หากแบ็กเอนด์ไม่มีการเชื่อมต่อ 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 ให้ย้ายข้อมูลโปรเจ็กต์ ดูวิธีย้ายข้อมูล