كيفية تشغيل صورة Docker الخاصة بـ Aspose.CAD في Azure Function

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

  • يجب أن يكون Docker مثبتًا على نظامك. لمزيد من المعلومات حول كيفية تثبيت Docker على Windows أو Mac، يرجى الرجوع إلى الروابط في قسم “انظر أيضًا”.
  • IntelliJ IDEA.
  • Azure Toolkit لـ IntelliJ.
  • Postman.

Azure Function

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

إنشاء Azure Function

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

  1. بمجرد تثبيت Docker، تأكد من أنه يستخدم حاويات Linux (الإعداد الافتراضي). إذا لزم الأمر، اختر خيار التبديل إلى حاويات Linux من قائمة Docker Desktops.

  2. أنشئ مشروع Azure Function في IntelliJ IDEA.
    إنشاء مشروع Azure Function
    إنشاء مشروع Azure Function - نهائي

  3. أدوات->Azure->تسجيل الدخول وحدد مصادقة OAuth 2.0.
    تسجيل دخول Azure

  4. تسجيل الدخول عبر المتصفح.

  5. اختر اسم الاشتراك.

  6. أضف دعم Docker.
    تسجيل دخول Azure

  7. قم بتحرير DockerFile كما هو في قسم تكوين Dockerfile.

  8. أضف كتل للمستودع aspose.cad في pom.xml.

    <repositories>
        <repository>
    		<id>AsposeJavaAPI</id>
            <name>Aspose Java API</name>
            <url>https://releases.aspose.com/java/repo/</url>
        </repository>
    </repositories>
    
    
    <dependencies>
     <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-cad</artifactId>
        <version>22.3</version>
        <scope>compile</scope>
      </dependency>
    </dependencies>

  9. عندما تتم إضافة جميع التبعيات المطلوبة، اكتب برنامجًا بسيطًا ينشئ بيضاويًا ويحفظه كصورة:

    public class HttpTriggerFunction {
        /**
         * تستمع هذه الدالة عند النقطة النهائية "/api/HttpExample". طريقتان لاستدعائها باستخدام أمر "curl" في bash:
         * 1. curl -d "HTTP Body" {your host}/api/HttpExample
         * 2. curl "{your host}/api/HttpExample?name=HTTP%20Query"
         */
        @FunctionName("HttpExample")
        public HttpResponseMessage run(
                @HttpTrigger(
                    name = "req",
                    methods = {HttpMethod.GET, HttpMethod.POST},
                    authLevel = AuthorizationLevel.ANONYMOUS)
                    HttpRequestMessage<Optional<String>> request,
                final ExecutionContext context) throws FileNotFoundException {
            context.getLogger().info("تم معالجة طلب Java HTTP trigger.");
    
            try{
                String body = request.getBody().get();
                InputStream targetStream = new ByteArrayInputStream(body.getBytes());
    
                CadImage image = (CadImage)Image.load(targetStream);
                {
                    CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
                    rasterizationOptions.setPageWidth(1200);
                    rasterizationOptions.setPageHeight(1200);
    
                    ImageOptionsBase options = new PngOptions();
                    options.setVectorRasterizationOptions(rasterizationOptions);
    
                    ByteArrayOutputStream out = new ByteArrayOutputStream();
    
                    image.save(out, options);
    
                    return request.createResponseBuilder(HttpStatus.OK)
                            .header("Content-type", "image/png")
                            .header("Content-Disposition", "attachment;filename=filename.png")
                            .body(out.toByteArray()).build();
                }
            }
            catch (Exception e)
    		{
                return request.createResponseBuilder(HttpStatus.BAD_REQUEST).body(e.getMessage()).build();
            }
        }
    }

تكوين Dockerfile

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

  1. في Dockerfile، حدد:
    FROM mcr.microsoft.com/azure-functions/java:3.0-java8-build AS installer-env
    
    COPY . /src/java-function-app
    RUN cd /src/java-function-app && \
        mkdir -p /home/site/wwwroot && \
        mvn clean package && \
        cd ./target/azure-functions/ && \
        cd $(ls -d */|head -n 1) && \
        cp -a . /home/site/wwwroot
    
    FROM mcr.microsoft.com/azure-functions/java:3.0-java8-appservice
    
    ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
        AzureFunctionsJobHost__Logging__Console__IsEnabled=true
    
    COPY --from=installer-env ["/home/site/wwwroot", "/home/site/wwwroot"]

تحتوي التعليمات السابقة على Dockerfile بسيط، والذي يحتوي على التعليمات التالية:

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

Docker Hub

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

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

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

  1. أمر بناء Dockerfile في وحدة التحكم

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

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

    //مثال
    docker push <اسم المستخدم>/<اسم المستودع>:tagname
    
    docker push user/aspose-cad-java:latest

  3. قم بتشغيل Dockerfile في IDE وبعد دفعه إلى Docker Hub.
    تشغيل Docker في IDE

  4. أدخل اسم الصورة، كما هو الحال في مستودع Docker Hub.
    تشغيل Docker في IDE - التالي

  5. انتظر حتى النهاية.

Azure

  1. تسجيل دخول إلى Azure.
  2. اختر خدمات Azure.
  3. اختر Function App وأنشئ دالة.
    زر إنشاء دالة Azure
  4. قم بتكرار الإعدادات الأساسية كما هو موضح في الصورة أدناه.
    إعدادات إنشاء دالة Azure
  5. انقر على ‘مراجعة + إنشاء’ -> إنشاء.
  6. انتظر حتى تكتمل عملية النشر.
  7. انقر على زر ‘انتقل إلى المورد’.
    زر المورد
  8. أوقف وظيفة aspose-cad-docker-example.
    إيقاف الحاوية
  9. انتقل إلى قائمة مركز النشر وقم بإجراء الإعدادات المناسبة.
    مركز النشر
  10. احفظ الإعدادات
  11. انسخ عنوان URL للWebhook من إعدادات مركز النشر.
    عنوان URL للWebhook
  12. اذهب إلى Docker Hub، واختر المستودع الخاص بك واختر webhooks.
  13. ألصق ‘عنوان URL للWebhook’ من Azure في عنوان URL للWebhook في Docker Hub وحدد الاسم.
    إعدادات Webhook في 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. انقر على زر الإرسال.
  4. احفظ النتيجة احفظ الاستجابة

المزيد من الأمثلة

للحصول على مزيد من النماذج حول كيفية استخدام Aspose.CAD في Docker، راجع الأمثلة.

انظر أيضًا