Hoe de Aspose.CAD Docker-afbeelding in AWS Lambda-functie te draaien

Vereisten

  • Docker moet op uw systeem zijn geïnstalleerd. Voor informatie over hoe Docker op Windows of Mac te installeren, verwijst u naar de links in de sectie “Zie ook”.
  • Visual Studio 2022.
  • AWS Toolkit voor Visual Studio 2022.
  • NET 6 SDK wordt in het voorbeeld gebruikt.
  • Postman

AWS Lambda-functie

Lambda is een compute-service waarmee u code kunt uitvoeren zonder servers te provisioneren of te beheren. Lambda voert uw code uit op een compute-infrastructuur met hoge beschikbaarheid en verzorgt al het beheer van de compute-resources, inclusief server- en besturingssysteemonderhoud, capaciteitsprovisionering en automatische schaling, en logging. Met Lambda kunt u code uitvoeren voor vrijwel elk type applicatie of backend-service.

De AWS Lambda-functie maken

Om het AWS Lambda Functieprogramma te maken, volgt u de onderstaande stappen:

  1. Maak een AWS Lambda Project.
    Maak AWS functie knop
  2. Selecteer .NET 6(Container Image) en klik op de knop ‘Voltooien’.
    Maak containerfunctie knop
  3. Open AWS Explorer in Visual Studio (View->AWS Explorer).
  4. Voeg AWS-referentiesprofiel toe in AWS Explorer.
    Referentieprofiel
  5. Voer Access Key ID en Secret Access Key in, u kunt deze sleutels krijgen in beveiligingsreferenties of neem contact op met de beheerder en krijg een csv-bestand voor autorisatie.
    Account profielinstellingen
  6. Installeer de nieuwste bibliotheken van NuGet.
    NuGet Manager
  7. Codevoorbeeld voor het converteren van cad-afbeelding naar pdf-bestand.
    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. Bewerk het DockerFile zoals in de Configurerende een Dockerfile sectie.
  9. Start Docker Desktop.
  10. Publiceer naar AWS Lambda.
    AWS lambda publiceren
  11. Bewerk uploadconfiguratie.
    Upload aws lambda
  12. Klik op de knop ‘Uploaden’.
    Upload aws lambda laatste
  13. Ga naar AWS en selecteer Lambda.
    AWS Lambda
  14. Selecteer uw nieuwe functie en maak url functie.
    Configuratie url functie
  15. Selecteer auth-type
  • AWS_IAM - Alleen geauthenticeerde IAM-gebruikers en -rollen kunnen verzoeken indienen naar uw functie-URL.
  • NONE - Lambda voert geen IAM-authenticatie uit op verzoeken aan uw functie-URL. De URL-eindpunt zal openbaar zijn, tenzij u uw eigen autorisatie-logica in uw functie implementeert.

Configureren van een Dockerfile

De volgende stap is om de Dockerfile in het project te configureren.

  1. Geef in het Dockerfile aan:
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"]

Het bovenstaande is een eenvoudige Dockerfile, die de volgende instructies bevat:

  • De SDK-afbeelding die moet worden gebruikt. Hier is het de Net 6-afbeelding. Docker zal het downloaden wanneer de build wordt uitgevoerd. De versie van de SDK wordt gespecificeerd als een tag.
  • Daarna moet u mogelijk lettertypen installeren, omdat de SDK-afbeelding zeer weinig lettertypen bevat. U kunt ook lokale lettertypen gebruiken die naar de docker-afbeelding zijn gekopieerd.
  • De werkdirectory, die in de volgende regel is gespecificeerd.
  • Het commando om alles naar de container te kopiëren, de applicatie te publiceren en de toegangspunt op te geven.

Voorbeeld van uitvoering

  1. Postman-instellingen.
    Overzichtsmenu
  2. Selecteer een DXF-, DWG-, DGN-, DWF-, DWFX-, IFC-, STL-, DWT-, IGES-, PLT-, CF2-, OBJ-, HPGL-, IGS-, PCL-, FBX-, PDF-, SVG-bestand.
  3. Klik op de verzendknop.

Meer Voorbeelden

Voor meer voorbeelden van hoe u Aspose.CAD in Docker kunt gebruiken, zie de voorbeelden.

Zie ook.