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ů:

  1. 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.

  2. Vytvoříte projekt Azure Function v IntelliJ IDEA.
    Vytvoření projektu Azure Function
    Vytvoření projektu Azure Function - finální

  3. Nástroje-> Azure-> Přihlásit se a vybrat ověření OAuth 2.0.
    Přihlášení do Azure

  4. Přihlaste se v prohlížeči.

  5. Vyberte název odběru.

  6. Přidejte podporu Dockeru.
    Přihlášení do Azure

  7. Upravte soubor Dockerfile, jak je uvedeno v sekci Konfigurace Dockerfile.

  8. 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>

  9. 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.

  1. 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

  1. Přihlašte se do Docker Hubu
  2. 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:

  1. 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 .

  2. 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

  3. Spusťte soubor Dockerfile v IDE a po zaslání do Docker Hubu.
    Spuštění Dockeru v IDE

  4. Zadejte název obrazu, jako je uvedeno v repozitáři Docker Hubu.
    Spuštění Dockeru v IDE - pokračování

  5. Počkejte na dokončení.

Azure

  1. Přihlásit se do Azure.
  2. Vyberte služby Azure.
  3. Vyberte Funkci aplikace a vytvořte funkci.
    Tlačítko Vytvořit funkci v Azure
  4. Opakujte základní nastavení, jak je znázorněno na následujícím obrázku.
    Nastavení vytvoření funkce v Azure
  5. Klepněte na ‘Zkontrolovat + vytvořit’ -> Vytvořit.
  6. Počkejte na dokončení nasazení.
  7. Klepněte na tlačítko ‘Přejít na zdroj’.
    Tlačítko zdroje
  8. Zastavte funkci aspose-cad-docker-example.
    Zastavení kontejneru
  9. Přejděte do nabídky střediska pro nasazení a proveďte příslušná nastavení.
    Středisko pro nasazení
  10. Uložte nastavení
  11. Zkopírujte Webhook URL ze nastavení střediska pro nasazení.
    Webhook URL
  12. Přejděte do Docker Hubu, vyberte svůj repozitář a vyberte webhooks.
  13. Vložte „Webhook url“ z Azure do pole “Webhook url” v Docker Hubu a nastavte název.
    Nastavení webhooku v Dockeru
  14. Klepněte na tlačítko vytvořit.
  15. Vraťte se zpět na přehled funkce Azure a spusťte kontejner.
    Přehled menu

Příklad provedení

  1. Nastavení Postmana.
    Přehled menu
  2. Vyberte jakýkoliv soubor DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG.
  3. Klepněte na tlačítko odeslat.
  4. Uložte výsledek Uložení odpovědi

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é