วิธีการเรียกใช้ภาพ Aspose.CAD Docker ในฟังก์ชัน Azure
สิ่งที่ต้องมี
- ต้องติดตั้ง Docker บนระบบของคุณ สำหรับข้อมูลเกี่ยวกับการติดตั้ง Docker บน Windows หรือ Mac ให้ดูที่ลิงก์ในส่วน “ดูเพิ่มเติม”
- Visual Studio 2022
- .NET 6 SDK ถูกใช้ในตัวอย่างนี้
- Postman
ฟังก์ชัน Azure
ในตัวอย่างนี้ คุณจะสร้างฟังก์ชันการแปลงที่เรียบง่ายซึ่งแปลงไฟล์ CAD และบันทึกเป็นภาพ แอพพลิเคชั่นสามารถถูกสร้างใน Docker และเรียกใช้ในฟังก์ชัน Azure
การสร้างฟังก์ชัน Azure
ในการสร้างฟังก์ชัน Azure ให้ทำตามขั้นตอนด้านล่าง:
- เมื่อติดตั้ง Docker เสร็จแล้ว ให้ตรวจสอบให้แน่ใจว่าใช้ Linux Containers (ค่าเริ่มต้น) หากจำเป็นให้เลือกตัวเลือก Switch to Linux containers จากเมนู Docker Desktops
- ใน Visual Studio ให้สร้างฟังก์ชัน Azure 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("ฟังก์ชัน 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 ที่เรียบง่ายซึ่งมีคำสั่งดังต่อไปนี้:
- รูปภาพ SDK ที่จะใช้ ที่นี่คือภาพ Net 6 Docker จะดาวน์โหลดเมื่อทำการสร้าง เวอร์ชันของ SDK ถูกระบุเป็นแท็ก
- หลังจากนั้นคุณอาจต้องติดตั้งฟอนต์เพราะรูประดับ SDK มีฟอนต์น้อยมาก นอกจากนี้คุณยังสามารถใช้ฟอนต์ท้องถิ่นที่คัดลอกจากรูประดับ docker
- ไดเร็กทอรีที่ทำงาน ซึ่งระบุในบรรทัดถัดไป
- คำสั่งในการคัดลอกทุกอย่างไปยังคอนเทนเนอร์ เผยแพร่แอพพลิเคชั่น และระบุจุดเชื่อมต่อ
Docker Hub
- เข้าสู่ระบบ Docker Hub
- สร้าง Repository สาธารณะ
การสร้างและเรียกใช้แอพพลิเคชั่นใน Docker
ตอนนี้แอพพลิเคชั่นสามารถถูกสร้างและเรียกใช้ใน Docker เปิดพรอมต์คำสั่งที่คุณชื่นชอบ เปลี่ยนไดเรกทอรีไปยังโฟลเดอร์ที่มีแอพพลิเคชั่น (โฟลเดอร์ที่มีไฟล์โซลูชันและ Dockerfile อยู่) และรันคำสั่งต่อไปนี้:
//ตัวอย่าง
docker build -t <ชื่อผู้ใช้>/<ชื่อ Repository> .
docker build -t user/asposefunction .
ครั้งแรกที่คุณรันคำสั่งนี้ อาจใช้เวลานานกว่าเพราะ Docker ต้องดาวน์โหลดภาพที่จำเป็น เมื่อคำสั่งก่อนหน้านี้เสร็จสิ้นให้รันคำสั่งต่อไปนี้เพื่อดันภาพขึ้น Docker Hub:
//ตัวอย่าง
docker push <ชื่อผู้ใช้>/<ชื่อ Repository>:tagname
docker push user/asposefunction:latest
Azure
- เข้าสู่ระบบ Azure
- เลือกบริการ Azure
- เลือก Function App และสร้างฟังก์ชัน.
- ทำการตั้งค่าพื้นฐานซ้ำตามภาพด้านล่าง.
- คลิก ‘Review + create’ -> สร้าง
- รอให้การสร้างเสร็จสิ้น
- คลิกปุ่ม ‘Go to resource’.
- หยุดฟังก์ชัน aspose-cad-docker-example.
- ไปที่เมนูศูนย์การปรับใช้และทำการตั้งค่าที่เหมาะสม.
- บันทึกการตั้งค่า
- คัดลอก Webhook URL จากการตั้งค่าศูนย์การปรับใช้.
- ไปที่ Docker Hub เลือก Repository ของคุณและเลือก webhooks
- วาง ‘Webhook url’ จาก Azure ลงใน Webhook 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 โปรดดูที่ ตัวอย่าง