Cửa sổ tiêu điểm python

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

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
2

Thiế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ạn

Cá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

  1. Tạo một môi trường ảo tên là

    (eb-virt)~$ pip install django==2.2
    4

    Hệ thống dựa trên Unix
    ~$ virtualenv ~/eb-virt
    Windows
    C:\> virtualenv %HOMEPATH%\eb-virt
  2. Kích hoạt môi trường ảo

    Hệ thống dựa trên Unix
    ~$ source ~/eb-virt/bin/activate
    (eb-virt) ~$
    Windows
    C:\>%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 ảo

    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

    (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ạn

  3. Sử 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?

  4. Để 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
    6

    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

  1. 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) ~$
    Windows
    C:\>%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 ảo

    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

    (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ạn

  2. Sử 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
    6

    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

    (eb-virt)~$ pip install django==2.2
    7
  3. Chạy trang web Django của bạn tại địa phương với

    (eb-virt)~$ pip install django==2.2
    67

    C:\> virtualenv %HOMEPATH%\eb-virt
    0
    C:\> virtualenv %HOMEPATH%\eb-virt
    1
  4. Trong trình duyệt web, hãy mở

    (eb-virt)~$ pip install django==2.2
    68 để xem trang web

  5. 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

    C:\> virtualenv %HOMEPATH%\eb-virt
    2

Đị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

  1. Kích hoạt môi trường ảo của bạn

    Các hệ thống dựa trên Unix
    C:\> virtualenv %HOMEPATH%\eb-virt
    3Windows
    C:\> virtualenv %HOMEPATH%\eb-virt
    4
  2. Chạ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) ~$
    1

    C:\> virtualenv %HOMEPATH%\eb-virt
    5

    Beanstalk đà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ạn

  3. Tạo một thư mục có tên

    ~$ source ~/eb-virt/bin/activate
    (eb-virt) ~$
    3

    C:\> virtualenv %HOMEPATH%\eb-virt
    6
  4. Trong 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 sau

    Ví dụ ~/ebdjango/. ebextensions/django. cấu hình

    C:\> virtualenv %HOMEPATH%\eb-virt
    7

    Cà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ạn

    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

    ~$ 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 AMI

  5. Vô hiệu hóa môi trường ảo của bạn bằng lệnh

    ~$ source ~/eb-virt/bin/activate
    (eb-virt) ~$
    9

    C:\> virtualenv %HOMEPATH%\eb-virt
    8

    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
9

Tiế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

  1. 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) ~$
    0

    Lệ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

  2. (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) ~$
    1

    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

  3. 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) ~$
    2

    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

    (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ạn

    Lệ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ạn

  4. 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

    ~$ source ~/eb-virt/bin/activate
    (eb-virt) ~$
    3

    Tê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:\>
    5

  5. Mở 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) ~$
    4
  6. 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

    ~$ source ~/eb-virt/bin/activate
    (eb-virt) ~$
    5

    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

  7. 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ạ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

  1. Sửa đổi cài đặt

    (eb-virt)~$ pip install django==2.2
    60 trong
    C:\>%HOMEPATH%\eb-virt\Scripts\activate
    (eb-virt) C:\>
    6

    Ví 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

  2. 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 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

  1. 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) ~$
    9
  2. Chạy

    (eb-virt)~$ pip install django==2.2
    62 để tạo quản trị viên

    C:\>%HOMEPATH%\eb-virt\Scripts\activate
    (eb-virt) C:\>
    0
  3. Để 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:\>
    6

    Ví dụ ~/ebdjango/ebdjango/settings. py

    C:\>%HOMEPATH%\eb-virt\Scripts\activate
    (eb-virt) C:\>
    1

  4. Chạ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:\>
    2
  5. Triển khai ứng dụng của bạn

    ~$ source ~/eb-virt/bin/activate
    (eb-virt) ~$
    5
  6. 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

    (eb-virt)~$ pip install django==2.2
    67 vào URL của trang web, chẳng hạn như sau

    C:\>%HOMEPATH%\eb-virt\Scripts\activate
    (eb-virt) C:\>
    4

    Cửa sổ tiêu điểm python

  7. Đă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

    Cửa sổ tiêu điểm python

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

  1. 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ư sau

    Ví dụ ~/ebdjango/. ebextensions/db-migrate. cấu hình

    C:\>%HOMEPATH%\eb-virt\Scripts\activate
    (eb-virt) C:\>
    5

    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

    (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ản

  2. Triể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:\>
7

Lệ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:\>
8

Bướ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