איך להריץ את תמונת Docker של Aspose.CAD בפונקציית AWS Lambda

דרישות מוקדמות

  • עליך להתקין את Docker במערכת שלך. למידע על كيفية להתקין את Docker על Windows או Mac, עיין בקישורים במסך “ראו גם” (See Also).
  • Visual Studio 2022.
  • AWS Toolkit for Visual Studio 2022.
  • NET 6 SDK משמש בדוגמה.
  • Postman

פונקציית AWS Lambda

Lambda היא שירות חישוב המאפשר לך להריץ קוד מבלי לנהל או להקצות שרתים. Lambda מריצה את הקוד שלך על תשתית חישוב בעלת זמינות גבוהה ומבצעת את כל הניהול של משאבי החישוב, כולל תחזוקת שרת ומערכת הפעלה, הקצאת קיבולת והספקה אוטומטית, ורישום. עם Lambda, תוכל להריץ קוד כמעט לכל סוג של יישום או שירות רדום.

יצירת פונקציית AWS Lambda

כדי ליצור את תוכנית פונקציית AWS Lambda, פעל לפי השלבים הבאים:

  1. צור פרויקט AWS Lambda.
    Create AWS function button
  2. בחר .NET 6 (תמונת קונטיינר) ולחץ על כפתור ‘סיים’ (Finish).
    Create container function button
  3. פתח את AWS Explorer ב- Visual Studio (View->AWS Explorer).
  4. הוסף פרופיל אימות AWS ב-AWS Explorer.
    Credential profile
  5. הזן את Access Key ID ואת Secret Access Key, תוכל לקבל מפתחות אלו באימות אבטחה או לפנות למנהל ולקבל קובץ csv עבור האימות.
    Acount profile settings
  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 publish
  11. ערוך את הגדרות ההעלאה.
    Upload aws lambda
  12. לחץ על כפתור ‘העלה’ (Upload).
    Upload aws lambda last
  13. עבור ל-AWS ובחר Lambda.
    AWS Lambda
  14. בחר את הפונקציה החדשה שלך וצור את קובץ ה-URL.
    Configuration url function
  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 יש מעט מאוד גופנים. בנוסף, תוכל להשתמש בגופנים מקומיים שהועתקו לתמונת הדוקר.
  • ספריית העבודה, שמצוינת בשורה הבאה.
  • הפקודה להעתיק הכל לקונטיינר, לפרסם את היישום ולציין את הנקודת כניסה.

דוגמת ביצוע

  1. הגדרות Postman.
    Overview menu
  2. בחר כל קובץ DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG.
  3. לחץ על כפתור השליחה.

דוגמאות נוספות

למגוון דוגמאות כיצד תוכל להשתמש ב-Aspose.CAD בדוקר, ראה את דוגמאות.

ראו גם.