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:
Setelah Docker terpasang, pastikan bahwa ia menggunakan Kontainer Linux (default). Jika perlu, pilih opsi Beralih ke kontainer Linux dari menu Docker Desktops.
Buat proyek Fungsi Azure di IntelliJ IDEA.
Tools->Azure->Masuk dan pilih autentikasi OAuth 2.0.
Masuk di browser.
Pilih nama Langganan.
Tambahkan dukungan docker.
Edit DockerFile seperti di bagian Mengonfigurasi Dockerfile.
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>
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.
- 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
- Masuk ke Docker Hub
- 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:
Bangun perintah dockerfile di konsol
//contoh docker build -t <nama pengguna>/<nama repositori> . docker build -t pengguna/asposefunction .
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
Jalankan dockerfile di IDE dan setelah itu dorong ke docker hub.
Masukkan nama gambar, seperti di repositori Docker Hub.
Tunggu sampai selesai.
Azure
- Masuk ke Azure.
- Pilih layanan Azure.
- Pilih Fungsi App dan buat fungsi.
- Ulangi pengaturan dasar seperti pada gambar di bawah ini.
- Klik ‘Tinjau + buat’ -> Buat.
- Tunggu hingga pengiriman selesai.
- Klik tombol ‘Pergi ke sumber daya’.
- Hentikan fungsi aspose-cad-docker-example.
- Masuk ke menu pusat pengiriman dan buat pengaturan yang sesuai.
- Simpan pengaturan
- Salin URL Webhook dari pengaturan pusat pengiriman.
- Pergi ke Docker Hub, pilih repositori Anda dan pilih webhooks.
- Tempelkan ‘URL Webhook’ dari Azure di URL webhook Docker Hub dan atur namanya.
- Klik tombol buat.
- Kembali ke fungsi azure overview dan mulai kontainer.Mungkin diperlukan beberapa menit bagi fungsi untuk mulai.
Contoh Eksekusi
- Pengaturan Postman.
- Pilih file DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG.
- Klik tombol kirim.
- Simpan hasil
Lebih Banyak Contoh
Untuk lebih banyak contoh tentang cara Anda dapat menggunakan Aspose.CAD di Docker, lihat contoh.