איך להריץ את דוקר אספוז.CAD בענן גוגל

דרישות קדם

  • יש להתקין את דוקר על המערכת שלך. למידע על איך להתקין דוקר על Windows או Mac, עיין בקישוריםใน סעיף “ראה גם”.
  • Visual Studio 2022.
  • Google CLI.
  • .NET Core 3.1 SDK בשימוש בדוגמה.
  • Postman

פונקציית Google Cloud Run

Cloud Run הוא סביבות חישוב מנוהלת לחלוטין לפריסת מיכלים HTTP ללא שרת ולתהליך גודלו מבלי לדאוג לפריסת מכונות, תצורת אשכולות, או גידול אוטומטי.

  • אין נעילה לספק - מכיוון ש- Cloud Run לוקח מיכלים סטנדרטיים של OCI ויושם את ה- API הסטנדרטי של Knative Serving, תוכל בקלות להעביר את היישומים שלך לסביבת מחשוב מקומית או כל סביבה של ענן אחרת.
  • גידול אוטומטי מהיר - מיקרו-שירותים המועלים ל- Cloud Run מתרחבים אוטומטית בהתבסס על מספר הבקשות המגיעות, מבלי שתצטרך לקבוע או לנהל אשכול קוברנטיס מלא. Cloud Run מתרחב לאפס - כלומר, לא עושה שימוש במשאבים - אם אין בקשות.
  • חלוקת תנועה - Cloud Run מאפשר לך לחלק את התנועה בין מספר גרסאות, כך שתוכל לבצע פריסה הדרגתית כמו פריסות קנרית או פריסות כחול/ירוק.
  • דומיינים מותאמים אישית - תוכל להגדיר מפה לדומיינים מותאמים אישית ב- Cloud Run והוא יספק תעודת TLS לדומיין שלך.
  • גיבוי אוטומטי - Cloud Run מציע גיבוי אוטומטי כך שלא תצטרך לדאוג ליצירת מספר מופעים עבור זמינות גבוהה.

Cloud Run ופונקציות Cloud הן שירותים מנוהלים לחלוטין שפועלים על תשתית ללא שרת של Google Cloud, מגדרים אוטומטית ומטפלים בבקשות HTTP או באירועים. הם, עם זאת, יש להם כמה הבדלים חשובים:

  • פונקציות Cloud מאפשרות לך לפרוס קטעי קוד (פונקציות) כתובים בהגדרת שפות תכנות מוגבלת, בעוד ש- Cloud Run מאפשרת לך לפרוס תמונות מיכל בהשתמש בשפת התכנות שבחרת.
  • Cloud Run גם תומך בשימוש בכל כלי או ספריית מערכת מהיישום שלך; פונקציות Cloud לא מאפשרות לך להשתמש בביצועות מותאמות אישית.
  • Cloud Run מציע משך זמן של הופעת בקשה ארוכה של עד 60 דקות, בעוד שבפונקציות Cloud הזמן המוגדר שמבוטל יכול להיות עד 9 דקות.
  • פונקציות Cloud שולחות בקשה אחת בכל פעם לכל מופע פונקציה, בעוד ש- Cloud Run מוגדר מראש לשלוח מספר בקשות בו זמנית לכל מופע מיכל. זה מועיל לשיפור הלטנסי והפחתת העלויות אם אתה מצפה לנפחים גדולים.

יצירת פרויקט פונקציית Google Cloud

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

  1. התקן את .NET Core SDK 3.1.
  2. התקן את חבילת התבנית:
    dotnet new -i Google.Cloud.Functions.Templates
  3. לאחר מכן, צור תיקיה עבור הפרויקט שלך, והשתמש ב-dotnet new כדי ליצור פונקציה HTTP חדשה:
    mkdir AsposeFunctions // צור תיקיה
    cd AsposeFunctions // עבור לתיקיית AsposeFunctions
    dotnet new gcf-http // צור פרויקט פונקציית Google Cloud עם טריגר HTTP
  4. דוגמת קוד עבור קובץ csproj (AsposeFunctions.csproj).
    <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>netcoreapp3.1</TargetFramework>
      </PropertyGroup>
    
      <ItemGroup>
        <PackageReference Include="Aspose.CAD" Version="22.7.0" />
        <PackageReference Include="Google.Cloud.Functions.Hosting" Version="1.0.0" />
      </ItemGroup>
    </Project>
  5. דוגמת קוד להמרת תמונת CAD לקובץ PNG (Function.cs).
    namespace AsposeFunctions
    {
        public class Function : IHttpFunction
        {
            /// <summary>
            /// הלוגיקה עבור הפונקציה שלך נמצאת כאן.
            /// </summary>
            /// <param name="context">הקשר של HTTP, הכולל את הבקשה והתשובה.</param>
            /// <returns>משימה המייצגת את הפעולה האסינכרונית.</returns>
            public async Task HandleAsync(HttpContext context)
            {
                try
                {
                    //var file = context.Request.Form.Files.FirstOrDefault(); //קובץ טופס
                    var file = context.Request.Body; //נתונים בינאריים
                    
                    var msFile = new MemoryStream();
                    await file.CopyToAsync(msFile);
                    msFile.Seek(0, SeekOrigin.Begin);
                    
                    using (var image = (CadImage)Image.Load(msFile))
                    {
                        var ms = new MemoryStream();
                        image.Save(ms, new PngOptions());
                        ms.Seek(0, System.IO.SeekOrigin.Begin);
    
                        context.Response.Headers.Add("Content-Type", "image/png");
                        context.Response.Headers.Add("Content-Disposition", "attachment;filename=result.png");
    
                        await context.Response.Body.WriteAsync(ms.ToArray(), 0, ms.ToArray().Length);
                    }
                }
                catch (Exception e)
                {
                    await context.Response.WriteAsync(e.Message);
                }
            }
        }
    }
  6. בנה את הפונקציה שלך באופן מקומי כדלקמן:
    dotnet run
  7. לאחר שהשרת פועל, עבור אל http://localhost:8080 כדי להפעיל את הפונקציה. לחץ על Ctrl-C בקונסולה כדי להפסיק את השרת.

