So führen Sie das Aspose.CAD Docker-Image in AWS Lambda-Funktionen aus
Voraussetzungen
- Docker muss auf Ihrem System installiert sein. Informationen zur Installation von Docker unter Windows oder Mac finden Sie in den Links im Abschnitt „Siehe auch“.
- Visual Studio 2022.
- AWS-Toolkit für Visual Studio 2022.
- .NET 6 SDK wird im Beispiel verwendet.
- Postman
AWS Lambda-Funktion
Lambda ist ein Rechenservice, der es Ihnen ermöglicht, Code auszuführen, ohne Server bereitzustellen oder zu verwalten. Lambda führt Ihren Code auf einer hochverfügbaren Compute-Infrastruktur aus und übernimmt die gesamte Verwaltung der Compute-Ressourcen, einschließlich Server- und Betriebssystemwartung, Kapazitätsbereitstellung und automatische Skalierung sowie Protokollierung. Mit Lambda können Sie Code für nahezu jede Art von Anwendung oder Backend-Service ausführen.
Erstellen der AWS Lambda-Funktion
Um das AWS Lambda-Funktionsprogramm zu erstellen, befolgen Sie die folgenden Schritte:
- Erstellen Sie ein AWS Lambda-Projekt.
- Wählen Sie .NET 6 (Container-Image) aus und klicken Sie auf die Schaltfläche ‘Fertigstellen’.
- Öffnen Sie AWS Explorer in Visual Studio (Ansicht->AWS Explorer).
- Fügen Sie ein AWS-Credentials-Profil im AWS Explorer hinzu.
- Geben Sie die Access Key ID und den Secret Access Key ein. Diese Schlüssel können Sie in den Sicherheitsanmeldeinformationen erhalten oder den Administrator kontaktieren, um eine CSV-Datei zur Autorisierung zu erhalten.
- Installieren Sie die neuesten Bibliotheken von NuGet.
- Beispielcode zum Konvertieren von CAD-Bildern in PDF-Dateien.
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" } } }; } }
- Bearbeiten Sie die Dockerfile wie im Abschnitt Konfigurieren einer Dockerfile.
- Starten Sie Docker Desktop.
- Veröffentlichen Sie die AWS Lambda.
- Bearbeiten Sie die Upload-Konfiguration.
- Klicken Sie auf die Schaltfläche ‘Hochladen’.
- Gehen Sie zu AWS und wählen Sie Lambda aus.
- Wählen Sie Ihre neue Funktion aus und erstellen Sie eine URL-Funktion.
- Wählen Sie den Authentifizierungstyp aus
- AWS_IAM - Nur authentifizierte IAM-Benutzer und -Rollen können Anfragen an Ihre Funktions-URL stellen.
- NONE - Lambda führt keine IAM-Authentifizierung für Anfragen an die Funktion-URL durch. Der URL-Endpunkt wird öffentlich, es sei denn, Sie implementieren Ihre eigene Autorisierungslogik in Ihrer Funktion.
Konfigurieren einer Dockerfile
Der nächste Schritt besteht darin, die Dockerfile im Projekt zu konfigurieren.
- Geben Sie in der Dockerfile Folgendes an:
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"]
Das obige ist eine einfache Dockerfile, die die folgenden Anweisungen enthält:
- Das SDK-Image, das verwendet werden soll. Hier handelt es sich um das .NET 6-Image. Docker lädt es herunter, wenn der Build ausgeführt wird. Die Version des SDK wird als Tag angegeben.
- Danach müssen Sie möglicherweise Schriftarten installieren, da das SDK-Image sehr wenige Schriftarten enthält. Außerdem können Sie lokale Schriftarten verwenden, die in das Docker-Image kopiert wurden.
- Das Arbeitsverzeichnis, das in der nächsten Zeile angegeben ist.
- Der Befehl, um alles in den Container zu kopieren, die Anwendung zu veröffentlichen und den Einstiegspunkt anzugeben.
Ausführungsbeispiel
- Postman-Einstellungen.
- Wählen Sie eine beliebige DXF-, DWG-, DGN-, DWF-, DWFX-, IFC-, STL-, DWT-, IGES-, PLT-, CF2-, OBJ-, HPGL-, IGS-, PCL-, FBX-, PDF- oder SVG-Datei aus.
- Klicken Sie auf die Schaltfläche Senden.
Weitere Beispiele
Für weitere Beispiele, wie Sie Aspose.CAD in Docker verwenden können, siehe die Beispiele.