Як запустити 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:latest
Azure
- Увійдіть в 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, дивіться приклади.