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

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

  • Docker חייב להיות מותקן במערכת שלך. למידע איך להתקין את Docker ב-Windows או Mac, עיין בקישורים בחלק “ראו גם”.
  • Visual Studio 2022.
  • SDK של NET 6 משמש בדוגמה.
  • Postman

פונקציית Azure

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

יצירת פונקציית Azure

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

  1. לאחר ש-Docker מותקן, ודא שהוא משתמש במיכלים של Linux (ברירת מחדל). אם יש צורך, בחר באפשרות “החלף למיכלים של Linux” מתוך תפריט שולחן עבודה של Docker.
  2. ב-Virtual 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("הפונקציה של.trigger ב-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. עצור את פונקציית aspose-cad-docker-example.
    עצור קונטיינר
  9. עבור לתפריט מרכז הפריסה והגדר את ההגדרות המתאימות.
    מרכז פריסה
  10. שמור הגדרות
  11. העתק את ה-URL של Webhook מהגדרות מרכז הפריסה.
    Webhook url
  12. עבור ל-Docker Hub, בחר את המאגר שלך ובחר ב-webhooks.
  13. הדבק את ה-‘Webhook url’ מ-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. לחץ על כפתור שלח.

דוגמאות נוספות

למידע נוסף על איך תוכל להשתמש ב-Aspose.CAD ב-Docker, ראה את הדוגמאות.

גם ראה