איך להריץ את התמונה Docker של Aspose.CAD בפונקציה של Azure

דרישות מקדמיות

  • יש להתקין את Docker במערכת שלך. למידע על איך להתקין את Docker על Windows או Mac, עיין בקישורים שבראשית פרק “ראה גם”.
  • IntelliJ IDEA.
  • Azure Toolkit for IntelliJ.
  • Postman.

פונקציה של Azure

בדוגמה זו, אתה יוצר פונקציה פשוטה שתמיר קובץ CAD ותשמור אותו כתמונה. לאחר מכן ניתן לבנות את היישום ב-Docker ולהריץ אותו בפונקציה של Azure.

יצירת הפונקציה של Azure

כדי ליצור את תוכנית הפונקציה של Azure, בצע את הצעדים הבאים:

  1. לאחר שה-Docker מותקן, ודא שהוא משתמש בקונטיינרים של Linux (ברירת מחדל). אם יש צורך, בחר באפשרות לעבור לקונטיינרים של Linux מתפריט Desktop של Docker.

  2. צור פרויקט פונקציה של Azure ב-IntelliJ IDEA.
    צור פרויקט פונקציה של Azure
    צור פרויקט פונקציה של Azure-סופי

  3. Tools->Azure->Sing In ובחר באימות OAuth 2.0.
    כניסה ל-Azure

  4. התחבר בדפדפן.

  5. בחר בשם המנוי.

  6. הוסף תמיכה ב-Docker.
    הוסף תמיכה ב-Docker

  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 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 בתיקיית השורש של הפרויקט.

  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 <user name>/<repository name> .
    
    docker build -t user/asposefunction .

  2. בפעם הראשונה שתפעיל פקודה זו, זה יכול לקחת יותר זמן כי Docker זקוק להוריד את התמונות הנדרשות. לאחר שהפקודה הקודמת תושלם, הרץ את הפקודה הבאה כדי לדחוף את התמונה ל-Docker Hub.

    //דוגמה
    docker push <user name>/<repository name>: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. בחר באפליקציית פונקציה וצור פונקציה.
    כפתור צור פונקציה של Azure
  4. חזור על ההגדרות הבסיסיות כפי שמופיע בתמונה למטה.
    הגדרות פונקציה של Azure
  5. לחץ על ‘סקור + צור’ -> צור.
  6. המתן לסיום ההתקנה.
  7. לחץ על כפתור ‘עבור למשאב’.
    כפתור משאב
  8. עצור את הפונקציה aspose-cad-docker-example.
    עצור קונטיינר
  9. עבור לתפריט מרכז ההתקנות והגדר את ההגדרות המתאימות.
    מרכז התקנה
  10. שמור הגדרות
  11. העתק את כתובת ה-WebHook ממסך ההגדרות של מרכז ההתקנה.
    כתובת WebHook
  12. עבור ל-Docker Hub, בחר את המאגר שלך ובחר Webhooks.
  13. הדבק את ‘כתובת ה-WebHook’ מ-Azure לתוך כתובת ה-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, ראה את דוגמאות.

ראה גם