Come eseguire l'immagine Dockers di Aspose.CAD in una funzione AWS Lambda
Requisiti
- Docker deve essere installato sul tuo sistema. Per informazioni su come installare Docker su Windows o Mac, fare riferimento ai collegamenti della sezione “Vedi anche”.
- Visual Studio 2022.
- AWS Toolkit per Visual Studio 2022.
- Il SDK .NET 6 è utilizzato nell’esempio.
- Postman
Funzione AWS Lambda
Lambda è un servizio di calcolo che consente di eseguire codice senza provisioning o gestione dei server. Lambda esegue il tuo codice su un’infrastruttura di calcolo ad alta disponibilità e svolge tutta l’amministrazione delle risorse di calcolo, inclusa la manutenzione del server e del sistema operativo, il provisioning della capacità e il ridimensionamento automatico, e la registrazione. Con Lambda, puoi eseguire codice per praticamente qualsiasi tipo di applicazione o servizio backend.
Creazione della Funzione AWS Lambda
Per creare il programma della Funzione AWS Lambda, segui i passaggi qui sotto:
- Crea un progetto AWS Lambda.
- Seleziona .NET 6 (Immagine del contenitore) e fai clic sul pulsante ‘Fine’.
- Apri AWS Explorer in Visual Studio (Visualizza->AWS Explorer).
- Aggiungi il profilo delle credenziali AWS in AWS Explorer.
- Inserisci l’ID chiave di accesso e la chiave di accesso segreta, puoi ottenere queste chiavi nelle credenziali di sicurezza oppure contatta l’amministratore e ottieni un file csv per l’autenticazione.
- Installa le ultime librerie da NuGet.
- Esempio di codice per convertire l’immagine CAD in un file 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" } } }; } }
- Modifica il DockerFile come nella sezione Configurazione di un Dockerfile.
- Avvia Docker Desktop.
- Pubblica su AWS Lambda.
- Modifica la configurazione di caricamento.
- Fai clic sul pulsante ‘Carica’.
- Vai su AWS e seleziona Lambda.
- Seleziona la tua nuova funzione e crea l’url della funzione.
- Seleziona il tipo di autenticazione
- AWS_IAM - Solo gli utenti e i ruoli IAM autenticati possono inviare richieste all’URL della tua funzione.
- NONE - Lambda non eseguirà l’autenticazione IAM sulle richieste all’URL della tua funzione. L’endpoint URL sarà pubblico a meno che tu non implementi la tua logica di autorizzazione nella tua funzione.
Configurazione di un Dockerfile
Il passaggio successivo è modificare e configurare il Dockerfile nel progetto.
- Nel Dockerfile, specifica:
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"]
Quello sopra è un semplice Dockerfile, che contiene le seguenti istruzioni:
- L’immagine SDK da utilizzare. Qui si tratta dell’immagine Net 6. Docker la scaricherà quando viene eseguita la build. La versione del SDK è specificata come tag.
- Inoltre, potrebbe essere necessario installare i font perché l’immagine SDK contiene pochissimi font. Inoltre, puoi utilizzare font locali copiati nell’immagine docker.
- La cartella di lavoro, che è specificata nella riga successiva.
- Il comando per copiare tutto nel contenitore, pubblicare l’applicazione e specificare il punto di entrata.
Esempio di esecuzione
- Impostazioni di Postman.
- Seleziona qualsiasi file DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG.
- Fai clic sul pulsante invia.
Ulteriori esempi
Per ulteriori esempi su come puoi utilizzare Aspose.CAD in Docker, vedere gli esempi.