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:
- Maak een AWS Lambda Project.
- Selecteer .NET 6(Container Image) en klik op de knop ‘Voltooien’.
- Open AWS Explorer in Visual Studio (View->AWS Explorer).
- Voeg AWS-referentiesprofiel toe in AWS Explorer.
- 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.
- Installeer de nieuwste bibliotheken van NuGet.
- 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" } } }; } }
- Bewerk het DockerFile zoals in de Configurerende een Dockerfile sectie.
- Start Docker Desktop.
- Publiceer naar AWS Lambda.
- Bewerk uploadconfiguratie.
- Klik op de knop ‘Uploaden’.
- Ga naar AWS en selecteer Lambda.
- Selecteer uw nieuwe functie en maak url functie.
- 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.
- 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
- Postman-instellingen.
- Selecteer een DXF-, DWG-, DGN-, DWF-, DWFX-, IFC-, STL-, DWT-, IGES-, PLT-, CF2-, OBJ-, HPGL-, IGS-, PCL-, FBX-, PDF-, SVG-bestand.
- Klik op de verzendknop.
Meer Voorbeelden
Voor meer voorbeelden van hoe u Aspose.CAD in Docker kunt gebruiken, zie de voorbeelden.