كيفية تشغيل صورة 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، اتبع الخطوات أدناه:
بمجرد تثبيت Docker، تأكد من أنه يستخدم حاويات Linux (الإعداد الافتراضي). إذا لزم الأمر، اختر خيار التبديل إلى حاويات Linux من قائمة Docker Desktops.
أنشئ مشروع Azure Function في IntelliJ IDEA.
أدوات->Azure->تسجيل الدخول وحدد مصادقة OAuth 2.0.
تسجيل الدخول عبر المتصفح.
اختر اسم الاشتراك.
أضف دعم Docker.
قم بتحرير DockerFile كما هو في قسم تكوين Dockerfile.
أضف كتل للمستودع 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>
عندما تتم إضافة جميع التبعيات المطلوبة، اكتب برنامجًا بسيطًا ينشئ بيضاويًا ويحفظه كصورة:
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 في مجلد المشروع الجذري.
- في 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
- تسجيل دخول Docker Hub
- إنشاء مستودع عام
بناء وتشغيل التطبيق في Docker
الآن يمكن بناء التطبيق وتشغيله في Docker. افتح موجه الأوامر المفضل لديك، وقم بتغيير الدليل إلى المجلد المخصص للتطبيق (المجلد الذي توجد فيه ملف الحل و Dockerfile) واذهب إلى الأمر التالي:
أمر بناء Dockerfile في وحدة التحكم
//مثال docker build -t <اسم المستخدم>/<اسم المستودع> . docker build -t user/asposefunction .
في المرة الأولى التي تقوم فيها بتشغيل هذا الأمر، قد يستغرق الأمر وقتًا أطول لأن Docker يحتاج إلى تنزيل الصور الضرورية. بعد اكتمال الأمر السابق، قم بتشغيل الأمر التالي لدفع الصورة إلى Docker Hub.
//مثال docker push <اسم المستخدم>/<اسم المستودع>:tagname docker push user/aspose-cad-java:latest
قم بتشغيل Dockerfile في IDE وبعد دفعه إلى Docker Hub.
أدخل اسم الصورة، كما هو الحال في مستودع Docker Hub.
انتظر حتى النهاية.
Azure
- تسجيل دخول إلى Azure.
- اختر خدمات Azure.
- اختر Function App وأنشئ دالة.
- قم بتكرار الإعدادات الأساسية كما هو موضح في الصورة أدناه.
- انقر على ‘مراجعة + إنشاء’ -> إنشاء.
- انتظر حتى تكتمل عملية النشر.
- انقر على زر ‘انتقل إلى المورد’.
- أوقف وظيفة aspose-cad-docker-example.
- انتقل إلى قائمة مركز النشر وقم بإجراء الإعدادات المناسبة.
- احفظ الإعدادات
- انسخ عنوان URL للWebhook من إعدادات مركز النشر.
- اذهب إلى Docker Hub، واختر المستودع الخاص بك واختر webhooks.
- ألصق ‘عنوان URL للWebhook’ من Azure في عنوان URL للWebhook في Docker Hub وحدد الاسم.
- انقر على زر الإنشاء.
- عد إلى نظرة عامة على وظيفة Azure وابدأ الحاوية.قد يستغرق بدء الوظيفة بضع دقائق.
مثال على التنفيذ
- إعدادات Postman.
- اختر أي ملف DXF، DWG، DGN، DWF، DWFX، IFC، STL، DWT، IGES، PLT، CF2، OBJ، HPGL، IGS، PCL، FBX، PDF، SVG.
- انقر على زر الإرسال.
- احفظ النتيجة
المزيد من الأمثلة
للحصول على مزيد من النماذج حول كيفية استخدام Aspose.CAD في Docker، راجع الأمثلة.