Yêu cầu txt python aws lambda
AWS Lambda hiện là một trong những tài nguyên được sử dụng nhiều nhất cho cái gọi là Ứng dụng không có máy chủ. Tính linh hoạt được trừu tượng hóa từ công cụ này không thể bị lạm dụng với lý do như - "nó không chứa lib X hoặc Y trong môi trường của nó. " Show
Trong bài đăng này, mục tiêu của tôi là chia sẻ một mẹo hữu ích đi kèm với Hàm Lambda. các lớp được xây dựng của riêng bạn Một Layer cho phép bạn triển khai. zip chứa bất kỳ loại phụ thuộc nào cần cho hàm, chẳng hạn như thư viện mã hoặc thời gian chạy tùy chỉnh. Trong phần tiếp theo, tôi sẽ trình bày cách
xây dựng của bạn. tập tin nénTôi sẽ sử dụng Rice n' Beans từ thế giới Pythonic làm thư viện ví dụ, gấu trúc và NumPy. Bước này sẽ rất đơn giản khi bạn có thể thực hiện ở bất cứ đâu bạn muốn Trong các dòng mã sau, chúng tôi đang cài đặt tất cả các gói được đặt trên một. txt nằm trên cùng thư mục nơi lệnh sẽ được thực thi (các yêu cầu cũ tốt. txt) 1. Cài đặt nó
Các [. ] trước các câu lệnh này đang cho phép lệnh này chạy trên Máy tính xách tay Jupyter Lệnh [-t] đặt đường dẫn đích mà bạn muốn các gói được cài đặt tại -Trong trường hợp này, trên một thư mục có tên python Yêu cầu?Bố cục tệp này về cơ bản chứa tên của từng thư viện. Bạn có thể chỉ định phiên bản từ nó, nhưng tên là thuộc tính bắt buộc duy nhất (tất nhiên)
(Trong trường hợp bạn không chỉ định phiên bản phụ thuộc, phiên bản mới nhất hiện có sẽ là phiên bản được cài đặt) Tôi có cần phải tự viết tất cả các tên gói này không? Nếu bạn muốn cài đặt tất cả các phụ thuộc thư viện hiện có trong môi trường hiện tại của mình, bạn có thể chạy câu lệnh sau và tạo một. txt một cách nhanh chóng,
từ chối trách nhiệm. Đây là một mẹo hay trong trường hợp bạn muốn có một cách dễ dàng để ghi lại các lib mà bạn đã cài đặt, nhưng lý tưởng nhất là bạn không nên nhập toàn bộ phần phụ thuộc của mình vào một lớp duy nhất. Nó không có nhiều ý nghĩa 2. Zip nóDòng sau đây sẽ nén thư mục libs tích hợp gần đây của bạn sau khi định dạng nén là cần thiết để thực hiện quy trình nhập lớp
Xem ra cho kích thước của tập tin của bạn Tổng kích thước của hàm lambda VÀ tất cả các tệp lớp đã giải nén đang được sử dụng phải tuân theo giới hạn 250 MB. Và đó là một trong nhiều lý do bạn không muốn sử dụng điều đóng băng trong những trường hợp này 3. nhập nóMát mẻ. Tại thời điểm này, bạn có một python_layer. zip trên máy cục bộ của bạn. Bây giờ, hãy đặt lớp này thành một lớp thực trên Tài khoản AWS của chúng ta (Nếu tôi chưa đề cập đến nó trước đây, sẽ rất hữu ích nếu bạn có một trong số đó) Hàm AWS Lambda Đi tới nút Tạo lớp để đạt được các tùy chọn cấu hình sau Tên là cách bạn sẽ đặt tên cho lớp này; Một điều thực sự hữu ích mà tôi nghĩ đáng đề cập ở đây là bạn. zip có thể được tải lên dưới dạng tệp cục bộ hoặc từ đường dẫn Bộ chứa S3. Nếu kích thước tệp của bạn lớn hơn 10MB, bạn có thể không có quyền chọn tùy chọn này Thời gian chạy, Python, Python, Python. Và thế là xong. Bây giờ bạn chỉ cần thêm lớp này vào bất kỳ chức năng lambda nào bạn chọn và bạn sẽ có thể sử dụng các thư viện này trong quá trình thực thi mã của mình Thêm tùy chọn lớp Trước khi bạn đi…Trong trường hợp cần cập nhật nội dung lớp trong tương lai, bạn không cần phải xóa tệp gốc của mình để cập nhật này. Có thể thêm nhiều phiên bản của các lớp…trong các lớp. Vì vậy, bạn luôn có thể quay lại phiên bản trước trong trường hợp xảy ra sự cố Amazon Lambda là một dịch vụ tuyệt vời cho phép bạn chạy mã không cần máy chủ. thay vì giữ cho máy chủ chạy để thực thi mã của bạn bất cứ lúc nào, máy chủ chỉ được khởi động khi cần thiết để đáp ứng với một số sự kiện. Sự kiện này có thể là từ một yêu cầu HTTP, một thông báo được đăng lên một dịch vụ xếp hàng như Amazon SQS hoặc ngay cả khi một tệp được tải lên bộ chứa S3 Lambda cung cấp các thời gian chạy khác nhau tùy thuộc vào ngôn ngữ bạn muốn viết hàm của mình. Đối với lập trình Python, thời gian chạy này bao gồm thư viện chuẩn Python, nhưng nếu bạn muốn sử dụng các gói bên ngoài từ PyPI hoặc nơi khác thì sao? . Các lớp cung cấp các phần phụ thuộc (hoặc thậm chí là thời gian chạy tùy chỉnh) cho chức năng của bạn và trong hướng dẫn nhanh này, chúng tôi sẽ hướng dẫn cách sử dụng chúng Những gì bạn cần
Dự án demo của chúng tôi sẽ là một hàm Lambda rất đơn giản, truy cập vào điểm cuối 7 của PokéAPI để trả về thông tin về Pokémon, được đặt tên trong trường hợp kích hoạt hàmThiết lập dự án của chúng tôi tại địa phươngTrước tiên, chúng tôi sẽ tạo một môi trường ảo cho dự án của chúng tôi và làm việc trong đó, để tách biệt mọi phần phụ thuộc của dự án với những phần khác trên máy tính của bạn
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Chúng tôi đang sử dụng thư viện yêu cầu để thực hiện lệnh gọi API của mình, vì vậy hãy cài đặt thư viện đó với 8. Một tệp của chúng tôi, 9 trông như thế này
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Công việc của mã này là kiểm tra thuộc tính 0 trong dữ liệu 0 mà hàm Lambda nhận được, truy vấn PokéAPI để biết thông tin về Pokémon được truyền vào và trả lại phản hồi của API (với cách xử lý lỗi cơ bản). Tại thời điểm này, cấu trúc dự án của chúng tôi trông như thế này
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Xây dựng lớp Lambda của chúng tôiĐể đưa mã này lên AWS Lambda, trước tiên chúng tôi cần một cách để đưa thư viện 1 vào. Các lớp lambda là. zip chứa thư viện (và thời gian chạy tùy chỉnh nếu bạn cần) chức năng của bạn yêu cầu. Đối với các lớp lambda Python, AWS yêu cầu các thư viện phải được đặt trong thư mục 2 hoặc 3
Thêm lớp vào chức năng Lambda của chúng tôiChúng ta sẽ thực hiện điều này bằng cách sử dụng bảng điều khiển giao diện người dùng, nhưng bạn hoàn toàn có thể làm điều này trên AWS CLI
Thats tất cả để có nó. Lưu ý rằng các hàm có thể có nhiều lớp Lambda (tối đa 5 lớp hiện tại) và các hàm cũng có thể chia sẻ các lớp Trong hướng dẫn này, chúng tôi
Hãy nhớ rằng tất cả những điều này cũng có thể được thực hiện qua AWS CLI (tải chức năng lên, tạo lớp, v.v.) nếu bạn thích phương pháp này. Có rất nhiều tài liệu AWS ghi lại điều này khá tốt Làm cách nào để đóng gói các phụ thuộc Python cho Lambda?Gói triển khai có phụ thuộc . Mở dấu nhắc lệnh và tạo thư mục dự án my-sourcecode-function. . Điều hướng đến thư mục dự án my-sourcecode-function. . Cài đặt thư viện yêu cầu vào thư mục gói mới. . Tạo gói triển khai với thư viện đã cài đặt ở thư mục gốc Chúng tôi có thể sử dụng Python trong AWS Lambda không?Bạn có thể chạy mã Python trong AWS Lambda . Lambda cung cấp thời gian chạy cho Python chạy mã của bạn để xử lý các sự kiện. Mã của bạn chạy trong môi trường bao gồm SDK dành cho Python (Boto3), với thông tin xác thực từ vai trò AWS Identity and Access Management (IAM) mà bạn quản lý. |