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:

  1. AWS Lambda Projesi oluşturun.
    AWS fonksiyonu oluşturma butonu
  2. .NET 6 (Konteyner Görüntüsü) seçin ve ‘Bitir’ butonuna tıklayın.
    Konteyner işlevini oluşturma butonu
  3. Visual Studio’da AWS Explorer’ı açın (Görünüm->AWS Explorer).
  4. AWS Explorer’da AWS kimlik bilgileri profilini ekleyin.
    Kimlik bilgileri profili
  5. 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.
    Hesap profili ayarları
  6. NuGet’ten en son kütüphaneleri yükleyin.
    NuGet Yöneticisi
  7. 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"
                    }
                }
            };
        }
    }
  8. DockerFile’ı Dockerfile’ı Yapılandırma kısmındaki gibi düzenleyin.
  9. Docker Desktop’u başlatın.
  10. AWS Lambda’ya yayınlayın.
    AWS lambda yayını
  11. Yükleme yapılandırmasını düzenleyin.
    AWS lambda yükleme
  12. ‘Yükle’ butonuna tıklayın.
    AWS lambda yükleme son
  13. AWS’ye gidin ve Lambda’yı seçin.
    AWS Lambda
  14. Yeni işlevinizi seçin ve URL işlevi oluşturun.
    Yapılandırma url işlevi
  15. 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.

  1. 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

  1. Postman ayarları.
    Genel bakış menüsü
  2. Herhangi bir DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG dosyasını seçin.
  3. 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.

Ayrıca Bakınız.