Jak spustit obraz Aspose.CAD Docker v AWS Lambda funkci

Předpoklady

  • Musíte mít nainstalován Docker na vašem systému. Pokud chcete informace o tom, jak nainstalovat Docker ve Windows nebo Mac, podívejte se na odkazy v sekci „Viz také“.
  • Visual Studio 2022.
  • AWS Toolkit pro Visual Studio 2022.
  • V příkladu je použit .NET 6 SDK.
  • Postman

AWS Lambda Funkce

Lambda je výpočetní služba, která vám umožňuje spouštět kód bez nutnosti provozovat nebo spravovat servery. Lambda spouští váš kód na infrastruktuře s vysokou dostupností a provádí veškerou správu výpočetních zdrojů včetně údržby serverů a operačního systému, provozování kapacity a automatického škálování a logování. S Lambdou můžete spouštět kód pro prakticky jakoukoli aplikaci nebo backendovou službu.

Vytváření AWS Lambda Funkce

Chcete-li vytvořit program pro AWS Lambda Funkci, postupujte podle níže uvedených kroků:

  1. Vytvořte projekt AWS Lambda.
    Tlačítko vytvoření funkce AWS
  2. Vyberte .NET 6 (Obraz kontejneru) a klikněte na tlačítko ‘Dokončit’.
    Tlačítko vytvoření kontejnerové funkce
  3. Otevřete průzkumníka AWS ve Visual Studiu (Zobrazení-> Průzkumník AWS).
  4. Přidejte profil přístupových údajů AWS do průzkumníka AWS.
    Profil přístupových údajů
  5. Zadejte Identifikační ID klíče a tajný přístupový klíč, tyto klíče můžete získat v bezpečnostních přístupech nebo kontaktujte administrátora a získejte soubor CSV pro autorizaci.
    Nastavení profilu účtu
  6. Nainstalujte nejnovější knihovny z NuGet.
    Správce NuGet
  7. Ukázkový kód pro převod obrázku CAD na soubor 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. Editujte soubor DockerFile podle sekce Nastavení Dockerfile.
  9. Spusťte Docker Desktop.
  10. Publikujte do AWS Lambda.
    Publikovat AWS lambda
  11. Upravte konfiguraci nahrání.
    Nahrát AWS lambda
  12. Klikněte na tlačítko ‘Nahrát’.
    Nahrát AWS lambda poslední
  13. Přejděte do prostředí AWS a vyberte Lambda.
    AWS Lambda
  14. Vyberte vaši novou funkci a vytvořte funkci pro vytvoření URL adresy.
    Nastavení funkce url adresy
  15. Zvolte typ ověření
  • AWS_IAM - Pouze ověření IAM uživatelů a rolí můžou zasílat požadavky na URL adresu vaší funkce.
  • NONE - Lambda nebude provádět ověření IAM u požadavků na URL funkce. Koncový bod URL bude veřejný, pokud neimplementujete vlastní logiku autorizace ve vaší funkci.

Nastavení Dockerfile

Dalším krokem je upravit konfiguraci Dockerfile v projektu.

  1. V Dockerfile specifikujte:
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"]

Výše uvedený je jednoduchý Dockerfile, který obsahuje tyto pokyny:

  • Obrázek SDK, který se má použít. Zde je to obraz Net 6. Docker si ho stáhne při spuštění sestavení. Verze SDK je specifikována jako štítek.
  • Poté můžete potřebovat nainstalovat písma, protože obrázek SDK obsahuje velmi málo písem. Také můžete použít lokální písma zkopírovaná do obrazu Docker.
  • Pracovní adresář, který je specifikován v následujícím řádku.
  • Příkaz pro zkopírování všeho do kontejneru, publikování aplikace a specifikaci vstupního bodu.

Příklad spuštění

  1. Nastavení v Postmanu.
    Nastavení Postmanu
  2. Vyberte libovolný soubor DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG.
  3. Klikněte na tlačítko odeslat.

Další příklady

Pro více ukázek, jak můžete použít Aspose.CAD v Dockeru, podívejte se na příklady.

Viz také