Comment exécuter l'image Docker Aspose.CAD dans Azure Function
Prérequis
- Docker doit être installé sur votre système. Pour des informations sur la façon d’installer Docker sur Windows ou Mac, reportez-vous aux liens dans la section “Voir aussi”.
- IntelliJ IDEA.
- Azure Toolkit pour IntelliJ.
- Postman.
Azure Function
Dans cet exemple, vous créez une fonction de conversion simple qui convertit un fichier CAD et le sauvegarde sous forme d’image. L’application peut ensuite être construite dans Docker et exécutée dans Azure Function.
Création de la Fonction Azure
Pour créer le programme de la Fonction Azure, suivez les étapes ci-dessous :
Une fois Docker installé, assurez-vous qu’il utilise des conteneurs Linux (par défaut). Si nécessaire, sélectionnez l’option Passer à des conteneurs Linux dans le menu de Docker Desktop.
Créez un projet de fonction Azure dans IntelliJ IDEA.
Outils->Azure->Se connecter et sélectionner l’authentification OAuth 2.0.
Connectez-vous sur le navigateur.
Sélectionnez le nom de l’abonnement.
Ajoutez le support de Docker.
Modifiez le DockerFile comme dans la section Configuration d’un Dockerfile.
Ajoutez des blocs pour le dépôt aspose.cad dans pom.xml.
<repositories> <repository> <id>AsposeJavaAPI</id> <name>Aspose Java API</name> <url>https://releases.aspose.com/java/repo/</url> </repository> </repositories> <dependencies> <dependency> <groupId>com.aspose</groupId> <artifactId>aspose-cad</artifactId> <version>22.3</version> <scope>compile</scope> </dependency> </dependencies>
Une fois toutes les dépendances nécessaires ajoutées, écrivez un simple programme qui crée une ellipse et la sauvegarde sous forme d’image :
public class HttpTriggerFunction { /** * Cette fonction écoute à l'endpoint "/api/HttpExample". Deux façons de l'invoquer en utilisant la commande "curl" dans bash : * 1. curl -d "Corps HTTP" {votre hôte}/api/HttpExample * 2. curl "{votre hôte}/api/HttpExample?name=HTTP%20Query" */ @FunctionName("HttpExample") public HttpResponseMessage run( @HttpTrigger( name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage<Optional<String>> request, final ExecutionContext context) throws FileNotFoundException { context.getLogger().info("Le déclencheur HTTP Java a traité une demande."); try{ String body = request.getBody().get(); InputStream targetStream = new ByteArrayInputStream(body.getBytes()); CadImage image = (CadImage)Image.load(targetStream); { CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions(); rasterizationOptions.setPageWidth(1200); rasterizationOptions.setPageHeight(1200); ImageOptionsBase options = new PngOptions(); options.setVectorRasterizationOptions(rasterizationOptions); ByteArrayOutputStream out = new ByteArrayOutputStream(); image.save(out, options); return request.createResponseBuilder(HttpStatus.OK) .header("Content-type", "image/png") .header("Content-Disposition", "attachment;filename=filename.png") .body(out.toByteArray()).build(); } } catch (Exception e) { return request.createResponseBuilder(HttpStatus.BAD_REQUEST).body(e.getMessage()).build(); } } }
Configuration d’un Dockerfile
L’étape suivante consiste à créer et configurer le Dockerfile dans le dossier principal du projet.
- Dans le Dockerfile, spécifiez :
FROM mcr.microsoft.com/azure-functions/java:3.0-java8-build AS installer-env COPY . /src/java-function-app RUN cd /src/java-function-app && \ mkdir -p /home/site/wwwroot && \ mvn clean package && \ cd ./target/azure-functions/ && \ cd $(ls -d */|head -n 1) && \ cp -a . /home/site/wwwroot FROM mcr.microsoft.com/azure-functions/java:3.0-java8-appservice ENV AzureWebJobsScriptRoot=/home/site/wwwroot \ AzureFunctionsJobHost__Logging__Console__IsEnabled=true COPY --from=installer-env ["/home/site/wwwroot", "/home/site/wwwroot"]
Le fichier ci-dessus est un Dockerfile simple, qui contient les instructions suivantes :
- L’image SDK à utiliser. Docker la téléchargera lorsque la construction sera exécutée. La version de SDK est spécifiée comme une balise.
- Le répertoire de travail, qui est spécifié à la ligne suivante.
- La commande pour tout copier dans le conteneur, publier l’application et spécifier le point d’entrée.
Docker Hub
- Connectez-vous à Docker Hub
- Créez un dépôt public
Construction et exécution de l’application dans Docker
Maintenant, l’application peut être construite et exécutée dans Docker. Ouvrez votre terminal préféré, changez de répertoire pour le dossier contenant l’application (dossier où le fichier de solution et le Dockerfile sont placés) et exécutez la commande suivante :
Commande de construction du dockerfile dans la console
//exemple docker build -t <nom d'utilisateur>/<nom du dépôt> . docker build -t user/asposefunction .
La première fois que vous exécutez cette commande, elle peut prendre plus de temps car Docker doit télécharger les images nécessaires. Une fois la commande précédente terminée, exécutez la commande suivante pour pousser l’image vers Docker Hub.
//exemple docker push <nom d'utilisateur>/<nom du dépôt>:tagname docker push user/aspose-cad-java:latest
Exécutez le dockerfile dans l’IDE et après poussez vers Docker Hub.
Entrez le nom de l’image, comme dans le dépôt Docker Hub.
Attendez la fin.
Azure
- Connectez-vous à Azure.
- Choisissez les services Azure.
- Choisissez Fonction App et créez une fonction.
- Répétez les paramètres de base comme sur l’image ci-dessous.
- Cliquez sur ‘Revue + créer’ -> Créer.
- Attendez que le déploiement se termine.
- Cliquez sur le bouton ‘Aller à la ressource’.
- Arrêtez la fonction aspose-cad-docker-example.
- Allez dans le menu du centre de déploiement et effectuez les paramètres appropriés.
- Enregistrez les paramètres
- Copiez l’URL du Webhook à partir des paramètres du centre de déploiement.
- Allez sur Docker Hub, sélectionnez votre dépôt et sélectionnez webhooks.
- Collez l’URL du Webhook de Azure dans l’URL webhook de Docker Hub et définissez le nom.
- Cliquez sur le bouton de création.
- Retournez à l’aperçu de la fonction Azure et démarrez le conteneur.Il peut falloir quelques minutes pour que la fonction démarre.
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 d’envoi.
- Sauvegardez le résultat
Plus d’exemples
Pour plus d’exemples de la manière dont vous pouvez utiliser Aspose.CAD dans Docker, consultez les exemples.