Hướng dẫn này hướng dẫn cách triển khai trang web Django được tạo tự động, mặc định cho môi trường AWS Elastic Beanstalk chạy Python. Hướng dẫn này chỉ cho bạn cách lưu trữ ứng dụng web Python trên đám mây bằng cách sử dụng môi trường Elastic Beanstalk Trong hướng dẫn này, bạn sẽ làm như sau điều kiện tiên quyếtĐể sử dụng bất kỳ dịch vụ AWS nào, bao gồm cả Elastic Beanstalk, bạn cần có tài khoản AWS và thông tin xác thực. Để tìm hiểu thêm và đăng ký, hãy truy cập https. //aws. amazon. com/ Để làm theo hướng dẫn này, bạn phải cài đặt tất cả các Điều kiện tiên quyết chung cho Python, bao gồm các gói sau Trăn 3. 7 hoặc muộn hơn C:\>%HOMEPATH%\eb-virt\Scripts\activate
(eb-virt) C:\> 9(eb-virt)~$ pip install django==2.2 0(eb-virt)~$ pip install django==2.2 1
Djangoframework được cài đặt như một phần của hướng dẫn Tạo môi trường với EB CLI yêu cầu vai trò dịch vụ. Bạn có thể tạo vai trò dịch vụ bằng cách tạo môi trường trong bảng điều khiển Elastic Beanstalk. Nếu bạn không có vai trò dịch vụ, EB CLI sẽ cố gắng tạo một vai trò khi bạn chạy (eb-virt)~$ pip install django==2.2 2Thiết lập môi trường ảo Python và cài đặt DjangoTạo một môi trường ảo với (eb-virt)~$ pip install django==2.2 0 và sử dụng nó để cài đặt Django và các phần phụ thuộc của nó. Bằng cách sử dụng môi trường ảo, bạn có thể biết chính xác gói ứng dụng của mình cần để các gói cần thiết được cài đặt trên phiên bản Amazon EC2 đang chạy ứng dụng của bạnCác bước sau minh họa các lệnh bạn phải nhập cho các hệ thống dựa trên Unix và Windows, được hiển thị trên các tab riêng biệt Để thiết lập môi trường ảo của bạn Tạo một môi trường ảo tên là (eb-virt)~$ pip install django==2.2 4Hệ thống dựa trên Unix~$ virtualenv ~/eb-virt WindowsC:\> virtualenv %HOMEPATH%\eb-virt
Kích hoạt môi trường ảo Hệ thống dựa trên Unix~$ source ~/eb-virt/bin/activate
(eb-virt) ~$ WindowsC:\>%HOMEPATH%\eb-virt\Scripts\activate
(eb-virt) C:\>
Bạn sẽ thấy (eb-virt)~$ pip install django==2.2 5 được thêm vào trước dấu nhắc lệnh của bạn, cho biết rằng bạn đang ở trong một môi trường ảoPhần còn lại của các hướng dẫn này hiển thị dấu nhắc lệnh Linux trong thư mục chính của bạn (eb-virt)~$ pip install django==2.2 6. Trên Windows, đây là (eb-virt)~$ pip install django==2.2 7>, trong đó (eb-virt)~$ pip install django==2.2 8 là tên đăng nhập Windows của bạnSử dụng C:\>%HOMEPATH%\eb-virt\Scripts\activate
(eb-virt) C:\> 9 để cài đặt Django(eb-virt)~$ pip install django==2.2
Phiên bản Django mà bạn cài đặt phải tương thích với phiên bản Python trên cấu hình Elastic Beanstalk Python mà bạn chọn để triển khai ứng dụng của mình. Để biết thông tin về triển khai, hãy xem Triển khai trang web của bạn với EB CLI trong chủ đề này Để biết thêm thông tin về các phiên bản nền tảng Python hiện tại, hãy xem Python trong tài liệu AWS Elastic Beanstalk Platforms Để biết khả năng tương thích của phiên bản Django với Python, hãy xem Tôi có thể sử dụng phiên bản Python nào với Django? Để xác minh rằng Django đã được cài đặt, hãy nhập thông tin sau (eb-virt)~$ pip install django==2.2 6Lệnh này liệt kê tất cả các gói được cài đặt trong môi trường ảo của bạn. Sau đó, bạn sử dụng đầu ra của lệnh này để định cấu hình dự án của mình để sử dụng với Elastic Beanstalk
Tạo một dự án DjangoBây giờ bạn đã sẵn sàng để tạo một dự án Django và chạy nó trên máy của mình, sử dụng môi trường ảo Hướng dẫn này sử dụng SQLite, một công cụ cơ sở dữ liệu có trong Python. Cơ sở dữ liệu được triển khai với các tệp dự án của bạn. Đối với môi trường sản xuất, chúng tôi khuyên bạn nên sử dụng Amazon Relational Database Service (Amazon RDS) và tách nó ra khỏi môi trường của bạn. Để biết thêm thông tin, hãy xem Thêm phiên bản Amazon RDS DB vào môi trường ứng dụng Python của bạn Để tạo một ứng dụng Django Kích hoạt môi trường ảo của bạn Hệ thống dựa trên Unix~$ source ~/eb-virt/bin/activate
(eb-virt) ~$ WindowsC:\>%HOMEPATH%\eb-virt\Scripts\activate
(eb-virt) C:\>
Bạn sẽ thấy tiền tố (eb-virt)~$ pip install django==2.2 5 được thêm vào trước dấu nhắc lệnh của bạn, cho biết bạn đang ở trong một môi trường ảoPhần còn lại của các hướng dẫn này hiển thị dấu nhắc lệnh Linux (eb-virt)~$ pip install django==2.2 6 trong thư mục chính của bạn và thư mục chính Linux (eb-virt)~$ pip install django==2.2 62. Trên Windows, đây là (eb-virt)~$ pip install django==2.2 7>, trong đó (eb-virt)~$ pip install django==2.2 8 là tên đăng nhập Windows của bạnSử dụng lệnh (eb-virt)~$ pip install django==2.2 65 để tạo dự án Django có tên là (eb-virt)~$ pip install django==2.2 66(eb-virt)~$ pip install django==2.2 6Lệnh này tạo một trang Django tiêu chuẩn có tên ebdjango với cấu trúc thư mục sau (eb-virt)~$ pip install django==2.2 7Chạy trang web Django của bạn tại địa phương với (eb-virt)~$ pip install django==2.2 67C:\> virtualenv %HOMEPATH%\eb-virt 0C:\> virtualenv %HOMEPATH%\eb-virt 1Trong trình duyệt web, hãy mở (eb-virt)~$ pip install django==2.2 68 để xem trang webKiểm tra nhật ký máy chủ để xem đầu ra từ yêu cầu của bạn. Để dừng máy chủ web và quay lại môi trường ảo của bạn, nhấn Ctrl+C C:\> virtualenv %HOMEPATH%\eb-virt 2
Định cấu hình ứng dụng Django của bạn cho Bean BeanalkBây giờ bạn đã có một trang web do Django cung cấp trên máy cục bộ của mình, bạn có thể định cấu hình trang web đó để triển khai với Elastic Beanstalk Theo mặc định, Bean Beanalk tìm kiếm một tệp có tên (eb-virt)~$ pip install django==2.2 69 để bắt đầu ứng dụng của bạn. Vì điều này không tồn tại trong dự án Django mà bạn đã tạo nên bạn cần thực hiện một số điều chỉnh đối với môi trường ứng dụng của mình. Bạn cũng phải đặt các biến môi trường để các mô-đun ứng dụng của bạn có thể được tảiĐể định cấu hình trang web của bạn cho Elastic Beanstalk Kích hoạt môi trường ảo của bạn Các hệ thống dựa trên UnixC:\> virtualenv %HOMEPATH%\eb-virt 3WindowsC:\> virtualenv %HOMEPATH%\eb-virt 4Chạy ~$ source ~/eb-virt/bin/activate
(eb-virt) ~$ 0, sau đó lưu đầu ra vào một tệp có tên ~$ source ~/eb-virt/bin/activate
(eb-virt) ~$ 1C:\> virtualenv %HOMEPATH%\eb-virt 5Beanstalk đàn hồi sử dụng ~$ source ~/eb-virt/bin/activate
(eb-virt) ~$ 1 để xác định gói nào sẽ cài đặt trên các phiên bản EC2 chạy ứng dụng của bạnTạo một thư mục có tên ~$ source ~/eb-virt/bin/activate
(eb-virt) ~$ 3C:\> virtualenv %HOMEPATH%\eb-virt 6Trong thư mục ~$ source ~/eb-virt/bin/activate
(eb-virt) ~$ 3, thêm tệp cấu hình có tên ~$ source ~/eb-virt/bin/activate
(eb-virt) ~$ 5 với văn bản sauVí dụ ~/ebdjango/. ebextensions/django. cấu hình C:\> virtualenv %HOMEPATH%\eb-virt 7Cài đặt này, ~$ source ~/eb-virt/bin/activate
(eb-virt) ~$ 6, chỉ định vị trí của tập lệnh WSGI mà Elastic Beanstalk sử dụng để khởi động ứng dụng của bạnNếu bạn đang sử dụng phiên bản nền tảng Amazon Linux AMI Python (trước Amazon Linux 2), hãy thay thế giá trị cho ~$ source ~/eb-virt/bin/activate
(eb-virt) ~$ 6 bằng ~$ source ~/eb-virt/bin/activate
(eb-virt) ~$ 8. Giá trị trong ví dụ hoạt động với máy chủ Gunicorn WSGI không được hỗ trợ trên các phiên bản nền tảng Amazon Linux AMIVô hiệu hóa môi trường ảo của bạn bằng lệnh ~$ source ~/eb-virt/bin/activate
(eb-virt) ~$ 9C:\> virtualenv %HOMEPATH%\eb-virt 8Kích hoạt lại môi trường ảo của bạn bất cứ khi nào bạn cần thêm các gói vào ứng dụng của mình hoặc chạy ứng dụng của bạn cục bộ
Triển khai trang web của bạn với EB CLIBạn đã thêm mọi thứ cần thiết để triển khai ứng dụng của mình trên Elastic Beanstalk. Thư mục dự án của bạn bây giờ sẽ trông như thế này C:\> virtualenv %HOMEPATH%\eb-virt 9Tiếp theo, bạn sẽ tạo môi trường ứng dụng và triển khai ứng dụng đã định cấu hình của mình với Elastic Beanstalk Ngay sau khi triển khai, bạn sẽ chỉnh sửa cấu hình của Django để thêm tên miền mà Elastic Beanstalk đã gán cho ứng dụng của bạn vào Django's C:\>%HOMEPATH%\eb-virt\Scripts\activate
(eb-virt) C:\> 0. Sau đó, bạn sẽ triển khai lại ứng dụng của mình. Đây là một yêu cầu bảo mật của Django, được thiết kế để ngăn chặn các cuộc tấn công tiêu đề HTTP C:\>%HOMEPATH%\eb-virt\Scripts\activate
(eb-virt) C:\> 1. Để biết thêm thông tin, hãy xem Xác thực tiêu đề máy chủĐể tạo môi trường và triển khai ứng dụng Django của bạn Hướng dẫn này sử dụng EB CLI làm cơ chế triển khai, nhưng bạn cũng có thể sử dụng bảng điều khiển Elastic Beanstalk để triển khai. zip chứa nội dung dự án của bạn Khởi tạo kho lưu trữ EB CLI của bạn bằng lệnh eb init ~$ source ~/eb-virt/bin/activate
(eb-virt) ~$ 0Lệnh này tạo một ứng dụng có tên C:\>%HOMEPATH%\eb-virt\Scripts\activate
(eb-virt) C:\> 2. Nó cũng định cấu hình kho lưu trữ cục bộ của bạn để tạo môi trường với Python 3 mới nhất. 7 phiên bản nền tảng(Tùy chọn) Chạy lại eb init để định cấu hình cặp khóa mặc định để bạn có thể sử dụng SSH để kết nối với phiên bản EC2 đang chạy ứng dụng của mình ~$ source ~/eb-virt/bin/activate
(eb-virt) ~$ 1Chọn một cặp khóa nếu bạn đã có hoặc làm theo lời nhắc để tạo một cặp khóa. Nếu bạn không thấy lời nhắc hoặc cần thay đổi cài đặt của mình sau này, hãy chạy eb init -i Tạo một môi trường và triển khai ứng dụng của bạn với eb create ~$ source ~/eb-virt/bin/activate
(eb-virt) ~$ 2Nếu bạn thấy thông báo lỗi "yêu cầu vai trò dịch vụ", hãy chạy tương tác (eb-virt)~$ pip install django==2.2 2 (không chỉ định tên môi trường) và EB CLI sẽ tạo vai trò cho bạnLệnh này tạo môi trường Elastic Beanstalk cân bằng tải có tên là C:\>%HOMEPATH%\eb-virt\Scripts\activate
(eb-virt) C:\> 4. Tạo một môi trường mất khoảng 5 phút. Khi Bean Beanalk đàn hồi tạo các tài nguyên cần thiết để chạy ứng dụng của bạn, nó sẽ xuất ra các thông báo thông tin mà EB CLI chuyển tiếp đến thiết bị đầu cuối của bạnKhi quá trình tạo môi trường hoàn tất, hãy tìm tên miền của môi trường mới của bạn bằng cách chạy eb status ~$ source ~/eb-virt/bin/activate
(eb-virt) ~$ 3Tên miền của môi trường của bạn là giá trị của thuộc tính C:\>%HOMEPATH%\eb-virt\Scripts\activate
(eb-virt) C:\> 5Mở tệp C:\>%HOMEPATH%\eb-virt\Scripts\activate
(eb-virt) C:\> 6 trong thư mục (eb-virt)~$ pip install django==2.2 66. Định vị cài đặt C:\>%HOMEPATH%\eb-virt\Scripts\activate
(eb-virt) C:\> 0, sau đó thêm tên miền của ứng dụng mà bạn đã tìm thấy ở bước trước vào giá trị của cài đặt. Nếu bạn không tìm thấy cài đặt này trong tệp, hãy thêm cài đặt đó vào một dòng mới~$ source ~/eb-virt/bin/activate
(eb-virt) ~$ 4Lưu tệp, rồi triển khai ứng dụng của bạn bằng cách chạy eb Deploy. Khi bạn chạy triển khai eb, EB CLI sẽ tổng hợp nội dung của thư mục dự án của bạn và triển khai nó vào môi trường của bạn ~$ source ~/eb-virt/bin/activate
(eb-virt) ~$ 5Nếu bạn đang sử dụng Git với dự án của mình, hãy xem Sử dụng EB CLI với Git Khi quá trình cập nhật môi trường hoàn tất, hãy mở trang web của bạn bằng eb open ~$ source ~/eb-virt/bin/activate
(eb-virt) ~$ 6Điều này sẽ mở ra một cửa sổ trình duyệt sử dụng tên miền được tạo cho ứng dụng của bạn. Bạn sẽ thấy cùng một trang web Django mà bạn đã tạo và thử nghiệm cục bộ
Nếu bạn không thấy ứng dụng của mình chạy hoặc nhận được thông báo lỗi, hãy xem Khắc phục sự cố triển khai để được trợ giúp về cách xác định nguyên nhân gây ra lỗi Nếu bạn thấy ứng dụng của mình đang chạy thì xin chúc mừng, bạn đã triển khai ứng dụng Django đầu tiên của mình với Elastic Beanstalk Bây giờ bạn đã có một ứng dụng đang chạy trên Elastic Beanstalk, bạn có thể cập nhật và triển khai lại ứng dụng của mình hoặc cấu hình của ứng dụng đó và Elastic Beanstalk sẽ thực hiện công việc cập nhật các phiên bản của bạn và bắt đầu phiên bản ứng dụng mới của bạn Đối với ví dụ này, chúng tôi sẽ kích hoạt bảng điều khiển dành cho quản trị viên của Django và định cấu hình một vài cài đặt khác Sửa đổi cài đặt trang web của bạnTheo mặc định, trang web Django của bạn sử dụng múi giờ UTC để hiển thị thời gian. Bạn có thể thay đổi điều này bằng cách chỉ định múi giờ trong C:\>%HOMEPATH%\eb-virt\Scripts\activate
(eb-virt) C:\> 6Để thay đổi múi giờ của trang web của bạn Sửa đổi cài đặt (eb-virt)~$ pip install django==2.2 60 trong C:\>%HOMEPATH%\eb-virt\Scripts\activate
(eb-virt) C:\> 6Ví dụ ~/ebdjango/ebdjango/settings. py ~$ source ~/eb-virt/bin/activate
(eb-virt) ~$ 7Để biết danh sách các múi giờ, hãy truy cập trang này Triển khai ứng dụng vào môi trường Elastic Beanstalk của bạn ~$ source ~/eb-virt/bin/activate
(eb-virt) ~$ 8
Tạo một quản trị viên trang webBạn có thể tạo quản trị viên trang cho ứng dụng Django của mình để truy cập bảng điều khiển dành cho quản trị viên trực tiếp từ trang web. Chi tiết đăng nhập của quản trị viên được lưu trữ an toàn trong hình ảnh cơ sở dữ liệu cục bộ có trong dự án mặc định mà Django tạo Để tạo một quản trị viên trang web Khởi tạo cơ sở dữ liệu cục bộ của ứng dụng Django của bạn ~$ source ~/eb-virt/bin/activate
(eb-virt) ~$ 9Chạy (eb-virt)~$ pip install django==2.2 62 để tạo quản trị viênC:\>%HOMEPATH%\eb-virt\Scripts\activate
(eb-virt) C:\> 0Để cho Django biết nơi lưu trữ các tệp tĩnh, hãy xác định (eb-virt)~$ pip install django==2.2 63 trong C:\>%HOMEPATH%\eb-virt\Scripts\activate
(eb-virt) C:\> 6Ví dụ ~/ebdjango/ebdjango/settings. py C:\>%HOMEPATH%\eb-virt\Scripts\activate
(eb-virt) C:\> 1Chạy (eb-virt)~$ pip install django==2.2 65 để điền vào thư mục (eb-virt)~$ pip install django==2.2 66 các nội dung tĩnh (JavaScript, CSS và hình ảnh) cho trang quản trịC:\>%HOMEPATH%\eb-virt\Scripts\activate
(eb-virt) C:\> 2Triển khai ứng dụng của bạn ~$ source ~/eb-virt/bin/activate
(eb-virt) ~$ 5Xem bảng điều khiển dành cho quản trị viên bằng cách mở trang web trong trình duyệt của bạn, nối thêm (eb-virt)~$ pip install django==2.2 67 vào URL của trang web, chẳng hạn như sauC:\>%HOMEPATH%\eb-virt\Scripts\activate
(eb-virt) C:\> 4Đăng nhập bằng tên người dùng và mật khẩu mà bạn đã cấu hình ở bước 2
Bạn có thể sử dụng một quy trình tương tự để cập nhật/kiểm tra cục bộ, sau đó là triển khai eb. Beanstalk đàn hồi thực hiện công việc cập nhật máy chủ trực tiếp của bạn, vì vậy bạn có thể tập trung vào phát triển ứng dụng thay vì quản trị máy chủ Thêm tệp cấu hình di chuyển cơ sở dữ liệuBạn có thể thêm các lệnh vào tập lệnh ~$ source ~/eb-virt/bin/activate
(eb-virt) ~$ 3 của mình để chạy khi trang web của bạn được cập nhật. Điều này cho phép bạn tự động tạo di chuyển cơ sở dữ liệuĐể thêm bước di chuyển khi ứng dụng của bạn được triển khai Tạo một file cấu hình tên là (eb-virt)~$ pip install django==2.2 69 với nội dung như sauVí dụ ~/ebdjango/. ebextensions/db-migrate. cấu hình C:\>%HOMEPATH%\eb-virt\Scripts\activate
(eb-virt) C:\> 5Tệp cấu hình này kích hoạt môi trường ảo của máy chủ và chạy lệnh (eb-virt)~$ pip install django==2.2 70 trong quá trình triển khai, trước khi bắt đầu ứng dụng của bạn. Bởi vì nó chạy trước khi ứng dụng khởi động, bạn cũng phải định cấu hình biến môi trường (eb-virt)~$ pip install django==2.2 71 một cách rõ ràng (thường thì (eb-virt)~$ pip install django==2.2 72 sẽ đảm nhận việc này cho bạn trong khi khởi động). Chỉ định (eb-virt)~$ pip install django==2.2 73 trong lệnh đảm bảo rằng nó chỉ được chạy một lần khi bạn đang triển khai cho nhiều phiên bảnTriển khai ứng dụng của bạn ~$ source ~/eb-virt/bin/activate
(eb-virt) ~$ 5
Dọn dẹpĐể tiết kiệm số giờ sử dụng phiên bản và các tài nguyên AWS khác giữa các phiên phát triển, hãy chấm dứt môi trường Elastic Beanstalk của bạn bằng eb chấm dứt C:\>%HOMEPATH%\eb-virt\Scripts\activate
(eb-virt) C:\> 7Lệnh này chấm dứt môi trường và tất cả tài nguyên AWS chạy trong đó. Tuy nhiên, nó không xóa ứng dụng, vì vậy bạn luôn có thể tạo nhiều môi trường hơn với cùng cấu hình bằng cách chạy lại eb create. Để biết thêm thông tin về các lệnh EB CLI, hãy xem Quản lý môi trường Elastic Beanstalk bằng EB CLI Nếu bạn đã hoàn thành ứng dụng mẫu, bạn cũng có thể xóa thư mục dự án và môi trường ảo C:\>%HOMEPATH%\eb-virt\Scripts\activate
(eb-virt) C:\> 8Bước tiếp theoĐể biết thêm thông tin về Django, bao gồm hướng dẫn chuyên sâu, hãy xem tài liệu chính thức Nếu bạn muốn dùng thử một khung web Python khác, hãy xem Triển khai ứng dụng Flask cho Elastic Beanstalk |