Azure Fonksiyonunda Aspose.CAD Docker Görüntüsünü Çalıştırma
Gereksinimler
- Sisteminizde Docker kurulu olmalıdır. Windows veya Mac’te Docker’ın nasıl kurulacağı hakkında bilgi için “Ayrıca Bakınız” bölümündeki bağlantılara bakın.
- IntelliJ IDEA.
- IntelliJ için Azure Araç Takımı.
- Postman.
Azure Fonksiyonu
Bu örnekte, bir CAD dosyasını dönüştüren ve bir görüntü olarak kaydeden basit bir dönüşüm fonksiyonu oluşturuyorsunuz. Uygulama daha sonra Docker’da inşa edilebilir ve Azure Fonksiyonu’nda çalıştırılabilir.
Azure Fonksiyonunu Oluşturma
Azure Fonksiyon programını oluşturmak için aşağıdaki adımları izleyin:
Docker kurulduktan sonra, Linux Konteynerleri kullandığından emin olun (varsayılan). Gerekirse, Docker Masaüstü menüsünden Linux konteynerlerine geçiş seçeneğini seçin.
IntelliJ IDEA’da Azure Fonksiyon projesi oluşturun.
Araçlar->Azure->Oturum Aç ve OAuth 2.0 kimlik doğrulamasını seçin.
Tarayıcıda oturum açın.
Abonelik adını seçin.
Docker desteği ekleyin.
Dockerfile’ı Yapılandırma bölümündeki gibi DockerFile’ı düzenleyin.
pom.xml dosyasına aspose.cad için depo blokları ekleyin.
<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>
Gerekli tüm bağımlılıklar eklendikten sonra, bir elips oluşturan ve bunu bir görüntü olarak kaydeden basit bir program yazın:
public class HttpTriggerFunction { /** * Bu işlev "/api/HttpExample" uç noktasında dinler. "curl" komutu ile iki şekilde çağrılabilir: * 1. curl -d "HTTP Gövdesi" {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 tetikleyici bir isteği işledi."); 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(); } } }
Dockerfile’ı Yapılandırma
Bir sonraki adım, ana proje klasöründe Dockerfile’ı oluşturmak ve yapılandırmaktır.
- Dockerfile’da şunları belirtin:
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"]
Yukarıdaki, aşağıdaki talimatları içeren basit bir Dockerfile’dır:
- Kullanılacak SDK görüntüsü. Docker, yapı çalıştırıldığında bunu indirecektir. SDK’nın sürümü bir etiket olarak belirtilmiştir.
- Bir sonraki satırda belirtilen çalışma dizini.
- Her şeyi konteynıra kopyalama, uygulamayı yayınlama ve giriş noktasını belirleme komutu.
Docker Hub
- Docker Hub’a giriş yapın.
- Kamu Deposu oluşturun.
Uygulamayı Docker’da Oluşturma ve Çalıştırma
Şimdi uygulama Docker’da inşa edilebilir ve çalıştırılabilir. Tercih ettiğiniz komut istemcisini açın, uygulamanın bulunduğu klasöre gidin (çözüm dosyasının ve Dockerfile’ın bulunduğu klasör) ve aşağıdaki komutu çalıştırın:
Konsolda dockerfile oluşturma komutu
//örnek docker build -t <kullanıcı adı>/<depo adı> . docker build -t kullanıcı/asposefunction .
Bu komutu ilk çalıştırdığınızda, gerekli görüntüleri indirmek için Docker’ın daha uzun süre alabileceğini unutmayın. Önceki komut tamamlandıktan sonra, Docker hub’a görüntüyü yüklemek için aşağıdaki komutu çalıştırın.
//örnek docker push <kullanıcı adı>/<depo adı>:tagname docker push kullanıcı/aspose-cad-java:latest
IDE’de dockerfile çalıştırın ve ardından docker hub’a itme işlemi yapın.
Görüntü adını, Docker Hub deposundaki gibi girin.
Sonlanmayı bekleyin.
Azure
- Azure’a giriş yapın.
- Azure hizmetlerini seçin.
- Fonksiyon Uygulaması seçin ve bir fonksiyon oluşturun.
- Aşağıdaki resimdeki gibi temel ayarları tekrarlayın.
- ‘Gözden Geçir + oluştur’ -> Oluştur düğmesine tıklayın.
- Dağıtımın tamamlanmasını bekleyin.
- ‘Kaynağa git’ düğmesine tıklayın.
- aspose-cad-docker-example fonksiyonunu durdurun.
- Dağıtım merkezi menüsüne gidin ve gerekli ayarları yapın.
- Ayarları kaydedin.
- Dağıtım merkezi ayarlarından Webhook URL’sini kopyalayın.
- Docker Hub’a gidin, deposunu seçin ve webhooks’u seçin.
- Azure’dan Webhook url’sini Docker Hub webhook url’sine yapıştırın ve adını belirleyin.
- Oluştur düğmesine tıklayın.
- Genel bakış Azure fonksiyonuna dönün ve konteyneri başlatın.Fonksiyonun başlaması birkaç dakika sürebilir.
Çalıştırma Örneği
- Postman ayarları.
- Herhangi bir DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG dosyasını seçin.
- Gönder düğmesine tıklayın.
- Sonucu kaydedin
Daha Fazla Örnek
Aspose.CAD’i Docker’da nasıl kullanabileceğinize dair daha fazla örnek için örnekler sayfasına bakın.