Hoe de Aspose.CAD Docker afbeelding uit te voeren in Azure Function
Vereisten
- Docker moet op uw systeem zijn geïnstalleerd. Voor informatie over hoe u Docker op Windows of Mac installeert, verwijst u naar de links in de sectie “Zie ook”.
- IntelliJ IDEA.
- Azure Toolkit voor IntelliJ.
- Postman.
Azure Function
In dit voorbeeld maakt u een eenvoudige conversiefunctie die een CAD-bestand converteert en opslaat als een afbeelding. De applicatie kan dan worden gebouwd in Docker en uitgevoerd in Azure Function.
De Azure Function maken
Om het Azure Function-programma te maken, volgt u de onderstaande stappen:
Zodra Docker is geïnstalleerd, zorgt u ervoor dat het Linux-containers gebruikt (standaard). Indien nodig selecteert u de optie Overschakelen naar Linux-containers in het menu van Docker Desktops.
Maak een Azure Function-project in IntelliJ IDEA.
Tools->Azure->Aanmelden en selecteer OAuth 2.0-authenticatie.
Log in in uw browser.
Selecteer de abonnementsnaam.
Voeg Docker-ondersteuning toe.
Bewerk het Dockerfile zoals in de sectie Een Dockerfile configureren.
Voeg blokken toe voor de repository aspose.cad in 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>
Wanneer alle vereiste afhankelijkheden zijn toegevoegd, schrijft u een eenvoudig programma dat een ellips maakt en opslaat als een afbeelding:
public class HttpTriggerFunction { /** * Deze functie luistert op het eindpunt "/api/HttpExample". Twee manieren om het aan te roepen met de "curl"-opdracht in bash: * 1. curl -d "HTTP Body" {your host}/api/HttpExample * 2. curl "{your 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 heeft een verzoek verwerkt."); 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(); } } }
Een Dockerfile configureren
De volgende stap is om de Dockerfile in de hoofdprojectmap te maken en te configureren.
- Specificeer in de Dockerfile:
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"]
Het bovenstaande is een eenvoudige Dockerfile, die de volgende instructies bevat:
- De SDK-afbeelding die moet worden gebruikt. Docker downloadt deze wanneer de build wordt uitgevoerd. De versie van de SDK wordt als tag opgegeven.
- De werkdirectory, die in de volgende regel wordt gespecificeerd.
- De opdracht om alles naar de container te kopiëren, de applicatie te publiceren en het entry point op te geven.
Docker Hub
- Meld u aan bij Docker Hub
- Maak een openbare repository
De applicatie bouwen en uitvoeren in Docker
Nu kan de applicatie worden gebouwd en uitgevoerd in Docker. Open uw favoriete opdrachtprompt, wijzig de directory naar de map met de applicatie (map waarin het oplossingbestand en de Dockerfile zijn geplaatst) en voer de volgende opdracht uit:
Dockerfile-bouwopdracht in de console
//voorbeeld docker build -t <gebruikersnaam>/<repository-naam> . docker build -t user/asposefunction .
De eerste keer dat u deze opdracht uitvoert, kan het langer duren omdat Docker de benodigde afbeeldingen moet downloaden. Nadat de vorige opdracht is voltooid, voert u de volgende opdracht uit om de afbeelding naar Docker Hub te duwen.
//voorbeeld docker push <gebruikersnaam>/<repository-naam>:tagnaam docker push user/aspose-cad-java:latest
Voer het Dockerfile uit in de IDE en push daarna naar Docker Hub.
Voer de naam van de afbeelding in, zoals in de Docker Hub-repository.
Wacht tot deze is afgelopen.
Azure
- Meld u aan bij Azure.
- Kies Azure-services.
- Kies Function App en maak een functie.
- Herhaal de basisinstellingen zoals in de afbeelding hieronder.
- Klik op ‘Beoordelen + maken’ -> Maken.
- Wacht tot de implementatie is voltooid.
- Klik op de knop ‘Ga naar resource’.
- Stop de aspose-cad-docker-example-functie.
- Ga naar het menu implementatiecentrum en maak de juiste instellingen.
- Sla de instellingen op
- Kopieer de Webhook-URL van de instellingen van het implementatiecentrum.
- Ga naar Docker Hub, selecteer uw repository en selecteer webhooks.
- Plak de ‘Webhook-URL’ van Azure in de Docker Hub-webhook-URL en stel de naam in.
- Klik op de knop ‘Maken’.
- Ga terug naar het overzicht van de Azure-functie en start de container.Het kan enkele minuten duren voordat de functie is gestart.
Voorbeeld van uitvoering
- Postman-instellingen.
- Selecteer een DXF-, DWG-, DGN-, DWF-, DWFX-, IFC-, STL-, DWT-, IGES-, PLT-, CF2-, OBJ-, HPGL-, IGS-, PCL-, FBX-, PDF-, SVG-bestand.
- Klik op de verzendknop.
- Sla resultaat op
Meer Voorbeelden
Voor meer voorbeelden van hoe u Aspose.CAD in Docker kunt gebruiken, zie de voorbeelden.