Cómo ejecutar la imagen Docker de Aspose.CAD en Azure Function
Prerrequisitos
- Docker debe estar instalado en su sistema. Para obtener información sobre cómo instalar Docker en Windows o Mac, consulte los enlaces en la sección “Ver también”.
- IntelliJ IDEA.
- Azure Toolkit para IntelliJ.
- Postman.
Azure Function
En este ejemplo, crea una función de conversión simple que convierte un archivo CAD y lo guarda como una imagen. La aplicación se puede construir en Docker y ejecutarse en Azure Function.
Creando la Azure Function
Para crear el programa de Azure Function, siga los pasos a continuación:
Una vez que Docker esté instalado, asegúrese de que utiliza contenedores de Linux (por defecto). Si es necesario, seleccione la opción Cambiar a contenedores de Linux en el menú de Docker Desktop.
Crear un proyecto de Azure Function en IntelliJ IDEA.
Herramientas->Azure->Iniciar sesión y seleccione la autenticación OAuth 2.0.
Inicie sesión en el navegador.
Seleccione el nombre de la suscripción.
Agregue soporte para Docker.
Edite el DockerFile como en la sección Configurando un Dockerfile.
Agregue bloques para el repositorio aspose.cad en 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>
Cuando todas las dependencias requeridas estén añadidas, escriba un programa simple que crea una elipse y la guarda como una imagen:
public class HttpTriggerFunction { /** * Esta función escucha en el punto de entrada "/api/HttpExample". Dos formas de invocarla utilizando el comando "curl" en bash: * 1. curl -d "Cuerpo HTTP" {tu host}/api/HttpExample * 2. curl "{tu host}/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("El desencadenador HTTP de Java procesó una solicitud."); 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(); } } }
Configurando un Dockerfile
El siguiente paso es crear y configurar el Dockerfile en la carpeta raíz del proyecto.
- En el Dockerfile, especifique:
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"]
Lo anterior es un Dockerfile simple, que contiene las siguientes instrucciones:
- La imagen del SDK que se va a utilizar. Docker la descargará cuando se ejecute la construcción. La versión del SDK se especifica como una etiqueta.
- El directorio de trabajo, que se especifica en la siguiente línea.
- El comando para copiar todo al contenedor, publicar la aplicación y especificar el punto de entrada.
Docker Hub
- Iniciar sesión en Docker Hub
- Crear un repositorio público
Construyendo y ejecutando la aplicación en Docker
Ahora se puede construir y ejecutar la aplicación en Docker. Abra su terminal favorita, cambie el directorio a la carpeta con la aplicación (la carpeta donde se encuentra el archivo de solución y el Dockerfile) y ejecute el siguiente comando:
Comando de Dockerfile build en la consola
//ejemplo docker build -t <nombre de usuario>/<nombre del repositorio> . docker build -t user/asposefunction .
La primera vez que ejecute este comando, puede tardar más porque Docker necesita descargar las imágenes necesarias. Después de que se complete el comando anterior, ejecute el siguiente comando para enviar la imagen a Docker Hub.
//ejemplo docker push <nombre de usuario>/<nombre del repositorio>:tagname docker push user/aspose-cad-java:latest
Ejecutar dockerfile en IDE y después enviar a Docker Hub.
Ingrese el nombre de la imagen, como en el repositorio de Docker Hub.
Espere a que finalice.
Azure
- Inicie sesión en Azure.
- Elija los servicios de Azure.
- Elija Function App y cree una función.
- Repita la configuración básica como en la imagen a continuación.
- Haga clic en ‘Revisar + crear’ -> Crear.
- Espere a que la implementación termine.
- Haga clic en el botón ‘Ir al recurso’.
- Detener la función aspose-cad-docker-example.
- Vaya al menú del centro de implementación y realice las configuraciones adecuadas.
- Guardar configuraciones
- Copie la URL del Webhook de la configuración del centro de implementación.
- Vaya a Docker Hub, seleccione su repositorio y seleccione webhooks.
- Pegue la ‘URL del Webhook’ de Azure en la URL del Webhook de Docker Hub y establezca el nombre.
- Haga clic en el botón de crear.
- Regrese a la función de Azure y inicie el contenedor.Puede tardar unos minutos en que la función se inicie.
Ejemplo de ejecución
- Configuraciones de Postman.
- Seleccione cualquier archivo DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG.
- Haga clic en el botón enviar.
- Guardar resultado
Más ejemplos
Para más muestras de cómo puede usar Aspose.CAD en Docker, consulte los ejemplos.