Cách Chạy Hình ảnh Docker Aspose.CAD trong Azure Function

Các yêu cầu cần thiết

  • Docker phải được cài đặt trên hệ thống của bạn. Để biết thông tin về cách cài đặt Docker trên Windows hoặc Mac, hãy tham khảo các liên kết trong phần “Xem thêm”.
  • Visual Studio 2022.
  • SDK NET 6 được sử dụng trong ví dụ.
  • Postman

Azure Function

Trong ví dụ này, bạn tạo một hàm chuyển đổi đơn giản để chuyển đổi một tệp CAD và lưu nó dưới dạng hình ảnh. Ứng dụng sau đó có thể được xây dựng trong Docker và chạy trong Azure Function.

Tạo Azure Function

Để tạo chương trình Azure Function, hãy làm theo các bước dưới đây:

  1. Khi Docker đã được cài đặt, hãy đảm bảo rằng nó sử dụng Containers Linux (mặc định). Nếu cần, chọn tùy chọn Chuyển sang containers Linux từ menu Docker Desktops.
  2. Trong Visual Studio, tạo một Azure Function NET 6.
    Hộp thoại dự án Azure Function NET 6
  3. Thông tin bổ sung.
    Hộp thoại dự án Azure Function NET 6
  4. Cài đặt phiên bản Aspose.CAD mới nhất từ NuGet.
    Aspose.CAD trên NuGet
  5. Vì ứng dụng sẽ chạy trên Linux, bạn có thể cần cài đặt thêm các phông chữ. Bạn có thể chọn ttf-mscorefonts-installer.
  6. Khi tất cả các phụ thuộc cần thiết đã được thêm vào, hãy viết một chương trình đơn giản tạo một hình ellipse và lưu nó dưới dạng hình ảnh:
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("Hàm kích hoạt HTTP C# đã xử lý một yêu cầu.");
        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);
        }
    }
}

Cấu hình Dockerfile

Bước tiếp theo là tạo và cấu hình Dockerfile trong thư mục gốc của dự án.

  1. Tạo Dockerfile và đặt nó cạnh tệp giải pháp của ứng dụng của bạn. Giữ tên tệp này mà không có phần mở rộng (mặc định). Thư mục dự án gốc
  2. Trong Dockerfile, chỉ định:
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

Trên đây là một Dockerfile đơn giản, chứa các chỉ dẫn sau:

  • Hình ảnh SDK sẽ được sử dụng. Ở đây nó là hình ảnh Net 6. Docker sẽ tải xuống khi quá trình biên dịch được thực hiện. Phiên bản SDK được chỉ định dưới dạng một thẻ.
  • Sau đó, bạn có thể cần cài đặt các phông chữ vì hình ảnh SDK chứa rất ít phông chữ. Ngoài ra, bạn có thể sử dụng các phông chữ cục bộ sao chép vào hình ảnh docker.
  • Thư mục làm việc, được chỉ định trong dòng tiếp theo.
  • Lệnh sao chép mọi thứ vào container, xuất bản ứng dụng và chỉ định điểm đầu vào.

Docker Hub

  1. Đăng nhập vào Docker Hub
  2. Tạo kho lưu trữ công khai

Xây dựng và Chạy Ứng dụng trong Docker

Bây giờ ứng dụng có thể được xây dựng và chạy trong Docker. Mở dấu nhắc lệnh mà bạn yêu thích, chuyển thư mục đến thư mục chứa ứng dụng (thư mục nơi có tệp giải pháp và Dockerfile) và chạy lệnh sau:

//ví dụ
docker build -t <tên người dùng>/<tên kho lưu trữ> .

docker build -t user/asposefunction .

Lần đầu tiên bạn chạy lệnh này, có thể mất nhiều thời gian hơn vì Docker cần tải xuống các hình ảnh cần thiết. Sau khi lệnh trước được hoàn thành, hãy chạy lệnh sau để đẩy hình ảnh lên docker hub:

//ví dụ
docker push <tên người dùng>/<tên kho lưu trữ>:tagname

docker push user/asposefunction:latest

Azure

  1. Đăng nhập vào Azure.
  2. Chọn dịch vụ Azure.
  3. Chọn Function App và tạo một hàm.
    Nút tạo hàm Azure
  4. Lặp lại các cài đặt cơ bản như trong hình bên dưới.
    Cài đặt hàm Azure tạo
  5. Nhấp vào ‘Đánh giá + tạo’ -> Tạo.
  6. Chờ cho quá trình triển khai hoàn tất.
  7. Nhấp vào nút ‘Đi tới tài nguyên’.
    Nút tài nguyên
  8. Dừng hàm aspose-cad-docker-example.
    Dừng container
  9. Đi đến menu trung tâm triển khai và thực hiện các cài đặt thích hợp.
    Trung tâm triển khai
  10. Lưu cài đặt
  11. Sao chép URL Webhook từ cài đặt trung tâm triển khai.
    URL Webhook
  12. Đi đến Docker Hub, chọn kho lưu trữ của bạn và chọn webhooks.
  13. Dán ‘URL Webhook’ từ Azure vào url webhook Docker Hub và đặt tên.
    Cài đặt webhook trong docker
  14. Nhấp vào nút tạo.
  15. Quay lại chức năng tổng quan azure và khởi động container.
    Menu tổng quan

Ví dụ thực hiện

  1. Cài đặt Postman.
    Cài đặt Postman
  2. Chọn bất kỳ tệp DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG nào.
  3. Nhấn nút gửi.

Thêm ví dụ

Để biết thêm các mẫu về cách bạn có thể sử dụng Aspose.CAD trong Docker, hãy xem các ví dụ.

Xem thêm