มีสองวิธีในการระบุการขึ้นต่อกันสำหรับฟังก์ชันคลาวด์ที่เขียนด้วย Python: การใช้ไฟล์ requirements.txt
ของตัวจัดการแพ็คเกจ pip หรือการรวมการขึ้นต่อกันในเครื่องควบคู่ไปกับฟังก์ชันของคุณ
ไม่รองรับข้อกำหนดการพึ่งพาโดยใช้มาตรฐาน Pipfile/Pipfile.lock โครงการของคุณไม่ควรรวมไฟล์เหล่านี้
การระบุการพึ่งพาด้วย pip
การพึ่งพาใน Python ได้รับการจัดการด้วย pip และแสดงในไฟล์ข้อมูลเมตาที่เรียกว่า requirements.txt
ไฟล์นี้ต้องอยู่ในไดเร็กทอรีเดียวกันกับไฟล์ main.py
ที่มีโค้ดฟังก์ชันของคุณ
เมื่อคุณปรับใช้หรือปรับใช้ฟังก์ชันของคุณอีกครั้ง Cloud Functions จะใช้ pip เพื่อดาวน์โหลดและติดตั้งเวอร์ชันล่าสุดของการขึ้นต่อกันของคุณตามที่ประกาศไว้ในไฟล์ requirements.txt
ไฟล์ requirements.txt
มีหนึ่งบรรทัดต่อแพ็คเกจ แต่ละบรรทัดประกอบด้วยชื่อแพ็กเกจ และเวอร์ชันที่ร้องขอ (ไม่บังคับ) สำหรับรายละเอียดเพิ่มเติม โปรดดูที่ การอ้างอิง requirements.txt
.txt
เพื่อป้องกันไม่ให้บิลด์ของคุณได้รับผลกระทบจากการเปลี่ยนแปลงเวอร์ชันการขึ้นต่อกัน ให้ลองปักหมุดแพ็คเกจการขึ้นต่อกันของคุณเป็นเวอร์ชันเฉพาะ
ต่อไปนี้เป็นตัวอย่างไฟล์ requirements.txt
:
functions-framework requests==2.20.0 numpy
Functions Framework เป็นสิ่งที่จำเป็นสำหรับฟังก์ชันทั้งหมด แม้ว่า Cloud Functions จะติดตั้งในนามของคุณเมื่อมีการสร้างฟังก์ชันนี้ เราขอแนะนำให้คุณรวมฟังก์ชันดังกล่าวเป็นการขึ้นต่อกันที่ชัดเจนเพื่อความชัดเจน
หากฟังก์ชันของคุณอาศัยการขึ้นต่อกันส่วนตัว เราขอแนะนำให้คุณมิเรอร์ functions-framework
ไปยังรีจิสทรีส่วนตัวของคุณ รวม functions-framework
ที่ทำมิเรอร์ไว้เป็นการพึ่งพาฟังก์ชันของคุณ เพื่อหลีกเลี่ยงการติดตั้งแพ็คเกจจากอินเทอร์เน็ตสาธารณะ
บรรจุภัณฑ์การพึ่งพาท้องถิ่น
คุณยังสามารถจัดแพ็คเกจและปรับใช้การขึ้นต่อกันควบคู่ไปกับฟังก์ชันของคุณได้ วิธีการนี้มีประโยชน์หากการพึ่งพาของคุณไม่พร้อมใช้งานผ่านตัวจัดการแพ็คเกจ 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