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

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

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

  1. เรียกใช้ firebase init apphosting ในไดเรกทอรีโปรเจ็กต์ที่อยู่ในเครื่อง
  2. เมื่อได้รับข้อความแจ้ง ให้เลือกใช้โปรเจ็กต์ที่มีอยู่ แล้วเลือกโปรเจ็กต์ Firebase เป้าหมาย
  3. เลือกแบ็กเอนด์ใหม่หรือที่มีอยู่เพื่อทำให้ใช้งานได้ ขั้นตอนนี้จะตั้งค่าการทำให้ใช้งานได้ของ App 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 ตามลำดับ ตรวจสอบว่ามีการตั้งค่าบทบาทที่ถูกต้อง และอัปเดตหรือแทรก Bucket UI จะแสดงภาพหมุนเพื่อแสดงการโหลดพร้อมข้อความสถานะแบบไดนามิก: "กำลังเปิดใช้ API..." "กำลังตรวจสอบสิทธิ์..." และ "กำลังเตรียมที่เก็บข้อมูล..."
    • การจัดการข้อผิดพลาดและมาตรการป้องกัน: หากขั้นตอนการเตรียมการไม่สำเร็จ (เช่น ผู้ที่ไม่ใช่เจ้าของได้รับ 403 PERMISSION_DENIED เนื่องจากสิทธิ์ IAM ไม่เพียงพอ) UI จะแสดงคำเตือนเฉพาะที่แนะนำให้คุณติดต่อเจ้าของโปรเจ็กต์ การไปยังส่วนต่างๆ ของ Stepper จะถูกล็อกอย่างเข้มงวด และปุ่ม "ถัดไป" และ "เสร็จสิ้นและทำให้ใช้งานได้" สุดท้ายจะยังคงปิดใช้อยู่จนกว่าปัญหาจะได้รับการแก้ไข
  3. อัปโหลดไฟล์: เมื่อเตรียมการเสร็จเรียบร้อยแล้ว ให้เลือกหรือลากไฟล์ที่เก็บถาวรไปยังคอมโพเนนต์เครื่องมืออัปโหลดไฟล์
  4. กำหนดการตั้งค่า: ระบุไดเรกทอรีรากของแอป (ค่าเริ่มต้นคือ /)

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

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