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:
- Buat Proyek AWS Lambda.
- Pilih .NET 6 (Gambar Kontainer) dan klik tombol ‘Selesai’.
- Buka AWS Explorer di Visual Studio (Tampilan->AWS Explorer).
- Tambahkan profil kredensial AWS di AWS Explorer.
- 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.
- Instal pustaka terbaru dari NuGet.
- 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" } } }; } }
- Edit DockerFile seperti di bagian Mengonfigurasi Dockerfile.
- Mulai Docker Desktop.
- Publikasikan ke AWS Lambda.
- Edit konfigurasi unggahan.
- Klik tombol ‘Unggah’.
- Pergi ke AWS dan pilih Lambda.
- Pilih fungsi baru Anda dan buat url fungsi.
- 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.
- 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
- Pengaturan Postman.
- Pilih DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, atau file SVG lainnya.
- Klik tombol kirim.
Contoh Lainnya
Untuk lebih banyak sampel tentang cara Anda dapat menggunakan Aspose.CAD di Docker, lihat contoh.