كيفية تشغيل صورة Aspose.CAD Docker في وظيفة Azure

المتطلبات الأساسية

  • يجب تثبيت Docker على نظامك. لمزيد من المعلومات حول كيفية تثبيت Docker على Windows أو Mac، راجع الروابط في قسم “رؤية أخرى”.
  • Visual Studio 2022.
  • يتم استخدام NET 6 SDK في هذا المثال.
  • Postman

وظيفة Azure

في هذا المثال، ستقوم بإنشاء وظيفة تحويل بسيطة تقوم بتحويل ملف CAD وتخزينه كصورة. يمكن بعد ذلك إنشاء التطبيق في Docker وتشغيله في وظيفة Azure.

إنشاء وظيفة Azure

لإنشاء برنامج وظيفة Azure، اتبع الخطوات أدناه:

  1. بعد تثبيت Docker، تأكد من استخدامه للحاويات الخاصة بنظام Linux (الإعداد الافتراضي). إذا لزم الأمر، اختر خيار التبديل إلى حاويات Linux من قائمة سطح مكتب Docker.
  2. في Visual Studio، أنشئ وظيفة Azure NET 6.
    نافذة مشروع وظيفة Azure NET 6
  3. معلومات إضافية.
    نافذة مشروع وظيفة Azure NET 6
  4. قم بتثبيت أحدث إصدار من Aspose.CAD من NuGet.
    Aspose.CAD على NuGet
  5. نظرًا لأن التطبيق سيعمل على Linux، قد تحتاج إلى تثبيت خطوط إضافية. يمكنك تفضيل ttf-mscorefonts-installer.
  6. عندما تتم إضافة جميع التبعيات المطلوبة، اكتب برنامجًا بسيطًا ينشئ بيضاويًا ويخزنه كصورة:
public static class Function1
{
    [FunctionName("convert")]
    public static async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
        ILogger log)
    {
        log.LogInformation("تم معالجة طلب وظيفة HTTP C#.");
        try
        {
            using (var image = (CadImage)Image.Load(req.Body))
            {
                var ms = new MemoryStream();
                image.Save(ms, new PngOptions());

                ms.Seek(0, (System.IO.SeekOrigin)SeekOrigin.Begin);

                return new FileContentResult(ms.ToArray(), "application/octet-stream")
                {
                    FileDownloadName = "Export.png"
                };
            }
        }
        catch (Exception e)
        {
            return new OkObjectResult(e.Message);
        }
    }
}

تكوين ملف Dockerfile

الخطوة التالية هي إنشاء وتكوين ملف Dockerfile في مجلد المشروع الجذر.

  1. أنشئ ملف Dockerfile وضعه بجوار ملف الحل الخاص بتطبيقك. احتفظ بهذا الاسم بدون الامتداد (الإعداد الافتراضي). مجلد المشروع الجذر
  2. في ملف Dockerfile، حدد:
FROM mcr.microsoft.com/azure-functions/dotnet:4 AS base
WORKDIR /home/site/wwwroot
RUN apt-get update
RUN apt-get install -y apt-utils
RUN apt-get install -y libgdiplus
RUN apt-get install -y libc6-dev 
RUN ln -s /usr/lib/libgdiplus.so/usr/lib/gdiplus.dll
EXPOSE 80

FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["Aspose.CAD.Function/Aspose.CAD.Function.csproj", "Aspose.CAD.Function/"]
RUN dotnet restore "Aspose.CAD.Function/Aspose.CAD.Function.csproj"
COPY . .
WORKDIR "/src/Aspose.CAD.Function"
RUN dotnet build "Aspose.CAD.Function.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "Aspose.CAD.Function.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /home/site/wwwroot
COPY --from=publish /app/publish .
ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
    AzureFunctionsJobHost__Logging__Console__IsEnabled=true

يحتوي المثال أعلاه على ملف Dockerfile بسيط، يتضمن التعليمات التالية:

  • صورة SDK التي سيتم استخدامها. هنا هي صورة Net 6. سيتم تنزيل Docker عند تشغيل البناء. يتم تحديد إصدار SDK كعلامة.
  • بعد ذلك، قد تحتاج إلى تثبيت الخطوط لأن صورة SDK تحتوي على عدد قليل جدًا من الخطوط. أيضًا، يمكنك استخدام الخطوط المحلية المنسوخة إلى صورة docker.
  • دليل العمل، الذي يتم تحديده في السطر التالي.
  • الأمر لنسخ كل شيء إلى الحاوية، ونشر التطبيق، وتحديد نقطة الدخول.

Docker Hub

  1. تسجيل الدخول إلى Docker Hub
  2. إنشاء مستودع عام

بناء وتشغيل التطبيق في Docker

الآن يمكن بناء التطبيق وتشغيله في Docker. افتح موجه الأوامر المفضل لديك، غير الدليل إلى المجلد الذي يحتوي على التطبيق (المجلد الذي يوجد فيه ملف الحل وملف Dockerfile) وانفذ الأمر التالي:

//مثال
docker build -t <اسم المستخدم>/<اسم المستودع> .

docker build -t user/asposefunction .

في المرة الأولى التي تقوم فيها بتشغيل هذا الأمر، قد يستغرق الأمر وقتًا أطول لأن Docker يحتاج لتنزيل الصور الضرورية. بعد اكتمال الأمر السابق، قم بتشغيل الأمر التالي لدفع الصورة إلى Docker Hub:

//مثال
docker push <اسم المستخدم>/<اسم المستودع>:tagname

docker push user/asposefunction:latest

Azure

  1. تسجيل الدخول إلى Azure.
  2. اختر خدمات Azure.
  3. اختر وظيفة التطبيق وقم بإنشاء وظيفة.
    زر إنشاء وظيفة Azure
  4. كرر الإعدادات الأساسية كما في الصورة أدناه.
    إعدادات إنشاء وظيفة Azure
  5. انقر على “مراجعة + إنشاء” -> إنشاء.
  6. انتظر حتى تكتمل عملية النشر.
  7. انقر على زر “انتقل إلى المورد”.
    زر المورد
  8. أوقف وظيفة asp-cad-docker-example.
    أوقف الحاوية
  9. انتقل إلى قائمة مركز النشر واضبط الإعدادات المناسبة.
    مركز النشر
  10. احفظ الإعدادات
  11. انسخ عنوان URL للويب هوك من إعدادات مركز النشر.
    عنوان URL للويب هوك
  12. انتقل إلى Docker Hub، اختر مستودعك واختر الويب هوكس.
  13. قم بلصق “عنوان URL للويب هوك” من Azure في عنوان URL للويب هوك في Docker Hub وحدد الاسم.
    إعدادات الويب هوك في Docker
  14. انقر على زر الإنشاء.
  15. عد إلى نظرة عامة على وظيفة Azure وابدأ الحاوية.
    قائمة نظرة عامة

مثال على التنفيذ

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

رؤية أخرى