Cara Menjalankan Gambar Docker Aspose.CAD di Fungsi AWS Lambda

Prasyarat

  • Docker harus diinstal di sistem Anda. Untuk informasi tentang cara menginstal Docker di Windows atau Mac, silakan lihat tautan di bagian “Lihat Juga”.
  • Visual Studio 2022.
  • AWS Toolkit untuk Visual Studio 2022.
  • NET 6 SDK digunakan dalam contoh ini.
  • Postman

Fungsi AWS Lambda

Lambda adalah layanan komputasi yang memungkinkan Anda menjalankan kode tanpa penyediaan atau pengelolaan server. Lambda menjalankan kode Anda di infrastruktur komputasi dengan ketersediaan tinggi dan melakukan semua administrasi sumber daya komputasi, termasuk pemeliharaan server dan sistem operasi, penyediaan kapasitas dan penskalaan otomatis, serta pencatatan. Dengan Lambda, Anda dapat menjalankan kode untuk hampir semua jenis aplikasi atau layanan backend.

Membuat Fungsi AWS Lambda

Untuk membuat program Fungsi AWS Lambda, ikuti langkah-langkah di bawah ini:

  1. Buat Proyek AWS Lambda.
    Buat tombol fungsi AWS
  2. Pilih .NET 6 (Gambar Kontainer) dan klik tombol ‘Selesai’.
    Buat tombol fungsi kontainer
  3. Buka AWS Explorer di Visual Studio (Tampilan->AWS Explorer).
  4. Tambahkan profil kredensial AWS di AWS Explorer.
    Profil kredensial
  5. Masukkan Access Key ID dan Secret Access Key, Anda dapat memperoleh kunci ini di kredensial keamanan atau menghubungi administrator dan mendapatkan file csv untuk otorisasi.
    Pengaturan profil akun
  6. Instal pustaka terbaru dari NuGet.
    Pengelola NuGet
  7. Contoh kode untuk mengonversi gambar cad menjadi file pdf.
    public APIGatewayHttpApiV2ProxyResponse FunctionHandler(APIGatewayHttpApiV2ProxyRequest stream, ILambdaContext context)
    {
        try
        {            
            var parser = HttpMultipartParser.MultipartFormDataParser.Parse(new MemoryStream(Convert.FromBase64String(stream.Body)));
            var file = parser.Files.First();
            Stream fileStream = file.Data;
    
            using (var img = Aspose.CAD.Image.Load(fileStream))
            {
                var ms = new MemoryStream();
                img.Save(ms, new PdfOptions());
                ms.Seek(0, (System.IO.SeekOrigin)SeekOrigin.Begin);
              
                return new APIGatewayHttpApiV2ProxyResponse
                {
                    StatusCode = (int)HttpStatusCode.OK,
                    Body = Convert.ToBase64String(ms.ToArray()),
                    IsBase64Encoded = true,
                    Headers = new Dictionary<string, string>
                    {
                        {"Content-Type", "application/pdf" },
                        {"Content-Disposition", "attachment;filename=filename.pdf" }
                    }
                };
            }
        }
        catch (Exception e)
        {           
            return new APIGatewayHttpApiV2ProxyResponse
            {
                StatusCode = (int)HttpStatusCode.OK,
                Body = e.Message,
                Headers = new Dictionary<string, string>
                {
                    {
                        "Content-Type", "text/html"
                    }
                }
            };
        }
    }
  8. Edit DockerFile seperti di bagian Mengonfigurasi Dockerfile.
  9. Mulai Docker Desktop.
  10. Publikasikan ke AWS Lambda.
    Publikasi AWS lambda
  11. Edit konfigurasi unggahan.
    Unggah aws lambda
  12. Klik tombol ‘Unggah’.
    Unggah aws lambda terakhir
  13. Pergi ke AWS dan pilih Lambda.
    AWS Lambda
  14. Pilih fungsi baru Anda dan buat url fungsi.
    Konfigurasi url fungsi
  15. Pilih tipe otentikasi
  • AWS_IAM - Hanya pengguna dan peran IAM yang terautentikasi yang dapat membuat permintaan ke URL fungsi Anda.
  • NONE - Lambda tidak akan melakukan otentikasi IAM pada permintaan ke URL fungsi Anda. Titik akhir URL akan bersifat publik kecuali Anda menerapkan logika otorisasi Anda sendiri di fungsi Anda.

Mengonfigurasi Dockerfile

Langkah selanjutnya adalah mengedit konfigurasi Dockerfile dalam proyek.

  1. Dalam Dockerfile, tetapkan:
FROM public.ecr.aws/lambda/dotnet:6

WORKDIR /var/task

COPY "bin/Release/lambda-publish"  .

RUN yum install -y amazon-linux-extras 
RUN amazon-linux-extras install epel -y
RUN yum install -y libgdiplus  

CMD ["AWSLambda::AWSLambda.Function::FunctionHandler"]

Di atas adalah Dockerfile sederhana, yang berisi instruksi berikut:

  • Gambar SDK yang akan digunakan. Di sini adalah gambar Net 6. Docker akan mengunduhnya saat build dijalankan. Versi SDK ditentukan sebagai tag.
  • Setelah itu, Anda mungkin perlu menginstal Font karena gambar SDK mengandung sangat sedikit font. Juga, Anda dapat menggunakan font lokal yang disalin ke gambar docker.
  • Direktori kerja, yang ditetapkan di baris berikutnya.
  • Perintah untuk menyalin semua ke kontainer, menerbitkan aplikasi, dan menentukan titik masuk.

Contoh Eksekusi

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

Contoh Lainnya

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

Lihat Juga.