Как да стартирате Aspose.CAD Docker изображение в AWS Lambda функция

Предварителни изисквания

  • Docker трябва да бъде инсталиран на вашата система. За информация как да инсталирате Docker на Windows или Mac, се обърнете към връзките в секцията “Вижте също”.
  • Visual Studio 2022.
  • AWS Toolkit за Visual Studio 2022.
  • NET 6 SDK се използва в примера.
  • Postman

AWS Lambda Функция

Lambda е услуга за изчисление, която ви позволява да изпълнявате код без да предоставяте или управлявате сървъри. Lambda изпълнява вашия код на инфраструктура за изчисление с висока наличност и извършва цялата администрация на ресурсите за изчисление, включително поддръжка на сървъри и операционни системи, предоставяне на капацитет и автоматично мащабиране, и регистрация на дейностите. С Lambda можете да изпълнявате код за практически всякакъв тип приложение или бекенд услуга.

Създаване на AWS Lambda Функция

За да създадете програмата за AWS Lambda функция, следвайте стъпките по-долу:

  1. Създайте AWS Lambda проект.
    Създаване на бутон за AWS функция
  2. Изберете .NET 6 (Container Image) и кликнете върху бутона ‘Finish’.
    Създаване на бутон за контейнерна функция
  3. Отворете AWS Explorer в Visual Studio (View->AWS Explorer).
  4. Добавете AWS профил с удостоверения в AWS Explorer.
    Профил на удостоверение
  5. Въведете Access Key ID и Secret Access Key, можете да получите тези ключове в Security credentials или да се свържете с администратора и да получите csv файл за удостоверяване.
    Настройки на профил
  6. Инсталирайте последните библиотеки от NuGet.
    Управител на NuGet
  7. Примерен код за конвертиране на CAD изображение в 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. Редактирайте DockerFile, както е описано в секцията Конфигуриране на Dockerfile.
  9. Стартирайте Docker Desktop.
  10. Публикувайте в AWS Lambda.
    Публикуване в AWS lambda
  11. Редактирайте конфигурацията на качване.
    Качване в aws lambda
  12. Кликнете върху бутона ‘Upload’.
    Качване в aws lambda последно
  13. Отидете в AWS и изберете Lambda.
    AWS Lambda
  14. Изберете новата си функция и създайте URL на функцията.
    Конфигурация на URL функция
  15. Изберете тип на удостоверение
  • AWS_IAM - Само удостоверени IAM потребители и роли могат да правят искания към URL на вашата функция.
  • NONE - Lambda няма да извършва IAM удостоверяване при искания към URL на вашата функция. URL краят ще бъде публичен, освен ако не внедрите собствена логика за удостоверяване във вашата функция.

Конфигуриране на Dockerfile

Следващата стъпка е да редактирате конфигурацията на Dockerfile в проекта.

  1. В Dockerfile, посочете:
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"]

Горният Dockerfile е прост и съдържа следните инструкции:

  • Образа на SDK, който ще се използва. Тук е образа на Net 6. Docker ще го изтегли, когато се стартира изграждането. Версията на SDK е посочена като таг.
  • След това, може да е необходимо да инсталирате шрифтове, тъй като образа на SDK съдържа много малко шрифтове. Също така, можете да използвате локални шрифтове, копирани в образа на Docker.
  • Работната директория, която е посочена в следващия ред.
  • Командата за копиране на всичко в контейнера, публикуване на приложението и определяне на точката на вход.

Пример за изпълнение

  1. Настройки на Postman.
    Преглед на менюто
  2. Изберете всеки DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG файл.
  3. Кликнете върху бутона за изпращане.

Още Примери

За повече примери как можете да използвате Aspose.CAD в Docker, вижте примерите.

Вижте Също.