چگونه تصویر Docker Aspose.CAD را در Azure Function اجرا کنیم
پیش نیازها
- Docker باید بر روی سیستم شما نصب شده باشد. برای اطلاعات در مورد چگونگی نصب Docker بر روی ویندوز یا مک، به لینکهای موجود در بخش “همچنین ببینید” مراجعه کنید.
- Visual Studio 2022.
- SDK NET 6 در این مثال استفاده میشود.
- Postman
Azure Function
در این مثال، شما یک تابع تبدیل ساده ایجاد میکنید که یک فایل CAD را تبدیل کرده و آن را به عنوان یک تصویر ذخیره میکند. سپس میتوان برنامه را در Docker ساخت و در Azure Function اجرا کرد.
ایجاد Azure Function
برای ایجاد برنامه Azure Function، مراحل زیر را دنبال کنید:
- پس از نصب Docker، مطمئن شوید که از Containers لینوکس استفاده میکند (به صورت پیشفرض). در صورت لزوم، گزینه Switch to Linux containers را از منوی Docker Desktops انتخاب کنید.
- در Visual Studio، یک Azure Function NET 6 ایجاد کنید.
- اطلاعات اضافی.
- آخرین نسخه Aspose.CAD را از NuGet نصب کنید.
- از آنجا که برنامه در لینوکس اجرا خواهد شد، ممکن است نیاز به نصب فونتهای اضافی داشته باشید. میتوانید 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("درخواست تابع HTTP C# پردازش شد.");
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 ساده است که شامل دستورات زیر است:
- تصویری که باید استفاده شود. در اینجا تصویر 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 را انتخاب کرده و یک تابع ایجاد کنید.
- تنظیمات پایه را مطابق تصویر زیر تکرار کنید.
- روی ‘Review + create’ کلیک کرده و سپس ایجاد کنید.
- منتظر بمانید تا استقرار به پایان برسد.
- روی دکمه ‘Go to resource’ کلیک کنید.
- تابع aspose-cad-docker-example را متوقف کنید.
- به منوی مرکز استقرار بروید و تنظیمات مناسب را انجام دهید.
- تنظیمات را ذخیره کنید
- URL Webhook را از تنظیمات مرکز استقرار کپی کنید.
- به Docker Hub بروید، مخزن خود را انتخاب کنید و وبهوکها را انتخاب کنید.
- ‘Webhook url’ را از 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، به نمونهها مراجعه کنید.