Cara Menjalankan Gambar Docker Aspose.CAD di Azure Function
Prasyarat
- Docker harus diinstal di sistem Anda. Untuk informasi tentang cara menginstal Docker di Windows atau Mac, lihat tautan di bagian “Lihat Juga”.
- Visual Studio 2022.
- SDK NET 6 digunakan dalam contoh ini.
- Postman
Azure Function
Dalam contoh ini, Anda membuat fungsi konversi sederhana yang mengonversi file CAD dan menyimpannya sebagai gambar. Aplikasi kemudian dapat dibangun dalam Docker dan dijalankan di Azure Function.
Membuat Azure Function
Untuk membuat program Azure Function, ikuti langkah-langkah di bawah ini:
- Setelah Docker diinstal, pastikan bahwa itu menggunakan Kontainer Linux (default). Jika perlu, pilih opsi Alihkan ke kontainer Linux dari menu Docker Desktops.
- Di Visual Studio, buat Azure Function NET 6.
- Informasi tambahan.
- Instal versi terbaru Aspose.CAD dari NuGet.
- Karena aplikasi akan dijalankan di Linux, Anda mungkin perlu menginstal font tambahan. Anda dapat memilih ttf-mscorefonts-installer.
- Ketika semua dependensi yang diperlukan ditambahkan, tulis program sederhana yang membuat elips dan menyimpannya sebagai gambar:
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("Fungsi trigger HTTP C# memproses permintaan.");
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);
}
}
}
Mengonfigurasi Dockerfile
Langkah selanjutnya adalah membuat dan mengonfigurasi Dockerfile di folder proyek root.
- Buat Dockerfile dan tempatkan di samping file solusi aplikasi Anda. Pertahankan nama file ini tanpa ekstensi (default).
- Dalam Dockerfile, tentukan:
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
Di atas adalah Dockerfile sederhana, yang berisi instruksi berikut:
- Gambar SDK yang akan digunakan. Di sini adalah gambar Net 6. Docker akan mengunduhnya ketika build dijalankan. Versi SDK ditentukan sebagai tag.
- Setelah itu, Anda mungkin perlu menginstal font karena gambar SDK tidak memiliki banyak font. Juga, Anda dapat menggunakan font lokal yang disalin ke gambar docker.
- Direktori kerja, yang ditentukan di baris berikutnya.
- Perintah untuk menyalin semua ke kontainer, menerbitkan aplikasi, dan menentukan titik masuk.
Docker Hub
- Masuk ke Docker Hub
- Buat Repository publik
Membangun dan Menjalankan Aplikasi di Docker
Sekarang aplikasi dapat dibangun dan dijalankan di Docker. Buka command prompt favorit Anda, ubah direktori ke folder dengan aplikasi (folder tempat file solusi dan Dockerfile ditempatkan) dan jalankan perintah berikut:
//contoh
docker build -t <nama pengguna>/<nama repository> .
docker build -t pengguna/asposefunction .
Waktu pertama Anda menjalankan perintah ini, mungkin akan memakan waktu lebih lama karena Docker perlu mengunduh gambar yang diperlukan. Setelah perintah sebelumnya selesai, jalankan perintah berikut untuk mendorong gambar ke docker hub:
//contoh
docker push <nama pengguna>/<nama repository>:tagname
docker push pengguna/asposefunction:latest
Azure
- Masuk ke Azure.
- Pilih layanan Azure.
- Pilih Aplikasi Function dan buat fungsi.
- Ulangi pengaturan dasar seperti di gambar di bawah.
- Klik ‘Tinjau + buat’ -> Buat.
- Tunggu hingga penyebaran selesai.
- Klik tombol ‘Pergi ke sumber daya’.
- Hentikan fungsi aspose-cad-docker-example.
- Pergi ke menu pusat penyebaran dan buat pengaturan yang sesuai.
- Simpan pengaturan
- Salin URL Webhook dari pengaturan pusat penyebaran.
- Pergi ke Docker Hub, pilih repository Anda dan pilih webhooks.
- Tempelkan ‘URL Webhook’ dari Azure ke URL webhook Docker Hub dan atur namanya.
- Klik tombol buat.
- Kembali ke overview fungsi azure dan mulai kontainer.
Contoh Eksekusi
- Pengaturan Postman.
- Pilih file DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG.
- Klik tombol kirim.
Contoh Lainnya
Untuk lebih banyak contoh tentang bagaimana Anda dapat menggunakan Aspose.CAD di Docker, lihat contoh.
Lihat Juga
- Instal Docker Desktop di Windows
- Instal Docker Desktop di Mac
- Visual Studio 2022, SDK NET 6
- Alihkan ke kontainer Linux opsi
- Informasi tambahan tentang .NET Core SDK