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:

  1. Setelah Docker diinstal, pastikan bahwa itu menggunakan Kontainer Linux (default). Jika perlu, pilih opsi Alihkan ke kontainer Linux dari menu Docker Desktops.
  2. Di Visual Studio, buat Azure Function NET 6.
    Dialog proyek Azure Function NET 6
  3. Informasi tambahan.
    Dialog proyek Azure Function NET 6
  4. Instal versi terbaru Aspose.CAD dari NuGet.
    Aspose.CAD di NuGet
  5. Karena aplikasi akan dijalankan di Linux, Anda mungkin perlu menginstal font tambahan. Anda dapat memilih ttf-mscorefonts-installer.
  6. 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.

  1. Buat Dockerfile dan tempatkan di samping file solusi aplikasi Anda. Pertahankan nama file ini tanpa ekstensi (default). Folder proyek root
  2. 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

  1. Masuk ke Docker Hub
  2. 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

  1. Masuk ke Azure.
  2. Pilih layanan Azure.
  3. Pilih Aplikasi Function dan buat fungsi.
    Tombol buat fungsi Azure
  4. Ulangi pengaturan dasar seperti di gambar di bawah.
    Pengaturan fungsi buat Azure
  5. Klik ‘Tinjau + buat’ -> Buat.
  6. Tunggu hingga penyebaran selesai.
  7. Klik tombol ‘Pergi ke sumber daya’.
    Tombol sumber daya
  8. Hentikan fungsi aspose-cad-docker-example.
    Hentikan kontainer
  9. Pergi ke menu pusat penyebaran dan buat pengaturan yang sesuai.
    Pusat penyebaran
  10. Simpan pengaturan
  11. Salin URL Webhook dari pengaturan pusat penyebaran.
    URL Webhook
  12. Pergi ke Docker Hub, pilih repository Anda dan pilih webhooks.
  13. Tempelkan ‘URL Webhook’ dari Azure ke URL webhook Docker Hub dan atur namanya.
    Pengaturan Webhook di docker
  14. Klik tombol buat.
  15. Kembali ke overview fungsi azure dan mulai kontainer.
    Menu overview

Contoh Eksekusi

  1. Pengaturan Postman.
    Pengaturan Postman
  2. Pilih file DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG.
  3. Klik tombol kirim.

Contoh Lainnya

Untuk lebih banyak contoh tentang bagaimana Anda dapat menggunakan Aspose.CAD di Docker, lihat contoh.

Lihat Juga