Comment exécuter l'image Docker Aspose.CAD dans une fonction AWS Lambda
Prérequis
- Docker doit être installé sur votre système. Pour des informations sur la manière d’installer Docker sur Windows ou Mac, consultez les liens dans la section “Voir aussi”.
- Visual Studio 2022.
- AWS Toolkit pour Visual Studio 2022.
- Le SDK NET 6 est utilisé dans l’exemple.
- Postman
Fonction AWS Lambda
Lambda est un service de calcul qui vous permet d’exécuter du code sans provisionner ou gérer des serveurs. Lambda exécute votre code sur une infrastructure de calcul à haute disponibilité et effectue toute l’administration des ressources de calcul, y compris la maintenance des serveurs et du système d’exploitation, la provision de capacité et la mise à l’échelle automatique, et la journalisation. Avec Lambda, vous pouvez exécuter du code pour pratiquement tout type d’application ou de service backend.
Création de la fonction AWS Lambda
Pour créer le programme de fonction AWS Lambda, suivez les étapes ci-dessous :
- Créez un projet AWS Lambda.
- Sélectionnez .NET 6 (Image de conteneur) et cliquez sur le bouton ‘Terminer’.
- Ouvrez AWS Explorer dans Visual Studio (Affichage->AWS Explorer).
- Ajoutez le profil d’identifiants AWS dans AWS Explorer.
- Entrez l’ID de clé d’accès et la clé d’accès secrète, vous pouvez obtenir ces clés dans les identifiants de sécurité ou contacter l’administrateur et obtenir un fichier csv pour l’autorisation.
- Installez les dernières bibliothèques depuis NuGet.
- Exemple de code pour convertir une image cad en fichier 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" } } }; } }
- Modifiez le DockerFile comme dans la section Configuration d’un Dockerfile.
- Démarrez Docker Desktop.
- Publiez sur AWS Lambda.
- Modifiez la configuration de téléchargement.
- Cliquez sur le bouton ‘Télécharger’.
- Accédez à AWS et sélectionnez Lambda.
- Sélectionnez votre nouvelle fonction et créez l’URL de fonction.
- Sélectionnez le type d’authentification
- AWS_IAM - Seuls les utilisateurs et rôles IAM authentifiés peuvent effectuer des demandes à l’URL de votre fonction.
- AUCUN - Lambda ne procédera pas à une authentification IAM pour les demandes à l’URL de votre fonction. Le point de terminaison de l’URL sera public à moins que vous n’implémentiez votre propre logique d’autorisation dans votre fonction.
Configuration d’un Dockerfile
La prochaine étape consiste à éditer et à configurer le Dockerfile dans le projet.
- Dans le Dockerfile, spécifiez :
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"]
Ce qui précède est un Dockerfile simple, qui contient les instructions suivantes :
- L’image SDK à utiliser. Ici, il s’agit de l’image Net 6. Docker la téléchargera lors de l’exécution de la build. La version du SDK est spécifiée comme tag.
- Ensuite, vous devrez peut-être installer des polices car l’image SDK contient très peu de polices. De plus, vous pouvez utiliser des polices locales copiées dans l’image Docker.
- Le répertoire de travail, qui est spécifié à la ligne suivante.
- La commande pour copier tout dans le conteneur, publier l’application et spécifier le point d’entrée.
Exemple d’exécution
- Paramètres de Postman.
- Sélectionnez n’importe quel fichier DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG.
- Cliquez sur le bouton envoyer.
Plus d’exemples
Pour plus d’exemples sur la façon d’utiliser Aspose.CAD dans Docker, consultez les exemples.