Gói mặc định AWS Lambda Python
AWS Lambda là dịch vụ điện toán serverless cho phép bạn chạy mã mà không cần cung cấp hoặc quản lý máy chủ, tạo logic thay đổi quy mô cụm theo khối lượng công việc, duy trì tích hợp sự kiện hoặc quản lý thời gian chạy. Bạn có thể viết các hàm Lambda bằng ngôn ngữ yêu thích của mình (Node. js, Python, Go, Java, v.v.) và sử dụng cả công cụ serverless và container, chẳng hạn như AWS SAM hoặc Docker CLI, để xây dựng, thử nghiệm và triển khai các chức năng của bạn Show Trường hợp sử dụng của chúng tôi Theo mặc định, Lambda cung cấp một số mô-đun bổ sung (như json, boto3, botocore, pip, python-dateutil, v.v.) ngoài Thư viện Python chuẩn. Tuy nhiên, điều này không phải lúc nào cũng đủ và chúng tôi có thể cần một vài gói khác như mô-đun Pandas, mysql, bông tuyết, v.v. Để phục vụ cho việc này, người dùng cần áp dụng các lớp trong hàm Lambda Giả sử chúng ta muốn sử dụng mô-đun Pandas trong hàm Lambda, hãy tiếp tục và áp dụng các lớp cho hàm Lambda để sử dụng Pandas trong mã của chúng ta Các bước cấp cao
Bước 1. Tạo phiên bản Amazon Linux và đăng nhập vào phiên bản EC2 để chạy các lệnh bên dưới mkdir python Cài đặt các gói cần thiết trong thư mục Python bằng lệnh bên dưới pip3 install pandas -t . Bước 2. Di chuyển đến thư mục mẹ và nén thư mục Python. (Ghi chú. Zip phải có một thư mục Python) zip -r pandas_layer.zip . Bước 3. Tạo bộ chứa S3 (nếu chưa có) và tải tệp zip đã tạo ở Bước 2 lên. (Ghi chú. Đối với trường hợp sử dụng của chúng tôi, chúng tôi đã tạo một nhóm S3 có tên là các lớp demo nơi chúng tôi sẽ tải tệp zip này lên) aws s3 cp pandas_layer.zip s3://demo-layers/ Nhóm S3 nơi pandas_layer. zip đã được tải lênBước 4. Tạo hàm lambda từ Bảng điều khiển AWS và chọn đúng phiên bản Python cũng được sử dụng trong phiên bản Amazon Linux. Điều này là do đôi khi các mô-đun không tương thích và bạn có thể gặp sự cố khi sử dụng các mô-đun này trong chức năng Lambda Bước 5. Tạo lớp cho Lambda từ Bảng điều khiển AWS Chuyển đến hàm Lambda mà lớp phải được áp dụng. Nhấp vào các lớp (được tô sáng trong hộp đen trong ảnh chụp màn hình bên dưới) sẽ chuyển hướng đến phần mà bạn có thể thêm các lớp Nhấp vào nút 'Thêm lớp' để thêm lớp Chọn 'Lớp tùy chỉnh' và từ trình đơn thả xuống, hãy chọn lớp của bạn ('pandas_layer') Bước 6. Nhập thư viện pandas vào mã và chạy thử để xem nó có hoạt động tốt không Thực hiện kiểm tra thành công, điều này cho biết lớp đã được áp dụng chính xác. Làm tốt lắm, bạn đã làm được Tương tự, bạn có thể làm theo các bước trên để sử dụng các mô-đun khác trong Lambda. Một số tổ chức cũng tạo một mã zip chứa một số mã phổ biến để quy trình/thủ tục tiêu chuẩn của họ được tuân theo trong mỗi mã thay vì có một mã trùng lặp AWS Lambda là giải pháp phù hợp khi tạo quy trình công việc ngắn hoặc lên lịch cho các công việc CRON đơn giản có thể chạy trong tối đa 15 phút. Phần tốt nhất về nó là người ta không cần phải lo lắng về việc thiết lập môi trường máy tính vì tất cả đều không có máy chủ. Bạn thậm chí có thể sử dụng nó làm công cụ điều phối để kích hoạt các tác vụ ECS hoặc AWS Batch của mình. Có thể còn rất nhiều thứ khác nữa nhưng tôi chưa khám phá hết Thời gian chạy Python trong Lambda đi kèm với bộ thư viện tiêu chuẩn riêng. Rất nhiều thư viện như boto3, yêu cầu, e. t. c đã được cài đặt nên bạn có thể nhập ngay và tạo hàm lambda của mình. Nhưng vấn đề phát sinh khi bạn muốn sử dụng các thư viện không có sẵn (ngay cả Pandas cũng không có 😐) Vì vậy, bây giờ để giải quyết vấn đề này, người ta có thể làm theo bất kỳ cách tiếp cận nào trong số này
Tôi cảm thấy cách tiếp cận thứ hai là cách tốt nhất vì nó tiết kiệm rất nhiều thời gian, không gian và thúc đẩy khả năng tái sản xuất. Tôi sẽ chỉ thảo luận về cách tiếp cận này từ bây giờ
Bây giờ, đây là nơi chúng tôi bắt đầu thêm các gói cần thiết vào Lớp Lambda. Xin lỗi vì tôi đã lạc đề khỏi chủ đề, nhưng tôi nghĩ tốt hơn hết là nên đưa ra một cái nhìn tổng quan. ) Chỉ cần làm theo các bước dưới đây theo thứ tự. Các lệnh được tô sáng sẽ chạy trong CLI của bạn
Lúc đầu, đây có vẻ như là rất nhiều bước. Tuy nhiên, như tôi đã nói, đây là hoạt động một lần và sau khi tải lên, bất kỳ người dùng nào cũng có thể sử dụng các thư viện này bằng cách thêm lớp tương ứng vào chức năng lambda của họ Tôi hy vọng rằng bạn thấy bài viết này hữu ích. Tôi đã dành rất nhiều thời gian để cố gắng tìm ra cách thêm thư viện vào các lớp lambda và nghĩ đến việc chia sẻ nó. Vui lòng liên hệ với tôi trong trường hợp có bất kỳ thắc mắc nào. ) AWS Lambda có những mô-đun Python nào?Nói chung, AWS Lambda có nhiều khả năng hơn, hỗ trợ nhiều ngôn ngữ hơn và đang nhanh chóng trở thành dịch vụ đáng tin cậy để điện toán trong Đám mây AWS. Dành riêng cho Python, AWS Lambda hiện hỗ trợ Python 2. 7 và 3. 6. . Đám mây AWS9 docker Phiên bản bản dựng EC2 Những gói nào được bao gồm trong Lambda?Bạn sử dụng gói triển khai để triển khai mã chức năng của mình cho Lambda. Lambda hỗ trợ hai loại gói triển khai. hình ảnh vùng chứa và. lưu trữ tệp zip .
Tôi có thể sử dụng các gói Python với AWS Lambda không?Mô tả ngắn. Các gói Python chứa mã đã biên dịch (ví dụ:. NumPy và pandas) không phải lúc nào cũng tương thích với thời gian chạy Lambda theo mặc định . Nếu bạn cài đặt các gói này bằng pip, thì các gói sẽ tải xuống và biên dịch gói tên mô-đun cho kiến trúc của máy cục bộ.
Boto3 có được cài đặt sẵn trong Lambda không?Chúng được cài đặt sẵn , theo tài liệu chính thức. 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ý. |