איך להריץ את התמונה Docker של Aspose.CAD בפונקציה של Azure
דרישות מקדמיות
- יש להתקין את Docker במערכת שלך. למידע על איך להתקין את Docker על Windows או Mac, עיין בקישורים שבראשית פרק “ראה גם”.
- IntelliJ IDEA.
- Azure Toolkit for IntelliJ.
- Postman.
פונקציה של Azure
בדוגמה זו, אתה יוצר פונקציה פשוטה שתמיר קובץ CAD ותשמור אותו כתמונה. לאחר מכן ניתן לבנות את היישום ב-Docker ולהריץ אותו בפונקציה של Azure.
יצירת הפונקציה של Azure
כדי ליצור את תוכנית הפונקציה של Azure, בצע את הצעדים הבאים:
לאחר שה-Docker מותקן, ודא שהוא משתמש בקונטיינרים של Linux (ברירת מחדל). אם יש צורך, בחר באפשרות לעבור לקונטיינרים של Linux מתפריט Desktop של Docker.
צור פרויקט פונקציה של Azure ב-IntelliJ IDEA.
Tools->Azure->Sing In ובחר באימות 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 processed a request."); 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 <user name>/<repository name> . docker build -t user/asposefunction .
בפעם הראשונה שתפעיל פקודה זו, זה יכול לקחת יותר זמן כי Docker זקוק להוריד את התמונות הנדרשות. לאחר שהפקודה הקודמת תושלם, הרץ את הפקודה הבאה כדי לדחוף את התמונה ל-Docker Hub.
//דוגמה docker push <user name>/<repository name>:tagname docker push user/aspose-cad-java:latest
הרץ את ה-Dockerfile ב-IDE ולאחר מכן דחוף ל-Docker Hub.
הכנס את שם התמונה, כפי שהוא במאגר ה-Docker Hub.
המתן לסיום.
Azure
- התחבר ל-Azure.
- בחר שירותי Azure.
- בחר באפליקציית פונקציה וצור פונקציה.
- חזור על ההגדרות הבסיסיות כפי שמופיע בתמונה למטה.
- לחץ על ‘סקור + צור’ -> צור.
- המתן לסיום ההתקנה.
- לחץ על כפתור ‘עבור למשאב’.
- עצור את הפונקציה aspose-cad-docker-example.
- עבור לתפריט מרכז ההתקנות והגדר את ההגדרות המתאימות.
- שמור הגדרות
- העתק את כתובת ה-WebHook ממסך ההגדרות של מרכז ההתקנה.
- עבור ל-Docker Hub, בחר את המאגר שלך ובחר Webhooks.
- הדבק את ‘כתובת ה-WebHook’ מ-Azure לתוך כתובת ה-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, ראה את דוגמאות.