كيفية تشغيل صورة 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 (صورة الحاوية) وانقر على زر ‘إنهاء’.
    إنشاء زر الدالة الهجينة
  3. افتح AWS Explorer في Visual Studio (عرض-> AWS Explorer).
  4. أضف ملف تعريف بيانات الاعتماد AWS في AWS Explorer.
    ملف تعريف بيانات الاعتماد
  5. أدخل معرف مفتاح الوصول ومفتاح الوصول السري، يمكنك الحصول على هذه المفاتيح في بيانات الاعتماد الأمنية أو الاتصال بالمسؤول للحصول على ملف csv للتفويض.
    إعدادات ملف تعريف الحساب
  6. قم بتثبيت أحدث المكتبات من NuGet.
    مدير NuGet
  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 كما في قسم تهيئة ملف Docker.
  9. ابدأ Docker Desktop.
  10. نشر إلى AWS Lambda.
    نشر AWS lambda
  11. تعديل تكوين التحميل.
    تحميل aws lambda
  12. انقر على زر ‘تحميل’.
    تحميل aws lambda الأخير
  13. انتقل إلى AWS واختر Lambda.
    AWS Lambda
  14. اختر دالتك الجديدة وأنشئ عنوان URL للدالة.
    تهيئة عنوانURL للدالة
  15. اختر نوع المصادقة
  • AWS_IAM - فقط المستخدمون والأدوار المعتمدون يمكنهم طلب عنوان URL لدالتك.
  • NONE - لن تؤدي Lambda مصادقة IAM على الطلبات إلى عنوان URL الخاص بدالتك. سيكون عنوان URL عامًا ما لم تنفذ منطق التفويض الخاص بك في دالتك.

تهيئة ملف Docker

الخطوة التالية هي تعديل تكوين ملف Docker في المشروع.

  1. في ملف Docker، حدد:
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"]

ما سبق هو ملف Docker بسيط، يحتوي على التعليمات التالية:

  • صورة 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، راجع الأمثلة.

راجع أيضًا.