การระบุทรัพยากร Dependency สำหรับ Cloud Functions ที่เขียนด้วยภาษามี 2 วิธี
Python: การใช้ตัวจัดการแพ็กเกจ pip
requirements.txt
ไฟล์หรือจัดแพ็กเกจทรัพยากร Dependency ภายในเครื่องควบคู่ไปกับฟังก์ชัน
ข้อกำหนดการขึ้นต่อกันที่ใช้มาตรฐาน Pipfile/Pipfile.lock คือ ไม่รองรับ โปรเจ็กต์ไม่ควรมีไฟล์เหล่านี้
การระบุทรัพยากร Dependency ด้วย PIP
การขึ้นต่อกันใน Python ได้รับการจัดการด้วย PIP และแสดงในไฟล์ข้อมูลเมตา
โทรหา
requirements.txt
ไฟล์นี้ต้องอยู่ในไดเรกทอรีเดียวกับไฟล์ main.py
ที่มี
รหัสฟังก์ชัน
เมื่อคุณทำให้ฟังก์ชันใช้งานได้หรือทำให้ใช้งานได้อีกครั้ง Cloud Functions
ใช้ PIP เพื่อดาวน์โหลดและติดตั้งเวอร์ชันล่าสุด
ทรัพยากร Dependency ตามที่ประกาศไว้ในไฟล์ requirements.txt
ไฟล์ requirements.txt
จะมี 1 บรรทัดต่อแพ็กเกจ แต่ละบรรทัดประกอบด้วย
ชื่อแพ็กเกจ และเวอร์ชันที่ขอ (ไม่บังคับ) ดูรายละเอียดเพิ่มเติมได้ที่
requirements.txt
ข้อมูลอ้างอิง
หากต้องการป้องกันไม่ให้บิลด์ของคุณได้รับผลกระทบจากการเปลี่ยนแปลงเวอร์ชันของทรัพยากร Dependency ให้ลองปักหมุดแพ็กเกจทรัพยากร Dependency เป็นเวอร์ชันที่เจาะจง
ต่อไปนี้คือตัวอย่างไฟล์ requirements.txt
functions-framework requests==2.20.0 numpy
เฟรมเวิร์กฟังก์ชันคือ ทรัพยากร Dependency ที่จำเป็นสำหรับทุกฟังก์ชัน ถึงแม้ว่า Cloud Functions เราขอแนะนำให้ติดตั้งในนามของคุณเมื่อมีการสร้างฟังก์ชัน ที่คุณใช้เป็นทรัพยากร Dependency ที่ชัดเจนเพื่อความชัดเจน
หาก
ต้องใช้ทรัพยากร Dependency ส่วนตัว เราขอแนะนำให้คุณ
มิเรอร์ functions-framework
ไปยังรีจิสทรีส่วนตัว รวมการมิเรอร์
functions-framework
เป็นทรัพยากร Dependency ของฟังก์ชันเพื่อหลีกเลี่ยงการติดตั้ง
จากอินเทอร์เน็ตสาธารณะ
การรวมแพ็กเกจทรัพยากร Dependency ภายใน
นอกจากนี้ คุณยังจัดแพ็กเกจและทำให้ทรัพยากร Dependency ใช้งานได้ควบคู่ไปกับฟังก์ชัน ช่วงเวลานี้ วิธีการมีประโยชน์หากทรัพยากร Dependency ไม่พร้อมใช้งานผ่าน PIP โปรแกรมจัดการแพ็กเกจ หรือหากอินเทอร์เน็ตของสภาพแวดล้อม Cloud Functions มีการจำกัดการเข้าถึง
ตัวอย่างเช่น คุณอาจใช้โครงสร้างไดเรกทอรี เช่น
myfunction/ ├── main.py └── localpackage/ ├── __init__.py └── script.py
จากนั้นคุณสามารถนำเข้าโค้ดตามปกติจาก localpackage
โดยใช้
import
# Code in main.py from localpackage import script
โปรดทราบว่าวิธีนี้จะไม่เรียกใช้ไฟล์ setup.py
ใดๆ แพ็กเกจที่มี
ยังสามารถรวมกลุ่มไฟล์ได้ แต่อาจทำงานอย่างไม่ถูกต้องใน Cloud Functions