פריסת דימוי דוקר על Google Cloud

  1. התחבר ל-Google Cloud.
  2. צור פרויקט אם הוא לא קיים.
  3. עבור ל’רשות המוצר’ וצור מאגר.
    צור מאגר מוצר
  4. בחר במאגר החדש ברשות המוצר. בחר במאגר מוצר
  5. לחץ על ‘הוראות התקנה’ והעתק את פקודת ‘הגדר דוקר’.
    הוראות התקנה
  6. הוסף רישום credHelper לדוקר לקובץ התצורה של דוקר, או צור את הקובץ אם הוא לא קיים.
    // דוגמה
    gcloud auth configure-docker {region}-docker.pkg.dev
    
    gcloud auth configure-docker europe-west1-docker.pkg.dev
  7. צור קובץ Dockerfile בתיקיית השורש של הפרויקט וערוך את DockerFile כפי שנמצא בסעיף תצורת Dockerfile.
  8. הפעל את Docker Desktop.
  9. בנה את דימוי הדוקר עם נתיב מאגר הענן.
    // דוגמה
    docker build -t {region}-docker.pkg.dev/{project-name}/{repository-name}/{any-name}:{tag} .
    
    docker build -t europe-west1-docker.pkg.dev/test/aspose/function:latest .
  10. דחוף את הדימוי לרשות המוצר של Google Cloud
    // דוגמה
    docker build -t {region}-docker.pkg.dev/{project-name}/{repository-name}/{any-name}:{tag} .
    
    docker push europe-west1-docker.pkg.dev/test/aspose-cloud/function:latest

צור שירות Google Cloud Run

  1. עבור ל-Cloud Run.
  2. צור שירות Cloud Run.
    צור שירות Cloud Run
  3. בשדה URL לתמונת המיכל, בחר את המיכל מתוך ‘רשות מוצר’.
    URL של תמונת מיכל
  4. בדוק את שאר ההגדרות כפי שצוין למטה.
    הגדרות שירות
  5. המתן להשלמת הפריסה.
  6. כתובת ה-URL של השירות לעבוד עם אפליקציית ההמרה.
    ו URL של השירות

תצורת Dockerfile

השלב הבא הוא לערוך את תצורת Dockerfile בפרויקט.

  1. בקובץ Dockerfile, ציין:
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
WORKDIR /build
COPY . .
RUN dotnet restore
RUN dotnet publish -c Release -o /app

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS final
WORKDIR /app
COPY --from=build /app .

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 8080
ENV ASPNETCORE_URLS=http://*:8080
ENV ASPNETCORE_ENVIRONMENT=Release
ENV TAPTAKE_SEED=false
ENTRYPOINT ["dotnet", "AsposeFunctions.dll"]

בעליון נמצא Dockerfile פשוט, האירועה contains فرمت העוקבות:

  • תמונת ה-SDK שיש להשתמש בה. כאן מדובר בתמונת נט Core 3.1. דוקר יוריד אותה כאשר הפריסה מתבצעת. גרסה של ה-SDK מצוינת כתווית.
  • לאחר מכן, ייתכן שתצטרך להתקין פונטים מכיוון שהתמונה של ה-SDK מכילה מאוד את הפונטים. בנוסף, תוכל להשתמש בפונטים מקומיים שהועתקו לדוקר תמונה.
  • תיקיית העבודה, שצוין בשורה הבאה.
  • הפקודה להעתיק הכל למיכל, לפרסם את היישום, ולציין את נקודת הכניסה.

דוגמת ביצוע

  1. הגדרות Postman.
    תפריט סקירה כללית
  2. בחר כל DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG קובץ.
  3. לחץ על כפתור השליחה.

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

למעלה דוגמות של איך אתה יכול להשתמש באספוז.CAD בדוקר, עיין בדוגמאות.

ראה גם.