Aspose.CAD Docker görüntüsünü Azure Function'da Çalıştırma
Ön Koşullar
- Docker sisteminizde kurulu olmalıdır. Docker’ı Windows veya Mac’te nasıl kuracağınıza dair bilgiler için “Ayrıca Bakınız” bölümündeki bağlantılara başvurun.
- Visual Studio 2022.
- Örnekte .NET 6 SDK kullanılmıştır.
- Postman
Azure Function
Bu örnekte, bir CAD dosyasını dönüştüren ve bir görüntü olarak kaydeden basit bir dönüştürme fonksiyonu oluşturuyorsunuz. Uygulama daha sonra Docker’da oluşturulabilir ve Azure Function’da çalıştırılabilir.
Azure Function Oluşturma
Azure Function programını oluşturmak için aşağıdaki adımları izleyin:
- Docker kurulduktan sonra, Linux Konteynerlerini (varsayılan) kullandığından emin olun. Gerekirse, Docker Desktops menüsünden Linux konteynerlerine geçiş seçeneğini seçin.
- Visual Studio’da bir .NET 6 Azure Function oluşturun.
- Ek bilgi.
- NuGet’ten en son Aspose.CAD sürümünü yükleyin.
- Uygulama Linux’ta çalışacağı için ek yazı tipleri kurmanız gerekebilir. ttf-mscorefonts-installer’i tercih edebilirsiniz.
- Tüm gerekli bağımlılıklar eklendikten sonra, bir elips oluşturan ve bunu bir görüntü olarak kaydeden basit bir program yazın:
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 tetikleyici fonksiyonu bir isteği işledi.");
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’ı Yapılandırma
Bir sonraki adım, kök proje klasöründe Dockerfile’ı oluşturmak ve yapılandırmaktır.
- Dockerfile’ı oluşturun ve uygulamanızın çözüm dosyasının yanına yerleştirin. Bu dosya adını uzantı olmadan tutun (varsayılan).
- Dockerfile’da, belirtin:
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
Yukarıdaki basit bir Dockerfile’dır ve şu talimatları içerir:
- Kullanılacak SDK görüntüsü. Burada, .NET 6 görüntüsüdir. Docker, derleme çalıştırıldığında bunu indirecektir. SDK sürümü bir etiket olarak belirtilmiştir.
- Daha sonra, belgelerin çok az yazı tipi içerdiği için Yazı tiplerini yüklemeniz gerekebilir. Ayrıca, Docker görüntüsüne kopyalanmış yerel yazı tiplerini de kullanabilirsiniz.
- Bir sonraki satırda belirtilen çalışma dizini.
- Her şeyi konteynere kopyalamak, uygulamayı yayımlamak ve giriş noktasını belirtme komutu.
Docker Hub
- Docker Hub’a giriş yapın.
- Kamu Deposu oluşturun.
Uygulamayı Docker’da Oluşturma ve Çalıştırma
Şimdi uygulama Docker’da oluşturulabilir ve çalıştırılabilir. Tercih ettiğiniz komut istemcisini açın, uygulamanızın bulunduğu (çözüm dosyası ve Dockerfile’ın yer aldığı) klasöre geçin ve aşağıdaki komutu çalıştırın:
//örnek
docker build -t <kullanıcı adı>/<depo adı> .
docker build -t kullanıcı/asposefunction .
Bu komutu ilk kez çalıştırdığınızda, gerekli görüntüleri indirmek için Docker’ın biraz daha uzun sürmesi gerekebilir. Önceki komut tamamlandıktan sonra, görüntüyü docker hub’a yüklemek için aşağıdaki komutu çalıştırın:
//örnek
docker push <kullanıcı adı>/<depo adı>:tagname
docker push kullanıcı/asposefunction:latest
Azure
- Azure’a giriş yapın.
- Azure hizmetlerini seçin.
- Function App seçin ve bir fonksiyon oluşturun.
- Aşağıdaki görüntüdeki gibi temel ayarları tekrarlayın.
- ‘Gözden Geçir + oluştur’ -> Oluştur’a tıklayın.
- Dağıtımın tamamlanmasını bekleyin.
- ‘Kaynağa git’ butonuna tıklayın.
- aspose-cad-docker-example fonksiyonunu durdurun.
- Dağıtım merkezi menüsüne gidin ve gereken ayarları yapın.
- Ayarları kaydedin.
- Dağıtım merkezi ayarlarından Webhook URL’sini kopyalayın.
- Docker Hub’a gidin, deponuzu seçin ve webhooks’u seçin.
- Azure’dan alınan ‘Webhook url’ini Docker Hub webhook url’sine yapıştırın ve adlandırın.
- Oluştur butonuna tıklayın.
- Genel bakış Azure fonksiyonuna geri dönün ve konteyneri başlatın.
Çalışma örneği
- Postman ayarları.
- Herhangi bir DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG dosyasını seçin.
- Gönder butonuna tıklayın.
Daha Fazla Örnek
Aspose.CAD’ın Docker’da nasıl kullanılmasına dair daha fazla örnek için örneklere bakın.