AWS Lambda Fonksiyonunda Aspose.CAD Docker Görüntüsünü Çalıştırma
Ön Koşullar
- Sisteminizde Docker yüklü olmalıdır. Docker’ı Windows veya Mac’te nasıl yükleyeceğiniz hakkında bilgi için “Ayrıca Bakınız” bölümündeki bağlantılara bakın.
- Visual Studio 2022.
- Visual Studio 2022 için AWS Toolkit.
- Örnekte .NET 6 SDK kullanılmaktadır.
- Postman
AWS Lambda Fonksiyonu
Lambda, kodu sunucu sağlama veya yönetme konusunda herhangi bir işlem yapmadan çalıştırmanızı sağlayan bir hesaplama hizmetidir. Lambda, kodunuzu yüksek kullanılabilirlikte bir hesaplama altyapısında çalıştırır ve sunucu ve işletim sistemi bakımı, kapasite sağlama ve otomatik ölçeklendirme gibi hesaplama kaynaklarının tüm yönetimini gerçekleştirir. Lambda ile virtually herhangi bir uygulama veya arka uç hizmeti için kod çalıştırabilirsiniz.
AWS Lambda Fonksiyonunu Oluşturma
AWS Lambda Fonksiyon programını oluşturmak için aşağıdaki adımları izleyin:
- AWS Lambda Projesi oluşturun.
- .NET 6 (Konteyner Görüntüsü) seçin ve ‘Bitir’ butonuna tıklayın.
- Visual Studio’da AWS Explorer’ı açın (Görünüm->AWS Explorer).
- AWS Explorer’da AWS kimlik bilgileri profilini ekleyin.
- Erişim Anahtar ID’sini ve Gizli Erişim Anahtarını girin, bu anahtarları Güvenlik kimlik bilgileri bölümünde alabilir veya yöneticinizle iletişime geçip yetkilendirme için bir csv dosyası alabilirsiniz.
- NuGet’ten en son kütüphaneleri yükleyin.
- CAD görüntüsünü PDF dosyasına dönüştürmek için kod örneği.
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" } } }; } }
- DockerFile’ı Dockerfile’ı Yapılandırma kısmındaki gibi düzenleyin.
- Docker Desktop’u başlatın.
- AWS Lambda’ya yayınlayın.
- Yükleme yapılandırmasını düzenleyin.
- ‘Yükle’ butonuna tıklayın.
- AWS’ye gidin ve Lambda’yı seçin.
- Yeni işlevinizi seçin ve URL işlevi oluşturun.
- Kimlik doğrulama türünü seçin
- AWS_IAM - Yalnızca kimliği doğrulanmış IAM kullanıcıları ve rolleri, işlev URL’nize istek yapabilir.
- HİÇBİRİ - Lambda, işlev URL’nize yapılan isteklere IAM kimlik doğrulaması yapmayacaktır. URL uç noktası, işlevinizde kendi yetkilendirme mantığınızı uygulamazsanız genel olacaktır.
Dockerfile’ı Yapılandırma
Bir sonraki adım, projedeki Dockerfile’ı yapılandırmaktır.
- Dockerfile’da belirtin:
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"]
Yukarıdaki, aşağıdaki talimatları içeren basit bir Dockerfile’dır:
- Kullanılacak SDK görüntüsü. Burada .NET 6 görüntüsü bulunmaktadır. Docker, yapı çalıştırıldığında bunu indirecektir. SDK’nın sürümü bir etiket olarak belirtilmiştir.
- Daha sonra, SDK görüntüsünün ç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ınlamak ve giriş noktasını belirtmek için komut.
Uygulama Ö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
Docker’da Aspose.CAD’i nasıl kullanabileceğinize dair daha fazla örnek için örneklere bakın.