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:

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

  2. IntelliJ IDEA’da Azure Fonksiyon projesi oluşturun.
    Azure fonksiyon projesi oluştur
    Azure fonksiyon projesi oluştur-sonuç

  3. Araçlar->Azure->Oturum Aç ve OAuth 2.0 kimlik doğrulamasını seçin.
    Azure oturum aç

  4. Tarayıcıda oturum açın.

  5. Abonelik adını seçin.

  6. Docker desteği ekleyin.
    Azure oturum aç

  7. Dockerfile’ı Yapılandırma bölümündeki gibi DockerFile’ı düzenleyin.

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

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

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

  1. Docker Hub’a giriş yapın.
  2. 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:

  1. Konsolda dockerfile oluşturma komutu

    //örnek
    docker build -t <kullanıcı adı>/<depo adı> .
    
    docker build -t kullanıcı/asposefunction .

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

  3. IDE’de dockerfile çalıştırın ve ardından docker hub’a itme işlemi yapın.
    IDEde docker çalıştır

  4. Görüntü adını, Docker Hub deposundaki gibi girin.
    IDEde docker çalıştır-sonraki

  5. Sonlanmayı bekleyin.

Azure

  1. Azure’a giriş yapın.
  2. Azure hizmetlerini seçin.
  3. Fonksiyon Uygulaması seçin ve bir fonksiyon oluşturun.
    Azure fonksiyon oluştur butonu
  4. Aşağıdaki resimdeki gibi temel ayarları tekrarlayın.
    Azure fonksiyon oluşturma ayarları
  5. ‘Gözden Geçir + oluştur’ -> Oluştur düğmesine tıklayın.
  6. Dağıtımın tamamlanmasını bekleyin.
  7. ‘Kaynağa git’ düğmesine tıklayın.
    Kaynak butonu
  8. aspose-cad-docker-example fonksiyonunu durdurun.
    Konteyneri durdur
  9. Dağıtım merkezi menüsüne gidin ve gerekli ayarları yapın.
    Dağıtım merkezi
  10. Ayarları kaydedin.
  11. Dağıtım merkezi ayarlarından Webhook URL’sini kopyalayın.
    Webhook url
  12. Docker Hub’a gidin, deposunu seçin ve webhooks’u seçin.
  13. Azure’dan Webhook url’sini Docker Hub webhook url’sine yapıştırın ve adını belirleyin.
    Dockerdaki Webhook ayarları
  14. Oluştur düğmesine tıklayın.
  15. Genel bakış Azure fonksiyonuna dönün ve konteyneri başlatın.
    Genel bakış menüsü

Çalıştırma Örneği

  1. Postman ayarları.
    Genel bakış menüsü
  2. Herhangi bir DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG dosyasını seçin.
  3. Gönder düğmesine tıklayın.
  4. Sonucu kaydedin Yanıtı kaydet

Daha Fazla Örnek

Aspose.CAD’i Docker’da nasıl kullanabileceğinize dair daha fazla örnek için örnekler sayfasına bakın.

Ayrıca Bakınız