Jak spustit obraz Aspose.CAD Docker v Azure Function
Předpoklady
- Docker musí být nainstalován na vašem systému. Informace o instalaci Dockeru na Windows nebo Mac naleznete v odkazech v sekci “Viz také”.
- IntelliJ IDEA.
- Azure Toolkit pro IntelliJ.
- Postman.
Azure Function
V tomto příkladu vytvoříte jednoduchou konverzní funkci, která převede soubor CAD a uloží jej jako obrázek. Aplikace může být následně sestavena v Dockeru a spuštěna v Azure Function.
Vytvoření Azure Function
Pro vytvoření programu Azure Function postupujte podle následujících kroků:
Jakmile je nainstalován Docker, ujistěte se, že používá kontejnery Linux (výchozí). Pokud je to nutné, z nabídky Docker Desktop vyberte možnost Přepnout na linuxové kontejnery.
Vytvoříte projekt Azure Function v IntelliJ IDEA.
Nástroje-> Azure-> Přihlásit se a vybrat ověření OAuth 2.0.
Přihlaste se v prohlížeči.
Vyberte název odběru.
Přidejte podporu Dockeru.
Upravte soubor Dockerfile, jak je uvedeno v sekci Konfigurace Dockerfile.
Přidejte bloky pro repozitář aspose.cad do souboru 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>
Jakmile budou přidány všechny požadované závislosti, napište jednoduchý program, který vytvoří elipsu a uloží ji jako obrázek:
public class HttpTriggerFunction { /** * Tato funkce poslouchá na koncovém bodě "/api/HttpExample". Dvě způsoby, jak ji vyvolat pomocí příkazu "curl" v bashi: * 1. curl -d "HTTP tělo" {vaše hostitelka}/api/HttpExample * 2. curl "{vaše hostitelka}/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 příkaz zpracoval požadavek."); 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(); } } }
Konfigurace Dockerfile
Dalším krokem je vytvoření a konfigurace souboru Dockerfile ve složce kořenového projektu.
- V souboru Dockerfile uveďte:
FROM mcr.microsoft.com/azure-functions/java:3.0-java8-build Jako installer-env COPY . /src/jazyk-funkce-java RUN cd /src/jazyk-funkce-java && \ 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"]
Výše uvedený je jednoduchý Dockerfile, který obsahuje následující pokyny:
- Obrázek SDK, který se má použít. Docker jej stáhne při spuštění sestavení. Verze SDK je specifikována jako značka.
- Pracovní adresář, který je specifikován v následujícím řádku.
- Příkaz k zkopírování všeho do kontejneru, publikování aplikace a specifikaci vstupního bodu.
Docker Hub
- Přihlašte se do Docker Hubu
- Vytvořte veřejný repozitář
Sestavení a spuštění aplikace v Dockeru
Nyní lze aplikaci sestavit a spustit v Dockeru. Otevřete oblíbený příkazový řádek, změňte adresář na složku se aplikací (složka, kde je umístěn soubor řešení a Dockerfile) a spusťte následující příkaz:
Příkaz sestavení souboru Dockerfile v konzoli
//příklad docker build -t <jméno uživatele>/<název repozitáře> . docker build -t user/asposefunction .
Při prvním spuštění tohoto příkazu může trvat déle, protože Docker musí stáhnout potřebné obrazy. Poté, co předchozí příkaz dokončí, spusťte následující příkaz pro zaslání obrazu do Docker Hubu.
//příklad docker push <jméno uživatele>/<název repozitáře>:tagname docker push user/aspose-cad-java:latest
Spusťte soubor Dockerfile v IDE a po zaslání do Docker Hubu.
Zadejte název obrazu, jako je uvedeno v repozitáři Docker Hubu.
Počkejte na dokončení.
Azure
- Přihlásit se do Azure.
- Vyberte služby Azure.
- Vyberte Funkci aplikace a vytvořte funkci.
- Opakujte základní nastavení, jak je znázorněno na následujícím obrázku.
- Klepněte na ‘Zkontrolovat + vytvořit’ -> Vytvořit.
- Počkejte na dokončení nasazení.
- Klepněte na tlačítko ‘Přejít na zdroj’.
- Zastavte funkci aspose-cad-docker-example.
- Přejděte do nabídky střediska pro nasazení a proveďte příslušná nastavení.
- Uložte nastavení
- Zkopírujte Webhook URL ze nastavení střediska pro nasazení.
- Přejděte do Docker Hubu, vyberte svůj repozitář a vyberte webhooks.
- Vložte „Webhook url“ z Azure do pole “Webhook url” v Docker Hubu a nastavte název.
- Klepněte na tlačítko vytvořit.
- Vraťte se zpět na přehled funkce Azure a spusťte kontejner.Může trvat několik minut, než funkce začne fungovat.
Příklad provedení
- Nastavení Postmana.
- Vyberte jakýkoliv soubor DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG.
- Klepněte na tlačítko odeslat.
- Uložte výsledek
Další příklady
Pro více ukázek, jak můžete použít Aspose.CAD v Dockeru, podívejte se na příklady.
Viz také
- Instalace Docker Desktop na Windows
- Instalace Docker Desktop na Mac
- IntelliJ IDEA
- Možnost přepnutí na linuxové kontejnery v Dockeru pro Windows