วิธีรันภาพ 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 โปรดทำตามขั้นตอนด้านล่าง:

  1. สร้างโปรเจค AWS Lambda.
    ปุ่มสร้างฟังก์ชัน AWS
  2. เลือก .NET 6 (Container Image) และคลิกปุ่ม ‘Finish’.
    ปุ่มสร้างฟังก์ชันคอนเทนเนอร์
  3. เปิด AWS Explorer ใน Visual Studio (View->AWS Explorer).
  4. เพิ่มโปรไฟล์ของข้อมูลประจำตัว AWS ใน AWS Explorer.
    โปรไฟล์ข้อมูลประจำตัว
  5. ป้อน Access Key ID และ Secret Access Key คุณสามารถรับกุญแจเหล่านี้ได้ในข้อมูลประจำตัวด้านความปลอดภัย หรือ ติดต่อผู้ดูแลระบบและขอไฟล์ CSV เพื่อการรับรอง.
    การตั้งค่าโปรไฟล์บัญชี
  6. ติดตั้งไลบรารีล่าสุดจาก NuGet.
    NuGet Manager
  7. ตัวอย่างโค้ดสำหรับการแปลงภาพ 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"
                    }
                }
            };
        }
    }
  8. แก้ไข DockerFile ตามใน การกำหนดค่า Dockerfile
  9. เริ่ม Docker Desktop
  10. เผยแพร่ไปยัง AWS Lambda.
    เผยแพร่ AWS Lambda
  11. แก้ไขการตั้งค่าอัปโหลด.
    อัปโหลด AWS Lambda
  12. คลิกปุ่ม ‘Upload’.
    อัปโหลด AWS Lambda ล่าสุด
  13. ไปที่ AWS และเลือก Lambda.
    AWS Lambda
  14. เลือกฟังก์ชันใหม่ของคุณและสร้าง URL ฟังก์ชัน.
    การกำหนดค่า URL ฟังก์ชัน
  15. เลือกประเภทการรับรอง
  • AWS_IAM - ผู้ใช้และบทบาท IAM ที่ได้การรับรองเท่านั้นที่สามารถทำการร้องขอไปยัง URL ฟังก์ชันของคุณ
  • NONE - Lambda จะไม่ดำเนินการรับรอง IAM ในการร้องขอไปยัง URL ฟังก์ชันของคุณ โดย URL เอ็นด์พอยท์จะเป็นสาธารณะ เว้นแต่คุณจะดำเนินการจัดการการรับรองของคุณในฟังก์ชัน

การกำหนดค่า Dockerfile

ขั้นตอนถัดไปคือการแก้ไขการกำหนดค่า Dockerfile ในโปรเจค

  1. ใน 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
  • ไดเรกทอรีที่ทำงานซึ่งระบุในบรรทัดถัดไป
  • คำสั่งในการคัดลอกทุกอย่างไปยังคอนเทนเนอร์ เผยแพร่แอปพลิเคชัน และระบุจุดเริ่มต้น

ตัวอย่างการดำเนินการ

  1. การตั้งค่า Postman.
    เมนูภาพรวม
  2. เลือกไฟล์ DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG ใดก็ได้
  3. คลิกปุ่มส่ง.

ตัวอย่างเพิ่มเติม

สำหรับตัวอย่างเพิ่มเติมเกี่ยวกับวิธีการใช้ Aspose.CAD ใน Docker ดูที่ ตัวอย่าง.

ดูเพิ่มเติม