Как да стартирате образа Aspose.CAD Docker в 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 Desktops.
- В Visual Studio, създайте .NET 6 Azure Function.
- Допълнителна информация.
- Инсталирайте последната версия на 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 функция обработи искане.");
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 <потребителско име>/<име на репозитории> .
docker build -t user/asposefunction .
Първият път, когато изпълните тази команда, може да отнеме повече време, тъй като Docker трябва да изтегли необходимите образи. След като предишната команда завърши, изпълнете следната команда, за да качите изображението в docker hub:
//пример
docker push <потребителско име>/<име на репозитории>:тегло
docker push user/asposefunction:latest
Azure
- Влезте в Azure.
- Изберете Azure услуги.
- Изберете Function App и създайте функция.
- Повторете основните настройки, както е показано на изображението по-долу.
- Щракнете ‘Преглед + създаване’ -> Създаване.
- Изчакайте завършването на разполагането.
- Щракнете върху бутона ‘Отидете на ресурса’.
- Спиране на функцията aspose-cad-docker-example.
- Отидете в менюто на центъра за разполагане и направете съответните настройки.
- Запазете настройките.
- Копирайте URL адреса на уебхук от настройки на центъра за разполагане.
- Отидете в Docker Hub, изберете репозитория си и изберете уеб хукове.
- Поставете ‘URL адреса на уебхук’ от Azure в URL адреса на уебхук на Docker Hub и задайте името.
- Щракнете върху бутона за създаване.
- Върнете се на прегледа на Azure функцията и стартирайте контейнера.
Пример за изпълнение
- Настройки на Postman.
- Изберете произволен DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG файл.
- Щракнете бутона за изпращане.
Повече примери
За повече примери как можете да използвате Aspose.CAD в Docker, вижте примерите.