Cara Menjalankan Gambar Docker Aspose.CAD di Fungsi Azure

Prasyarat

  • Docker harus terpasang di sistem Anda. Untuk informasi tentang cara menginstal Docker di Windows atau Mac, lihat tautan di bagian “Lihat Juga”.
  • IntelliJ IDEA.
  • Azure Toolkit untuk IntelliJ.
  • Postman.

Fungsi Azure

Dalam contoh ini, Anda membuat fungsi konversi sederhana yang mengonversi file CAD dan menyimpannya sebagai gambar. Aplikasi kemudian dapat dibangun di Docker dan dijalankan di Fungsi Azure.

Membuat Fungsi Azure

Untuk membuat program Fungsi Azure, ikuti langkah-langkah di bawah ini:

  1. Setelah Docker terpasang, pastikan bahwa ia menggunakan Kontainer Linux (default). Jika perlu, pilih opsi Beralih ke kontainer Linux dari menu Docker Desktops.

  2. Buat proyek Fungsi Azure di IntelliJ IDEA.
    Buat proyek fungsi azure
    Buat proyek fungsi azure-final

  3. Tools->Azure->Masuk dan pilih autentikasi OAuth 2.0.
    Masuk Azure

  4. Masuk di browser.

  5. Pilih nama Langganan.

  6. Tambahkan dukungan docker.
    Masuk Azure

  7. Edit DockerFile seperti di bagian Mengonfigurasi Dockerfile.

  8. Tambahkan blok untuk repositori aspose.cad di 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. Ketika semua dependensi yang diperlukan ditambahkan, tulis program sederhana yang membuat sebuah elips dan menyimpannya sebagai gambar:

    public class HttpTriggerFunction {
        /**
         * Fungsi ini mendengarkan di endpoint "/api/HttpExample". Dua cara untuk memanggilnya menggunakan perintah "curl" di bash:
         * 1. curl -d "HTTP Body" {host Anda}/api/HttpExample
         * 2. curl "{host Anda}/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("Pemicu HTTP Java memproses permintaan.");
    
            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();
            }
        }
    }

Mengonfigurasi Dockerfile

Langkah selanjutnya adalah membuat dan mengonfigurasi Dockerfile di folder proyek root.

  1. Di Dockerfile, tentukan:
    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"]

Di atas adalah Dockerfile sederhana, yang berisi instruksi berikut:

  • Gambar SDK yang akan digunakan. Docker akan mengunduhnya saat build dijalankan. Versi SDK ditentukan sebagai tag.
  • Direktori kerja, yang ditentukan di baris berikutnya.
  • Perintah untuk menyalin semuanya ke kontainer, menerbitkan aplikasi, dan menentukan titik masuk.

Docker Hub

  1. Masuk ke Docker Hub
  2. Buat Repositori Publik

Membangun dan Menjalankan Aplikasi di Docker

Sekarang aplikasi dapat dibangun dan dijalankan di Docker. Buka command prompt favorit Anda, ganti direktori ke folder dengan aplikasi (folder tempat file solusi dan Dockerfile ditempatkan) dan jalankan perintah berikut:

  1. Bangun perintah dockerfile di konsol

    //contoh
    docker build -t <nama pengguna>/<nama repositori> .
    
    docker build -t pengguna/asposefunction .

  2. Saat pertama kali Anda menjalankan perintah ini, mungkin akan memakan waktu lebih lama karena Docker perlu mengunduh gambar yang diperlukan. Setelah perintah sebelumnya selesai, jalankan perintah berikut untuk mendorong gambar ke docker hub.

    //contoh
    docker push <nama pengguna>/<nama repositori>:tagname
    
    docker push pengguna/aspose-cad-java:latest

  3. Jalankan dockerfile di IDE dan setelah itu dorong ke docker hub.
    Jalankan docker di ide

  4. Masukkan nama gambar, seperti di repositori Docker Hub.
    Jalankan docker di ide-next

  5. Tunggu sampai selesai.

Azure

  1. Masuk ke Azure.
  2. Pilih layanan Azure.
  3. Pilih Fungsi App dan buat fungsi.
    Tombol buat fungsi Azure
  4. Ulangi pengaturan dasar seperti pada gambar di bawah ini.
    Pengaturan buat fungsi Azure
  5. Klik ‘Tinjau + buat’ -> Buat.
  6. Tunggu hingga pengiriman selesai.
  7. Klik tombol ‘Pergi ke sumber daya’.
    Tombol sumber daya
  8. Hentikan fungsi aspose-cad-docker-example.
    Hentikan kontainer
  9. Masuk ke menu pusat pengiriman dan buat pengaturan yang sesuai.
    Pusat pengiriman
  10. Simpan pengaturan
  11. Salin URL Webhook dari pengaturan pusat pengiriman.
    URL Webhook
  12. Pergi ke Docker Hub, pilih repositori Anda dan pilih webhooks.
  13. Tempelkan ‘URL Webhook’ dari Azure di URL webhook Docker Hub dan atur namanya.
    Pengaturan webhook di docker
  14. Klik tombol buat.
  15. Kembali ke fungsi azure overview dan mulai kontainer.
    Menu overview

Contoh Eksekusi

  1. Pengaturan Postman.
    Menu overview
  2. Pilih file DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG.
  3. Klik tombol kirim.
  4. Simpan hasil Simpan respons

Lebih Banyak Contoh

Untuk lebih banyak contoh tentang cara Anda dapat menggunakan Aspose.CAD di Docker, lihat contoh.

Lihat Juga