7

Tôi có thể cập nhật hoặc loại bỏ pip và setuptools được cung cấp với AWS Elastic Beanstalk không?Tôi có thể cập nhật các phiên bản pip và thiết lập cũ của Amazon không?

Các phiên bản của pip và setuptools cung cấp môi trường AWS đàn hồi Beanstalk Python của tôi (trong môi trường ảo 2.7 chạy ứng dụng của tôi, ami-d14608e1; trong /opt/python/run/venv/lib/python2.7/site-packages) rất cũ: theo báo cáo của

pip list --outdated 

họ

setuptools (Current: 2.2 Latest: 12.0.5) 
pip (Current: 1.5.4 Latest: 6.0.7) 

tôi có thể cập nhật này (ví dụ như bằng cách liệt kê chúng trong requirements.txt của tôi) hoặc là các phiên bản cụ thể dự kiến ​​hoặc cần thiết cho Python EB và quá trình triển khai để làm việc?

Trả lời

10

Lấy pip làm ví dụ, môi trường AWS mặc định cung cấp thường là phiên bản cũ. Hiện tại, nó là 6.1.1 trên máy tôi sử dụng, trong khi pip lặp lại ở mỗi cuộc gọi 9.0.1 khả dụng.

Đôi khi, các phụ thuộc yêu cầu các phiên bản gần đây của pip. Một cách để có sẵn nó là dựa trên chính bản thân số pip, vì các nguồn yum do AWS cung cấp sẽ chậm hơn để nâng cấp (do tác động tuyệt đối có thể gây ra ...).

Các dịch vụ AWS khác nhau có các giải pháp khác nhau. Câu hỏi đặt ra là về cây đậu. Giả sử triển khai dựa trên eb do AWS cung cấp, có thể thực hiện các lệnh trong vùng chứa đích:

  • Tạo tệp .ebextensions/upgrade_pip.config.
  • Chèn lệnh để thực thi.

Để nâng cấp pip, một lệnh như thế này không được công việc:

commands: 
    pip_upgrade: 
    command: /opt/python/run/venv/bin/pip install --upgrade pip 
    ignoreErrors: false 

Lưu ý rằng tên tập tin cho .ebextensions/upgrade_pip.config xác định thứ tự thực hiện. Nếu nó cần chạy sớm hơn bất kỳ tập lệnh nào khác trong .ebextensions, thì cần có tiền tố như 01_upgrade....

Các vấn đề liên quan