วิธีอื่นๆ ในการติดตั้งใช้งานกับ App Hosting

โดยส่วนใหญ่แล้ว เราขอแนะนำให้ใช้ การเปิดตัวแบบอัตโนมัติ หรือ การเปิดตัวที่ทริกเกอร์ด้วยตนเอง จากคอนโซล 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 ขึ้นไป

ขั้นตอนการทำให้ใช้งานได้

  1. เรียกใช้ firebase init apphosting ในไดเรกทอรีโปรเจ็กต์ที่อยู่ในเครื่อง
  2. เมื่อได้รับข้อความแจ้ง ให้เลือกใช้โปรเจ็กต์ที่มีอยู่ แล้วเลือกโปรเจ็กต์ Firebase เป้าหมาย
  3. เลือกแบ็กเอนด์ใหม่หรือแบ็กเอนด์ที่มีอยู่เพื่อทำให้ใช้งานได้ ขั้นตอนนี้จะตั้งค่าการทำให้ใช้งานได้ของ Hosting สำหรับไดเรกทอรีในเครื่องและแจ้งให้คุณระบุรายละเอียดการกำหนดค่า ดังนี้
    • รหัสของแบ็กเอนด์ที่จะทำให้ใช้งานได้
    • ภูมิภาคที่จะทำให้ใช้งานได้ หากสร้างแบ็กเอนด์ใหม่
    • เส้นทางไปยังไดเรกทอรีรากของโค้ดของแอปพลิเคชัน
    • รันไทม์ Node.js ที่ต้องการ การเลือกรันไทม์ที่มีการกำหนดเวอร์ชันจะเปิดใช้ การอัปเดตอิมเมจพื้นฐานอัตโนมัติ (ABIU) เพื่อใช้แพตช์ความปลอดภัยกับสภาพแวดล้อมพื้นฐานโดยอัตโนมัติ
  4. 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

รูปแบบเหล่านี้จะแสดงอย่างชัดเจนในข้อความอธิบายของตัวอัปโหลดไฟล์

ขั้นตอนการทำให้ใช้งานได้

ตัวเลือก ก: ระหว่างการเริ่มต้นใช้งานแบ็กเอนด์ครั้งแรก
  1. เลือกแหล่งที่มา: ในวิซาร์ดการสร้างแบ็กเอนด์ ให้เลือกอัปโหลด Zip ในขั้นตอน "คุณต้องการนำเข้าแอปอย่างไร"
  2. การเตรียมการเริ่มต้นใช้งาน: การคลิก "ถัดไป" จะทริกเกอร์โฟลว์การเตรียมการเบื้องหลัง ซึ่งจะเปิดใช้ Storage API ตามลำดับ ตรวจสอบว่าได้ตั้งค่าบทบาทที่ถูกต้อง และแทรก/อัปเดตบัคเก็ต UI จะแสดงวงล้อโหลด พร้อมข้อความสถานะแบบไดนามิก: "กำลังเปิดใช้ API..." "กำลังตรวจสอบสิทธิ์..." และ "กำลังเตรียมบัคเก็ต...".
    • การจัดการข้อผิดพลาดและการป้องกัน: หากขั้นตอนการเตรียมการใดๆ ล้มเหลว (เช่น ผู้ที่ไม่ใช่เจ้าของได้รับ 403 PERMISSION_DENIED เนื่องจากสิทธิ์ IAM ไม่เพียงพอ) UI จะแสดงคำเตือนเฉพาะที่แนะนำให้คุณติดต่อเจ้าของโปรเจ็กต์ การนำทาง Stepper จะถูกล็อกอย่างเข้มงวด และปุ่ม "ถัดไป" และปุ่ม "เสร็จสิ้นและทำให้ใช้งานได้" สุดท้ายจะยังคงปิดใช้งานอยู่จนกว่าปัญหาจะได้รับการแก้ไข
  3. อัปโหลดไฟล์: เมื่อการเตรียมการเสร็จสมบูรณ์แล้ว ให้เลือกหรือลาก ไฟล์เก็บถาวรลงในคอมโพเนนต์ตัวอัปโหลดไฟล์
  4. กำหนดการตั้งค่า: ระบุไดเรกทอรีรากของแอป (ค่าเริ่มต้นคือ /)

  5. คลิกเสร็จสิ้นและทำให้ใช้งานได้: ปุ่ม "เสร็จสิ้น" แบบสแตนด์อโลนจะปิดใช้งานสำหรับการ อัปโหลด Zip เนื่องจากการอัปโหลดไฟล์เก็บถาวรเป็นการดำเนินการแบบครั้งเดียวและต้อง ตามด้วยการทำให้ใช้งานได้ทันทีเพื่อให้แน่ใจว่าแบ็กเอนด์จะทำงานได้

ตัวเลือก ข: การสร้างการเปิดตัวด้วยตนเอง
  1. เปิดกล่องโต้ตอบ: ในแดชบอร์ด Hosting ให้คลิกสร้างการเปิดตัว
  2. เลือกแหล่งที่มา: เลือกอัปโหลด Zip ใน Stepper ของกล่องโต้ตอบ หากแบ็กเอนด์ไม่มีการเชื่อมต่อ GitHub อยู่ ตัวเลือก "GitHub" จะปิดใช้งาน
  3. การเตรียมการและการอัปโหลด: การเลือกจะทริกเกอร์โฟลว์การเตรียมการเบื้องหลังเดียวกัน ("กำลังเปิดใช้ 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 ให้ย้ายข้อมูลโปรเจ็กต์ ดูวิธีย้ายข้อมูล