Xử lý các phần phụ thuộc


Có hai cách để chỉ định các phần phụ thuộc cho Hàm đám mây được viết bằng Python: sử dụng tệp requirements.txt của trình quản lý gói pip hoặc đóng gói các phần phụ thuộc cục bộ cùng với hàm.

Không hỗ trợ thông số kỹ thuật của phần phụ thuộc sử dụng tiêu chuẩn Pipfile/Pipfile.lock. Dự án của bạn không được chứa những tệp này.

Chỉ định phần phụ thuộc bằng pip

Các phần phụ thuộc trong Python được quản lý bằng pip và biểu thị trong tệp siêu dữ liệu có tên là requirements.txt. Tệp này phải nằm trong cùng thư mục với tệp main.py chứa mã hàm.

Khi bạn triển khai hoặc triển khai lại chức năng, Cloud Functions sử dụng pip để tải xuống và cài đặt phiên bản mới nhất của các phần phụ thuộc như đã khai báo trong tệp requirements.txt. Tệp requirements.txt chứa một dòng cho mỗi gói. Mỗi dòng chứa tên gói và phiên bản được yêu cầu (không bắt buộc). Để biết thêm thông tin chi tiết, hãy xem tài liệu tham khảo về requirements.txt.

Để bản dựng của bạn không bị ảnh hưởng khi các thay đổi về phiên bản phần phụ thuộc, hãy cân nhắc ghim các gói phần phụ thuộc vào một phiên bản cụ thể.

Sau đây là ví dụ về tệp requirements.txt:

functions-framework
requests==2.20.0
numpy

Khung hàm là phần phụ thuộc bắt buộc đối với tất cả hàm. Mặc dù Chức năng đám mây thay mặt bạn cài đặt hàm này khi hàm được tạo, nhưng bạn nên đưa hàm đó vào dưới dạng một phần phụ thuộc rõ ràng để đảm bảo sự rõ ràng.

Nếu hàm của bạn dựa vào các phần phụ thuộc riêng tư, bạn nên phản chiếu functions-framework tới sổ đăng ký riêng tư của mình. Đưa functions-framework được phản chiếu vào dưới dạng phần phụ thuộc vào hàm để tránh cài đặt gói qua Internet công cộng.

Đóng gói phần phụ thuộc cục bộ

Bạn cũng có thể đóng gói và triển khai các phần phụ thuộc cùng với hàm. Phương pháp này sẽ hữu ích nếu phần phụ thuộc không có sẵn thông qua trình quản lý gói pip hoặc nếu quyền truy cập Internet của môi trường Chức năng đám mây bị hạn chế.

Ví dụ: bạn có thể sử dụng cấu trúc thư mục như sau:

myfunction/
├── main.py
└── localpackage/
    ├── __init__.py
    └── script.py

Sau đó, bạn có thể nhập mã như bình thường từ localpackage bằng cách sử dụng câu lệnh import sau.

# Code in main.py
from localpackage import script

Xin lưu ý rằng phương pháp này sẽ không chạy bất kỳ tệp setup.py nào. Các gói có những tệp đó vẫn có thể được đóng gói, nhưng có thể không chạy đúng cách trên Chức năng đám mây.