Як запустити Docker-образ Aspose.CAD в Azure Function
Передумови
- Docker має бути встановлений на вашій системі. Для отримання інформації про те, як встановити Docker на Windows або Mac, перегляньте посилання в розділі “Дивіться також”.
- Visual Studio 2022.
- Використовується NET 6 SDK у прикладі.
- Postman
Azure Function
У цьому прикладі ви створюєте просту функцію конвертації, яка конвертує CAD-файл і зберігає його як зображення. Додаток можна скласти в Docker та запустити в Azure Function.
Створення Azure Function
Щоб створити програму Azure Function, виконайте наведені нижче кроки:
- Після встановлення Docker переконайтеся, що він використовує Linux-контейнери (за замовчуванням). Якщо необхідно, виберіть опцію “Переключитися на Linux-контейнери” в меню Docker Desktop.
- У Visual Studio створіть Azure Function на NET 6.

- Додаткова інформація.

- Встановіть останню версію Aspose.CAD з NuGet.

- Оскільки додаток буде запущено на Linux, можливо, вам буде потрібно встановити додаткові шрифти. Ви можете віддати перевагу ttf-mscorefonts-installer.
- Коли всі потрібні залежності додані, напишіть просту програму, яка створить еліпс і збереже його як зображення:
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("C# HTTP trigger function processed a request.");
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 в кореневій папці проекту.
- Створіть Dockerfile і помістіть його поруч з файлом рішення вашого додатка. Залиште цю назву файлу без розширення (за замовчуванням).

- У 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
- Увійдіть у Docker Hub
- Створіть публічний репозиторій
Збірка та запуск додатка в Docker
Тепер додаток можна зібрати та запустити в Docker. Відкрийте свій улюблений командний рядок, змініть директорію на папку з додатком (папка, в якій розміщено файл рішення та 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/asposefunction:latestAzure
- Увійдіть в Azure.
- Виберіть служби Azure.
- Виберіть Function App і створіть функцію.

- Повторіть основні налаштування, як на зображенні нижче.

- Натисніть ‘Переглянути + створити’ -> Створити.
- Дочекайтеся завершення розгортання.
- Натисніть кнопку ‘Перейти до ресурсу’.

- Зупиніть функцію aspose-cad-docker-example.

- Перейдіть до меню центру розгортання та внесіть відповідні налаштування.

- Збережіть налаштування.
- Скопіюйте URL-адресу Webhook із налаштувань центру розгортання.

- Перейдіть до Docker Hub, виберіть свій репозиторій і виберіть вебхуки.
- Вставте ‘URL-адресу Webhook’ з Azure в URL-адресу вебхука Docker Hub і встановіть ім’я.

- Натисніть кнопку створення.
- Поверніться до загального огляду Azure Function і запустіть контейнер.

Приклад виконання
- Налаштування Postman.

- Виберіть будь-який файл DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG.
- Натисніть кнопку відправити.
Більше прикладів
Для більшої кількості зразків того, як ви можете використовувати Aspose.CAD у Docker, дивіться приклади.