So führen Sie das Aspose.CAD Docker-Image in Azure Function 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“.
- IntelliJ IDEA.
- Azure Toolkit für IntelliJ.
- Postman.
Azure Function
In diesem Beispiel erstellen Sie eine einfache Konvertierungsfunktion, die eine CAD-Datei konvertiert und als Bild speichert. Die Anwendung kann dann in Docker erstellt und in Azure Function ausgeführt werden.
Erstellen der Azure Function
Um das Azure Function-Programm zu erstellen, befolgen Sie die folgenden Schritte:
Stellen Sie sicher, dass Docker auf Linux-Containern (Standard) verwendet wird, nachdem es installiert wurde. Wählen sie gegebenenfalls im Dropdown-Menü von Docker Desktop die Option „Zu Linux-Containern wechseln“.
Erstellen Sie ein Azure Function-Projekt in IntelliJ IDEA.
Tools->Azure->Anmelden und „OAuth 2.0“-Authentifizierung auswählen.
Im Browser anmelden.
Abonnementnamen auswählen.
Docker-Unterstützung hinzufügen.
Bearbeiten Sie die DockerFile wie im Abschnitt Konfigurieren einer Dockerfile.
Blöcke für das Repository aspose.cad in die pom.xml hinzufügen.
<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>
Nachdem alle erforderlichen Abhängigkeiten hinzugefügt wurden, schreiben Sie ein einfaches Programm, das ein Ellipse erstellt und als Bild speichert:
public class HttpTriggerFunction { /** * Diese Funktion lauscht am Endpunkt "/api/HttpExample". Zwei Möglichkeiten, sie mit dem „curl“-Befehl in der Bash aufzurufen: * 1. curl -d "HTTP-Body" {Ihr Host}/api/HttpExample * 2. curl "{Ihr 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("Java-HTTP-Trigger hat eine Anforderung verarbeitet."); 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(); } } }
Konfigurieren einer Dockerfile
Der nächste Schritt besteht darin, die Dockerfile im Stammprojektordner zu erstellen und zu konfigurieren.
- Geben Sie in der Dockerfile Folgendes an:
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"]
Das oben stehende ist eine einfache Dockerfile, die die folgenden Anweisungen enthält:
- Das SDK-Image, das verwendet werden soll. Docker wird es herunterladen, wenn der Build ausgeführt wird. Die Version des SDK wird als Tag angegeben.
- Das Arbeitsverzeichnis wird in der nächsten Zeile angegeben.
- Der Befehl zum Kopieren von allem in den Container, zum Veröffentlichen der Anwendung und zum Festlegen des Einstiegspunkts.
Docker Hub
- Bei Docker Hub anmelden
- Öffentliches Repository erstellen
Anwendung in Docker erstellen und ausführen
Die Anwendung kann nun in Docker erstellt und ausgeführt werden. Öffnen Sie Ihre bevorzugte Eingabeaufforderung, wechseln Sie zum Verzeichnis mit der Anwendung (Ordner, in dem die Lösungsdatei und die Dockerfile platziert sind) und führen Sie folgenden Befehl aus:
Dockerfile-Befehl im Konsolenfenster erstellen
//Beispiel docker build -t <Benutzername>/<Repositoriesname> . docker build -t benutzer/asposefunction .
Beim ersten Ausführen dieses Befehls kann es länger dauern, da Docker die erforderlichen Images herunterladen muss. Nach Abschluss des vorherigen Befehls führen Sie den folgenden Befehl aus, um das Image auf Docker Hub hochzuladen.
//Beispiel docker push <Benutzername>/<Repositoriesname>:Tagname docker push benutzer/aspose-cad-java:latest
Dockerfile in IDE ausführen und anschließend in Docker Hub hochladen.
Geben Sie den Namen des Bildes ein, wie im Docker-Hub-Repository.
Warten Sie auf Beendigung.
Azure
- Bei Azure anmelden.
- Azure-Dienste auswählen.
- Funktion-App auswählen und eine Funktion erstellen.
- Wiederholen Sie die grundlegenden Einstellungen, wie im folgenden Bild.
- Auf „Überprüfen + Erstellen“ klicken -> Erstellen.
- Auf Abschluss des Bereitstellungsvorgangs warten.
- Auf die Schaltfläche „Zur Ressource gehen“ klicken.
- Stoppen Sie die Funktion aspose-cad-docker-example.
- Gehen Sie zum Menü „Bereitstellungszentrum“ und nehmen Sie die entsprechenden Einstellungen vor.
- Einstellungen speichern.
- Webhook-URL aus den Einstellungen des Bereitstellungszentrums kopieren.
- Gehen Sie zu Docker Hub, wählen Sie Ihr Repository aus und wählen Sie Webhooks aus.
- Fügen Sie die „Webhook-URL“ von Azure in die „Docker Hub“-Webhook-URL ein und legen Sie den Namen fest.
- Klicken Sie auf „Erstellen“.
- Zurück zur Übersicht der Azure-Funktion und Container starten.Es kann einige Minuten dauern, bis die Funktion gestartet ist.
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-, SVG-Datei aus.
- Klicken Sie auf die Schaltfläche „Senden“.
- Ergebnis speichern
Weitere Beispiele
Für weitere Beispiele zur Verwendung von Aspose.CAD in Docker sehen Sie die Beispiele.