Cách chạy hình ảnh Aspose.CAD Docker trong chức năng AWS Lambda
Điều kiện tiên quyết
- Docker phải được cài đặt trên hệ thống của bạn. Để biết thông tin về cách cài đặt Docker trên Windows hoặc Mac, hãy tham khảo các liên kết trong phần “Xem thêm”.
- Visual Studio 2022.
- AWS Toolkit cho Visual Studio 2022.
- SDK NET 6 được sử dụng trong ví dụ.
- Postman
Chức năng AWS Lambda
Lambda là một dịch vụ tính toán cho phép bạn chạy mã mà không cần cung cấp hoặc quản lý máy chủ. Lambda chạy mã của bạn trên một hạ tầng tính toán có độ sẵn sàng cao và thực hiện tất cả các công việc quản trị tài nguyên tính toán, bao gồm bảo trì máy chủ và hệ điều hành, cung cấp năng lực và tự động mở rộng, và ghi nhật ký. Với Lambda, bạn có thể chạy mã cho hầu hết mọi loại ứng dụng hoặc dịch vụ phía sau.
Tạo chức năng AWS Lambda
Để tạo chương trình chức năng AWS Lambda, hãy làm theo các bước sau:
- Tạo dự án AWS Lambda.
- Chọn .NET 6(Hình ảnh Container) và nhấn nút ‘Hoàn tất’.
- Mở AWS Explorer trong Visual Studio (Xem->AWS Explorer).
- Thêm hồ sơ xác thực AWS trong AWS Explorer.
- Nhập ID khóa truy cập và khóa truy cập bí mật, bạn có thể lấy những khóa này trong thông tin đăng ký bảo mật hoặc liên hệ với quản trị viên để nhận tệp csv cho xác thực.
- Cài đặt các thư viện mới nhất từ NuGet.
- Ví dụ mã để chuyển đổi hình ảnh cad thành tệp pdf.
public APIGatewayHttpApiV2ProxyResponse FunctionHandler(APIGatewayHttpApiV2ProxyRequest stream, ILambdaContext context) { try { var parser = HttpMultipartParser.MultipartFormDataParser.Parse(new MemoryStream(Convert.FromBase64String(stream.Body))); var file = parser.Files.First(); Stream fileStream = file.Data; using (var img = Aspose.CAD.Image.Load(fileStream)) { var ms = new MemoryStream(); img.Save(ms, new PdfOptions()); ms.Seek(0, (System.IO.SeekOrigin)SeekOrigin.Begin); return new APIGatewayHttpApiV2ProxyResponse { StatusCode = (int)HttpStatusCode.OK, Body = Convert.ToBase64String(ms.ToArray()), IsBase64Encoded = true, Headers = new Dictionary<string, string> { {"Content-Type", "application/pdf" }, {"Content-Disposition", "attachment;filename=filename.pdf" } } }; } } catch (Exception e) { return new APIGatewayHttpApiV2ProxyResponse { StatusCode = (int)HttpStatusCode.OK, Body = e.Message, Headers = new Dictionary<string, string> { { "Content-Type", "text/html" } } }; } }
- Chỉnh sửa DockerFile như trong phần Cấu hình Dockerfile.
- Khởi động Docker Desktop.
- Xuất bản lên AWS Lambda.
- Chỉnh sửa cấu hình tải lên.
- Nhấn nút ‘Tải lên’.
- Đi đến AWS và chọn Lambda.
- Chọn chức năng mới của bạn và tạo url cho chức năng.
- Chọn loại xác thực
- AWS_IAM - Chỉ người dùng và vai trò IAM được xác thực mới có thể thực hiện yêu cầu đến URL chức năng của bạn.
- NONE - Lambda sẽ không thực hiện xác thực IAM trên các yêu cầu đến URL chức năng của bạn. Điểm cuối URL sẽ công khai trừ khi bạn triển khai logic xác thực của riêng mình trong chức năng của bạn.
Cấu hình Dockerfile
Bước tiếp theo là chỉnh sửa cấu hình Dockerfile trong dự án.
- Trong Dockerfile, chỉ định:
FROM public.ecr.aws/lambda/dotnet:6
WORKDIR /var/task
COPY "bin/Release/lambda-publish" .
RUN yum install -y amazon-linux-extras
RUN amazon-linux-extras install epel -y
RUN yum install -y libgdiplus
CMD ["AWSLambda::AWSLambda.Function::FunctionHandler"]
Trên đây là một Dockerfile đơn giản, chứa các hướng dẫn sau:
- Hình ảnh SDK sẽ được sử dụng. Ở đây là hình ảnh Net 6. Docker sẽ tải về khi xây dựng được thực thi. Phiên bản SDK được chỉ định dưới dạng thẻ.
- Sau đó, bạn có thể cần cài đặt Fonts vì hình ảnh SDK chứa rất ít phông chữ. Ngoài ra, bạn có thể sử dụng phông chữ cục bộ được sao chép vào hình ảnh docker.
- Thư mục làm việc, được chỉ định trong dòng tiếp theo.
- Lệnh để sao chép tất cả mọi thứ vào container, xuất bản ứng dụng và chỉ định điểm vào.
Ví dụ thực thi
- Cài đặt Postman.
- Chọn bất kỳ tệp DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG nào.
- Nhấn nút gửi.
Thêm Ví dụ
Để có thêm mẫu cách bạn có thể sử dụng Aspose.CAD trong Docker, hãy xem các ví dụ.