วิธีรันภาพ Aspose.CAD Docker ในฟังก์ชัน AWS Lambda
ข้อกำหนดเบื้องต้น
- Docker ต้องติดตั้งบนระบบของคุณ สำหรับข้อมูลเกี่ยวกับวิธีการติดตั้ง Docker บน Windows หรือ Mac โปรดอ้างอิงไปที่ลิงก์ในส่วน “ดูเพิ่มเติม”
- Visual Studio 2022
- AWS Toolkit สำหรับ Visual Studio 2022
- .NET 6 SDK จะถูกใช้ในตัวอย่าง
- Postman
ฟังก์ชัน AWS Lambda
Lambda เป็นบริการการคอมพิวเตอร์ที่ช่วยให้คุณรันโค้ดโดยไม่ต้องจัดเตรียมหรือจัดการเซิร์ฟเวอร์ Lambda รันโค้ดของคุณบนโครงสร้างพื้นฐานการคอมพิวเตอร์ที่มีความพร้อมใช้งานสูงและดำเนินการทุกการบริหารจัดการของทรัพยากรการคอมพิวเตอร์รวมถึงการบำรุงรักษาเซิร์ฟเวอร์และระบบปฏิบัติการ การจัดเตรียมความสามารถและการสเกลอัตโนมัติ รวมถึงการบันทึก ด้วย Lambda คุณสามารถรันโค้ดสำหรับแอปพลิเคชันหรือบริการแบ็กเอนด์ประเภทใดก็ได้
การสร้างฟังก์ชัน AWS Lambda
ในการสร้างโปรแกรมฟังก์ชัน AWS Lambda โปรดทำตามขั้นตอนด้านล่าง:
- สร้างโปรเจค AWS Lambda.
- เลือก .NET 6 (Container Image) และคลิกปุ่ม ‘Finish’.
- เปิด AWS Explorer ใน Visual Studio (View->AWS Explorer).
- เพิ่มโปรไฟล์ของข้อมูลประจำตัว AWS ใน AWS Explorer.
- ป้อน Access Key ID และ Secret Access Key คุณสามารถรับกุญแจเหล่านี้ได้ในข้อมูลประจำตัวด้านความปลอดภัย หรือ ติดต่อผู้ดูแลระบบและขอไฟล์ CSV เพื่อการรับรอง.
- ติดตั้งไลบรารีล่าสุดจาก NuGet.
- ตัวอย่างโค้ดสำหรับการแปลงภาพ CAD เป็นไฟล์ 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" } } }; } }
- แก้ไข DockerFile ตามใน การกำหนดค่า Dockerfile
- เริ่ม Docker Desktop
- เผยแพร่ไปยัง AWS Lambda.
- แก้ไขการตั้งค่าอัปโหลด.
- คลิกปุ่ม ‘Upload’.
- ไปที่ AWS และเลือก Lambda.
- เลือกฟังก์ชันใหม่ของคุณและสร้าง URL ฟังก์ชัน.
- เลือกประเภทการรับรอง
- AWS_IAM - ผู้ใช้และบทบาท IAM ที่ได้การรับรองเท่านั้นที่สามารถทำการร้องขอไปยัง URL ฟังก์ชันของคุณ
- NONE - Lambda จะไม่ดำเนินการรับรอง IAM ในการร้องขอไปยัง URL ฟังก์ชันของคุณ โดย URL เอ็นด์พอยท์จะเป็นสาธารณะ เว้นแต่คุณจะดำเนินการจัดการการรับรองของคุณในฟังก์ชัน
การกำหนดค่า Dockerfile
ขั้นตอนถัดไปคือการแก้ไขการกำหนดค่า Dockerfile ในโปรเจค
- ใน Dockerfile ระบุ:
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"]
ด้านบนคือ Dockerfile ที่เรียบง่ายซึ่งประกอบด้วยคำสั่งต่อไปนี้:
- รูปภาพ SDK ที่จะใช้ที่นี่คือรูปภาพ Net 6 Docker จะดาวน์โหลดเมื่อทำการสร้าง การเวอร์ชันของ SDK จะระบุเป็นแท็ก
- หลังจากนั้น คุณอาจต้องติดตั้งฟอนต์เพราะรูปภาพ SDK มีฟอนต์น้อยมาก นอกจากนี้ คุณยังสามารถใช้ฟอนต์ท้องถิ่นที่คัดลอกไปยังรูประบายภาพ Docker
- ไดเรกทอรีที่ทำงานซึ่งระบุในบรรทัดถัดไป
- คำสั่งในการคัดลอกทุกอย่างไปยังคอนเทนเนอร์ เผยแพร่แอปพลิเคชัน และระบุจุดเริ่มต้น
ตัวอย่างการดำเนินการ
- การตั้งค่า Postman.
- เลือกไฟล์ DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG ใดก็ได้
- คลิกปุ่มส่ง.
ตัวอย่างเพิ่มเติม
สำหรับตัวอย่างเพิ่มเติมเกี่ยวกับวิธีการใช้ Aspose.CAD ใน Docker ดูที่ ตัวอย่าง.