Hướng dẫn này hướng dẫn triển khai Trang web Django mặc định, được tạo tự động 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
9C:\>
%HOMEPATH%\eb-virt\Scripts\activate
[eb-virt] C:\>
0[eb-virt]~$
pip install django==2.2
1[eb-virt]~$
pip install django==2.2
Django Framework đượ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 Django
Tạ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à
4Hệ thống dựa trên Unix[eb-virt]~$
pip install django==2.2
Windows~$
virtualenv ~/eb-virt
C:\>
virtualenv %HOMEPATH%\eb-virt
Kích hoạt môi trường ảo
Hệ thống dựa trên Unix
Windows~$
source ~/eb-virt/bin/activate
[eb-virt] ~$C:\>
%HOMEPATH%\eb-virt\Scripts\activate
[eb-virt] C:\>Bạn sẽ thấy
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 ảo[eb-virt]~$
pip install django==2.2
Phầ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
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ạn[eb-virt]~$
pip install django==2.2
Sử dụng
9 để cài đặt DjangoC:\>
%HOMEPATH%\eb-virt\Scripts\activate
[eb-virt] C:\>[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
6[eb-virt]~$
pip install django==2.2
Lệ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 Django
Bâ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
Windows~$
source ~/eb-virt/bin/activate
[eb-virt] ~$C:\>
%HOMEPATH%\eb-virt\Scripts\activate
[eb-virt] C:\>Bạn sẽ thấy tiền tố
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 ảo[eb-virt]~$
pip install django==2.2
Phầ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
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ạn[eb-virt]~$
pip install django==2.2
Sử dụng lệnh
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
6[eb-virt]~$
pip install django==2.2
Lệ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
7[eb-virt]~$
pip install django==2.2
Chạy trang web Django của bạn tại địa phương với
67[eb-virt]~$
pip install django==2.2
0C:\>
virtualenv %HOMEPATH%\eb-virt
1C:\>
virtualenv %HOMEPATH%\eb-virt
Trong trình duyệt web, hãy mở
68 để xem trang web[eb-virt]~$
pip install django==2.2
Kiể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
2C:\>
virtualenv %HOMEPATH%\eb-virt
Định cấu hình ứng dụng Django của bạn cho Bean Beanalk
Bâ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 Unix
3WindowsC:\>
virtualenv %HOMEPATH%\eb-virt
4C:\>
virtualenv %HOMEPATH%\eb-virt
Chạy
0, sau đó lưu đầu ra vào một tệp có tên~$
source ~/eb-virt/bin/activate
[eb-virt] ~$
1~$
source ~/eb-virt/bin/activate
[eb-virt] ~$
5C:\>
virtualenv %HOMEPATH%\eb-virt
Beanstalk đàn hồi sử dụng
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ạn~$
source ~/eb-virt/bin/activate
[eb-virt] ~$Tạo một thư mục có tên
3~$
source ~/eb-virt/bin/activate
[eb-virt] ~$
6C:\>
virtualenv %HOMEPATH%\eb-virt
Trong thư mục
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 sau~$
source ~/eb-virt/bin/activate
[eb-virt] ~$Ví dụ ~/ebdjango/. ebextensions/django. cấu hình
7C:\>
virtualenv %HOMEPATH%\eb-virt
Cài đặt này,
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ạn~$
source ~/eb-virt/bin/activate
[eb-virt] ~$Nế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
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 AMI~$
source ~/eb-virt/bin/activate
[eb-virt] ~$Vô hiệu hóa môi trường ảo của bạn bằng lệnh
9~$
source ~/eb-virt/bin/activate
[eb-virt] ~$
8C:\>
virtualenv %HOMEPATH%\eb-virt
Kí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 CLI
Bạ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
0~$
source ~/eb-virt/bin/activate
[eb-virt] ~$Lệnh này tạo một ứng dụng có tên
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ảngC:\>
%HOMEPATH%\eb-virt\Scripts\activate
[eb-virt] C:\>[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 bạn
1~$
source ~/eb-virt/bin/activate
[eb-virt] ~$Chọ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
2~$
source ~/eb-virt/bin/activate
[eb-virt] ~$Nế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
2 [không chỉ định tên môi trường] và EB CLI sẽ tạo vai trò cho bạn[eb-virt]~$
pip install django==2.2
Lệnh này tạo môi trường Elastic Beanstalk cân bằng tải có tên là
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ạnC:\>
%HOMEPATH%\eb-virt\Scripts\activate
[eb-virt] C:\>Khi 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
3~$
source ~/eb-virt/bin/activate
[eb-virt] ~$Tên miền của môi trường của bạn là giá trị của thuộc tính
5C:\>
%HOMEPATH%\eb-virt\Scripts\activate
[eb-virt] C:\>Mở tệp
6 trong thư mụcC:\>
%HOMEPATH%\eb-virt\Scripts\activate
[eb-virt] C:\>
66. Định vị cài đặt[eb-virt]~$
pip install django==2.2
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ớiC:\>
%HOMEPATH%\eb-virt\Scripts\activate
[eb-virt] C:\>
4~$
source ~/eb-virt/bin/activate
[eb-virt] ~$Lư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
5~$
source ~/eb-virt/bin/activate
[eb-virt] ~$Nế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
6~$
source ~/eb-virt/bin/activate
[eb-virt] ~$Đ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ạn
Theo 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
60 trong[eb-virt]~$
pip install django==2.2
6C:\>
%HOMEPATH%\eb-virt\Scripts\activate
[eb-virt] C:\>Ví dụ ~/ebdjango/ebdjango/settings. py
7~$
source ~/eb-virt/bin/activate
[eb-virt] ~$Để 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
8~$
source ~/eb-virt/bin/activate
[eb-virt] ~$
Tạo một quản trị viên trang web
Bạ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
9~$
source ~/eb-virt/bin/activate
[eb-virt] ~$Chạy
62 để tạo quản trị viên[eb-virt]~$
pip install django==2.2
0C:\>
%HOMEPATH%\eb-virt\Scripts\activate
[eb-virt] C:\>Để cho Django biết nơi lưu trữ các tệp tĩnh, hãy xác định
63 trong[eb-virt]~$
pip install django==2.2
6C:\>
%HOMEPATH%\eb-virt\Scripts\activate
[eb-virt] C:\>Ví dụ ~/ebdjango/ebdjango/settings. py
1C:\>
%HOMEPATH%\eb-virt\Scripts\activate
[eb-virt] C:\>Chạy
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ị[eb-virt]~$
pip install django==2.2
2C:\>
%HOMEPATH%\eb-virt\Scripts\activate
[eb-virt] C:\>Triển khai ứng dụng của bạn
5~$
source ~/eb-virt/bin/activate
[eb-virt] ~$Xem 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
67 vào URL của trang web, chẳng hạn như sau[eb-virt]~$
pip install django==2.2
4C:\>
%HOMEPATH%\eb-virt\Scripts\activate
[eb-virt] C:\>Đă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ệu
Bạ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à
69 với nội dung như sau[eb-virt]~$
pip install django==2.2
Ví dụ ~/ebdjango/. ebextensions/db-migrate. cấu hình
5C:\>
%HOMEPATH%\eb-virt\Scripts\activate
[eb-virt] C:\>Tệ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
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ản[eb-virt]~$
pip install django==2.2
Triển khai ứng dụng của bạn
5~$
source ~/eb-virt/bin/activate
[eb-virt] ~$
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 với 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