พารามิเตอร์คือกลไกที่ผู้ใช้ใช้ปรับแต่งแต่ละอินสแตนซ์ของส่วนขยายที่ติดตั้ง พารามิเตอร์จะเหมือนกับตัวแปรสภาพแวดล้อมสำหรับ ส่วนขยาย ค่าของพารามิเตอร์อาจเป็นค่าที่ป้อนโดยอัตโนมัติ (Firebase ระบุให้หลังการติดตั้ง) หรือค่าที่ผู้ใช้กำหนดค่า (ผู้ใช้ระบุในระหว่างการติดตั้ง)
คุณสามารถอ้างอิงพารามิเตอร์เหล่านี้ในซอร์สโค้ดฟังก์ชันของส่วนขยาย ไฟล์ extension.yaml
และไฟล์ POSTINSTALL.md
ต่อไปนี้คือไวยากรณ์ของวิธีอ้างอิงพารามิเตอร์ที่ชื่อ
PARAMETER_NAME
ภายในซอร์สโค้ดของฟังก์ชัน ให้ใช้โมดูล
params
(เช่นparams.defineInt("PARAMETER_NAME")
) หรือprocess.env.PARAMETER_NAME
ใน
extension.yaml
และPOSTINSTALL.md
ให้ใช้${param:PARAMETER_NAME}
หลังการติดตั้ง Firebase คอนโซลจะแสดงเนื้อหาของไฟล์
POSTINSTALL.md
และป้อนข้อมูลการอ้างอิงพารามิเตอร์ด้วยค่าจริงสําหรับอินสแตนซ์ที่ติดตั้ง
พารามิเตอร์ที่ป้อนข้อมูลโดยอัตโนมัติ
อินสแตนซ์ของส่วนขยายที่ติดตั้งแต่ละรายการจะมีสิทธิ์เข้าถึงพารามิเตอร์เริ่มต้นที่ Firebase สร้างขึ้นโดยอัตโนมัติหลายรายการโดยอัตโนมัติ (ดูตารางด้านล่าง) ค่าพารามิเตอร์เหล่านี้เป็นค่าเริ่มต้นสำหรับโปรเจ็กต์ Firebase (เช่น ถังเก็บข้อมูล Storage เริ่มต้น) หรือเป็นค่าเฉพาะส่วนขยาย (เช่น รหัสอินสแตนซ์ของส่วนขยาย)
ค่าพารามิเตอร์ทั้งหมดที่ระบบป้อนข้อมูลอัตโนมัติจะเปลี่ยนแปลงไม่ได้ โดยจะตั้งค่าเมื่อสร้างโปรเจ็กต์หรือติดตั้งส่วนขยาย
แม้ว่า Firebase จะป้อนค่าพารามิเตอร์เหล่านี้โดยอัตโนมัติสำหรับส่วนขยาย แต่ Firebase จะไม่จัดสรรผลิตภัณฑ์ที่เชื่อมโยงโดยอัตโนมัติให้แก่ผู้ใช้ในระหว่างการติดตั้ง ผู้ใช้ที่ติดตั้งส่วนขยายต้องเปิดใช้ผลิตภัณฑ์ที่เกี่ยวข้อง
และผลิตภัณฑ์ที่เกี่ยวข้องในโปรเจ็กต์ของตนก่อนการติดตั้ง เช่น หากส่วนขยายของคุณเกี่ยวข้องกับ Cloud Firestore ผู้ใช้จะต้องตั้งค่า Cloud Firestore ในโปรเจ็กต์ของตน เราขอแนะนำให้คุณแจ้งให้ผู้ใช้ทราบเกี่ยวกับข้อกำหนดเหล่านี้ใน
PREINSTALL.md
ไฟล์
ข้อมูลอ้างอิงสำหรับพารามิเตอร์ที่สร้างขึ้นโดยอัตโนมัติ | คำอธิบาย | ค่าพารามิเตอร์ (Firebase ระบุ) |
---|---|---|
พารามิเตอร์ที่มีค่าเริ่มต้นจากโปรเจ็กต์ Firebase | ||
PROJECT_ID |
ตัวระบุที่ไม่ซ้ำกันสำหรับโปรเจ็กต์ Firebase ที่ติดตั้งส่วนขยาย |
รูปแบบทั่วไป
ค่าตัวอย่าง: |
DATABASE_URL |
URL ของอินสแตนซ์ default Realtime Database ของโปรเจ็กต์ Firebase |
รูปแบบทั่วไป
ค่าตัวอย่าง: |
DATABASE_INSTANCE |
ชื่ออินสแตนซ์เริ่มต้นของโปรเจ็กต์ Firebase Realtime Database โดยปกติแล้ว ค่านี้จะเหมือนกับรหัสโปรเจ็กต์ หรือลงท้ายด้วย
|
รูปแบบทั่วไป
ค่าตัวอย่าง: |
STORAGE_BUCKET |
ชื่อที่เก็บข้อมูล Cloud Storage เริ่มต้นของโปรเจ็กต์ Firebase |
รูปแบบทั่วไป
ค่าตัวอย่าง: |
พารามิเตอร์ที่มีค่าเริ่มต้นจากการติดตั้งส่วนขยาย | ||
EXT_INSTANCE_ID |
ตัวระบุที่ไม่ซ้ำกันสำหรับอินสแตนซ์ส่วนขยายที่ติดตั้ง ค่านี้สร้างขึ้นจากฟิลด์
|
รูปแบบทั่วไปสําหรับอินสแตนซ์ที่ติดตั้งเป็นครั้งแรก (กำหนดโดย Firebase โดยอัตโนมัติ
ไม่สามารถแก้ไขโดยผู้ใช้ระหว่างการติดตั้ง):
ค่าตัวอย่าง: รูปแบบทั่วไปสำหรับอินสแตนซ์ที่ติดตั้งเป็นครั้งที่ 2 ขึ้นไป
(กำหนดโดย Firebase โดยอัตโนมัติ แก้ไขได้โดยผู้ใช้
ระหว่างการติดตั้ง):
ค่าตัวอย่าง: |
พารามิเตอร์ที่ผู้ใช้กำหนดค่า
หากต้องการให้ผู้ใช้ปรับแต่งอินสแตนซ์ของส่วนขยายที่ติดตั้งแต่ละรายการได้ คุณสามารถ
ขอให้ผู้ใช้ระบุค่าพารามิเตอร์ระหว่างการติดตั้ง หากต้องการขอค่าเหล่านี้ ให้ตั้งค่าพรอมต์ในส่วน params
ของไฟล์ extension.yaml
ต่อไปนี้คือตัวอย่างparams
ส่วน ตามด้วยตารางที่อธิบายช่องพารามิเตอร์ทั้งหมดที่ใช้ได้
# extension.yaml
...
# Parameters (environment variables) for which the user specifies values during installation
params:
- param: DB_PATH
label: Realtime Database path
description: >-
What is the Realtime Database path where you will write new text
for sentiment analysis?
type: string
validationRegex: ^\S+$
validationErrorMessage: Realtime Database path cannot contain spaces.
example: path/to/posts
required: true
- param: TEXT_KEY
label: Key for text
description: What is the name of the key that will contain text to be analyzed?
type: string
default: textToAnalyze
required: true
ในส่วน params
ของไฟล์ extension.yaml
ให้ใช้ช่องต่อไปนี้
เพื่อกำหนดพารามิเตอร์ที่ผู้ใช้กำหนดค่า
ฟิลด์ | ประเภท | คำอธิบาย | ||||
---|---|---|---|---|---|---|
param (ต้องระบุ) |
สตริง | ชื่อพารามิเตอร์ | ||||
label (ต้องระบุ) |
สตริง |
คำอธิบายพารามิเตอร์แบบย่อ แสดงต่อผู้ใช้เมื่อระบบแจ้งให้ระบุค่าของพารามิเตอร์ |
||||
description (ไม่บังคับ) |
สตริง |
คำอธิบายโดยละเอียดสำหรับพารามิเตอร์ แสดงต่อผู้ใช้เมื่อระบบแจ้งให้ระบุค่าของพารามิเตอร์ รองรับมาร์กดาวน์ | ||||
type (ไม่บังคับ) |
สตริง |
กลไกการป้อนข้อมูลสำหรับวิธีที่ผู้ใช้ตั้งค่าของพารามิเตอร์ (เช่น ป้อนข้อความโดยตรงหรือเลือกจากรายการแบบเลื่อนลง) ค่าที่ใช้ได้มีดังนี้
หากละเว้นช่องนี้ พารามิเตอร์จะมีค่าเริ่มต้นเป็น |
||||
options (ต้องระบุหากพารามิเตอร์ type
เป็น select หรือ multiSelect )
|
list |
รายการค่าที่ผู้ใช้เลือกได้ รวมช่อง
ต้องระบุข้อมูลในฟิลด์ |
||||
resourceType (ต้องระบุหากพารามิเตอร์ type
เป็น selectResource )
|
สตริง |
ประเภทของทรัพยากร Firebase ที่จะแจ้งให้ผู้ใช้เลือก ปัจจุบันมีเพียงที่เก็บข้อมูล Cloud Storage เท่านั้นที่รองรับตัวเลือกทรัพยากร
ระบบจะไม่สนใจค่า |
||||
example (ไม่บังคับ) |
สตริง |
ตัวอย่างค่าของพารามิเตอร์ |
||||
validationRegex (ไม่บังคับ) (ใช้ได้เฉพาะเมื่อพารามิเตอร์ type เป็น
string )
|
สตริง |
สตริง Regex สําหรับการตรวจสอบค่าที่ผู้ใช้กําหนดของพารามิเตอร์ ระบบจะคอมไพล์นิพจน์ทั่วไปโดยใช้ไลบรารี Go: RE2 ดูรายละเอียดเกี่ยวกับการตรวจสอบได้ที่ การตรวจสอบและการส่ง ข้อความแสดงข้อผิดพลาดด้านล่าง |
||||
validationErrorMessage (ไม่บังคับ) |
สตริง |
ข้อความแสดงข้อผิดพลาดที่จะแสดงหาก
โปรดดูรายละเอียดเกี่ยวกับการส่งข้อความแสดงข้อผิดพลาดที่ การตรวจสอบและการส่ง ข้อความแสดงข้อผิดพลาดด้านล่าง |
||||
default (ไม่บังคับ) |
สตริง |
ค่าเริ่มต้นของพารามิเตอร์หากผู้ใช้เว้นค่าของพารามิเตอร์ ว่างไว้ หากเกี่ยวข้อง คุณสามารถระบุค่าพารามิเตอร์ที่สร้างขึ้นโดยอัตโนมัติ
สำหรับค่า |
||||
required (ไม่บังคับ) |
boolean |
กำหนดว่าผู้ใช้จะส่งสตริงที่ว่างเปล่าได้หรือไม่เมื่อระบบ แจ้งให้ระบุค่าของพารามิเตอร์ หากไม่ได้ระบุ |
||||
immutable (ไม่บังคับ) |
boolean |
กำหนดว่าผู้ใช้จะเปลี่ยนค่าของพารามิเตอร์ได้หรือไม่หลังการติดตั้ง (เช่น หากผู้ใช้กำหนดค่าใหม่ส่วนขยาย) หากไม่ระบุ
หมายเหตุ: หากคุณกำหนดพารามิเตอร์
"location"
สำหรับฟังก์ชันที่ใช้งานจริงของส่วนขยาย
คุณควรใส่ฟิลด์ |
การตรวจสอบและการแสดงข้อความแสดงข้อผิดพลาดสำหรับค่าที่ผู้ใช้กำหนดค่า
เมื่อตั้งค่าพารามิเตอร์ที่มี type
เป็น string
คุณต้องกําหนด
การตรวจสอบนิพจน์ทั่วไปที่เหมาะสมผ่านฟิลด์
validationRegex
ของพารามิเตอร์
นอกจากนี้ สำหรับส่วนขยายหลายรายการ ค่าพารามิเตอร์ที่ขอโดยทั่วไปคือเส้นทางฐานข้อมูลหรือที่เก็บข้อมูล Cloud Storage โปรดทราบว่าในระหว่างการติดตั้ง การกำหนดค่าใหม่ หรือการอัปเดต บริการ Extensions จะไม่ตรวจสอบสิ่งต่อไปนี้ในขณะที่ป้อนค่าพารามิเตอร์
- ไม่ว่าจะตั้งค่าฐานข้อมูลหรือCloud Storageที่ระบุไว้ภายในโปรเจ็กต์ Firebase ของผู้ใช้หรือไม่ก็ตาม
- ดูว่าเส้นทางฐานข้อมูลที่ระบุมีอยู่ในฐานข้อมูลของผู้ใช้หรือไม่
อย่างไรก็ตาม เมื่อส่วนขยายกำลังติดตั้งใช้งานทรัพยากรจริง Firebase คอนโซลหรือ Firebase CLI จะแสดงข้อความแสดงข้อผิดพลาดหากยังไม่ได้ตั้งค่าฐานข้อมูลหรือที่เก็บข้อมูล Cloud Storage ที่อ้างอิงในโปรเจ็กต์
เราขอแนะนำเป็นอย่างยิ่งให้คุณแจ้งให้ผู้ใช้ในPREINSTALL
ไฟล์
ทราบเกี่ยวกับข้อกำหนดเหล่านี้ เพื่อให้เมื่อผู้ใช้ติดตั้งส่วนขยายของคุณ ส่วนขยายจะ
ติดตั้งสำเร็จและทำงานได้ตามที่คาดไว้
พารามิเตอร์ของระบบ
พารามิเตอร์ของระบบจะควบคุมการกำหนดค่าพื้นฐานของทรัพยากรของส่วนขยาย เนื่องจากมีไว้เพื่อควบคุมการกำหนดค่าทรัพยากร คุณจึงเข้าถึงได้ในฐานะตัวแปรสภาพแวดล้อมจากภายในโค้ดฟังก์ชันไม่ได้
โดยปกติแล้วคุณไม่จำเป็นต้องประกาศสิ่งใดสำหรับพารามิเตอร์เหล่านี้ใน
extension.yaml
ระบบจะกำหนดค่าเหล่านี้โดยอัตโนมัติสำหรับอินสแตนซ์ส่วนขยายทุกรายการ
และผู้ใช้จะมีโอกาสตั้งค่าที่กำหนดเองเมื่อติดตั้งส่วนขยาย
อย่างไรก็ตาม หากส่วนขยายมีข้อกำหนดพิเศษเกี่ยวกับทรัพยากร
คุณสามารถตั้งค่าเฉพาะในระดับทรัพยากรแต่ละรายการได้ใน extension.yaml
การตั้งค่าการกำหนดค่าต่อทรัพยากรเหล่านี้จะลบล้างการตั้งค่าระดับอินสแตนซ์ของส่วนขยายของผู้ใช้
เช่น
resources:
- name: high_memory_function
type: firebaseextensions.v1beta.function
description: >-
This function needs at least 1GB of memory!
properties:
httpsTrigger: {}
runtime: nodejs18
availableMemoryMb: 1024
- name: normal_function
type: firebaseextensions.v1beta.function
description: >-
This function has no special memory requirements. It will use the
default value, or the value of `firebaseextension.v1beta.function/memory`
properties:
httpsTrigger: {}
runtime: nodejs18
พารามิเตอร์ของระบบที่ใช้ได้มีดังนี้
ชื่อ | ป้ายกำกับ (ใช้งานง่าย) | ฟิลด์ที่เกี่ยวข้องใน properties |
คำอธิบาย |
---|---|---|---|
firebaseextensions.v1beta.function/location | ตำแหน่ง | location |
ควรติดตั้งใช้งาน Cloud Functions ในภูมิภาคใด |
firebaseextensions.v1beta.function/memory | หน่วยความจำฟังก์ชัน | memory |
ควรจัดสรรหน่วยความจำกี่เมกะไบต์ให้กับแต่ละฟังก์ชัน |
firebaseextensions.v1beta.function/timeoutSeconds | ฟังก์ชันหมดเวลา | timeout |
ฟังก์ชันควรทำงานกี่วินาทีก่อนที่จะหมดเวลา |
firebaseextensions.v1beta.function/vpcConnectorEgressSettings | ขาออกของเครื่องมือเชื่อมต่อ VPC | vpcConnectorEgressSettings |
ควบคุมการรับส่งข้อมูลขาออกเมื่อกำหนดค่าเครื่องมือเชื่อมต่อ VPC |
firebaseextensions.v1beta.function/vpcConnector | เครื่องมือเชื่อมต่อ VPC | vpcConnector |
เชื่อมต่อ Cloud Functions กับเครื่องมือเชื่อมต่อ VPC ที่ระบุ |
firebaseextensions.v1beta.function/minInstances | อินสแตนซ์ของฟังก์ชันขั้นต่ำ | minInstances |
จำนวนอินสแตนซ์ขั้นต่ำของฟังก์ชันนี้ที่จะเรียกใช้พร้อมกัน |
firebaseextensions.v1beta.function/maxInstances | อินสแตนซ์ของฟังก์ชันสูงสุด | maxInstances |
จำนวนอินสแตนซ์สูงสุดของฟังก์ชันนี้ที่จะเรียกใช้พร้อมกัน |
firebaseextensions.v1beta.function/ingressSettings | การตั้งค่าขาเข้า | ingressSettings |
ควบคุมว่าระบบจะยอมรับการรับส่งข้อมูลขาเข้าจากที่ใด |
firebaseextensions.v1beta.function/labels | ป้ายกำกับ | labels |
ป้ายกำกับที่จะใช้กับทรัพยากรทั้งหมดในส่วนขยาย |