คุณระบุทรัพยากร Dependency สำหรับ Cloud Functions ที่เขียนด้วย
Python ได้ 2 วิธี ได้แก่ การใช้ไฟล์ pip ของตัวจัดการแพ็กเกจ
requirements.txt หรือการแพ็กทรัพยากร Dependency ภายในพร้อมกับฟังก์ชัน
ระบบไม่รองรับการระบุทรัพยากร Dependency โดยใช้มาตรฐาน Pipfile/Pipfile.lock โปรเจ็กต์ไม่ควรรวมไฟล์เหล่านี้
การระบุทรัพยากร Dependency ด้วย pip
ระบบจะจัดการทรัพยากร Dependency ใน 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 ภายใน
นอกจากนี้ คุณยังแพ็กและทำให้ทรัพยากร 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