# IronPDF'i Uzaktan Konteyner Olarak Çalıştırma
IronPdfEngine, PDF'leri oluşturma, yazma, düzenleme ve okuma işlemlerini gerçekleştirebilen bağımsız bir hizmettir. IronPDF Docker, uyumlu IronPDF sürümleriyle (v2023.2.x ve üstü) docker hizmetlerini çalıştırmaya hazırdır. Bu, geliştiricilerin IronPDF ile karşılaştıkları dağıtım sorunlarını ortadan kaldırmalarına yardımcı olacaktır.
## IronPDF'in kendi konteyneri olarak çalıştırılmasının iyi bir fikir olmasının nedeni
IronPDF, çalıştırmak için hem Chrome hem de Pdfium ikili dosyalarına ihtiyaç duyar ve bunlar dosya boyutu açısından büyüktür (yüzlerce MB). Ayrıca makineye birkaç bağımlılığın kurulmasını gerektirir.
Bu yöntemi kullanarak, müşteriniz boyutun sadece bir kısmını kaplayacaktır (MB olarak).
### Dağıtım Sorunlarını Önleyin
Çevreyi/konteyneri tüm bağımlılıkları düzgün bir şekilde içerecek şekilde yapılandırmak zorlu olabilir. IronPDF Docker konteynerini kullanmak, IronPDF'in önceden yüklenmiş ve çalışacağı garanti edilen bir şekilde gelmesi anlamına gelir, böylece tüm dağıtım ve bağımlılık sorunlarından kaçınır.
## Sürümler
IronPDF Docker etiketi, IronPdfEngine'in kendi versiyonuna dayanır. Bu, IronPDF ürününün aynı versiyonu değildir.
Her IronPDF sürümü, kendi ilişkili IronPdfEngine sürümüne sahip olacaktır. Sürüm numarası **mutlaka** IronPDF Docker versiyonu ile eşleşmelidir.
Örneğin, `IronPDF for Java` sürümü `2023.2.1`, IronPdfEngine sürümünü `2023.2.1` gerektirir. Uyumsuz IronPdfEngine ve IronPDF sürümlerini **kullanamazsınız**.
<hr />
## IronPDF Docker nasıl kullanılır
### IronPDF Kurulumu
Projenize IronPdf.Slim NuGet paketini ekleyin.
[https://www.nuget.org/packages/IronPdf.Slim/](https://www.nuget.org/packages/IronPdf.Slim/)
**Not: `IronPdf`, `IronPdf.Linux` ve `IronPdf.MacOs` paketlerinin tümü IronPdf.Slim içerir.**
Uygulamanızın boyutunu azaltmak için sadece IronPdf.Slim'i yüklemenizi tavsiye ederiz. `IronPdf.Native.Chrome.xxx` paketi artık kullanılmıyor, bu yüzden projenizden kaldırabilirsiniz.
### Gerekli Konteyner Sürümünü Belirleme
Varsayılan olarak, Docker için IronPDF sürümü, NuGet üzerindeki mevcut IronPDF sürümü ile eşleşecektir. Versiyonu manuel olarak kontrol etmek için aşağıdaki kodu kullanabilirsiniz:
```csharp
string ironPdfEngineVersion = IronPdf.Installation.IronPdfEngineVersion;
```
### Docker Konteyner için IronPDF'i Kurma
#### Docker Compose Olmadan
Önceki adımda belirtilen sürümü kullanarak docker konteynerini çalıştırın.
* Docker kurulmuş olmalıdır.
**Kurulum**
1. [https://hub.docker.com/r/ironsoftwareofficial/ironpdfengine](https://hub.docker.com/r/ironsoftwareofficial/ironpdfengine) adresine gidin
2. En son ironsoftwareofficial/ironpdfengine görüntüsünü çekin
```shell
docker pull ironsoftwareofficial/ironpdfengine
```
Veya belirli bir sürümü çekin (önerilir)
```shell
docker pull ironsoftwareofficial/ironpdfengine:2025.3.6
```
3. ironsoftwareofficial/ironpdfengine konteynerini çalıştırın.
Bu komut bir konteyner oluşturacak ve arka planda 33350 numaralı portla çalıştıracaktır
```shell
docker run -d -p 33350:33350 -e IRONPDF_ENGINE_LICENSE_KEY=MY_LICENSE_KEY ironsoftwareofficial/ironpdfengine:2025.3.6
```
### IronPdfEngine Çalışma Zamanı Parametreleri Nasıl Yapılandırılır?
Çalışma zamanı parametreleri, görüntü adından sonra doğrudan `key=value` çiftleri olarak konteynıra aktarılabilir. Bunlar, motor davranışını yeniden yapılandırmaya gerek kalmadan yapılandırır.
```shell
docker run -d -p 33350:33350 ironsoftwareofficial/ironpdfengine:2025.3.6 \
license_key="YOUR_LICENSE_KEY" \
enable_debug=true \
chrome_browser_limit=8
```
Aşağıdaki parametreler kullanılabilir:
| Parametre | Tür | Default | Açıklama |
|-----------|------|---------|-------------|
| `port` | int | `33350` | gRPC dinleme portu |
| `license_key` | string | - | IronPDF lisans anahtarı |
| `enable_debug` | bool | `false` | Tam hata ayıklama günlüğünü etkinleştir |
| `log_path` | path | - | Günlük dosyası yolu (tam hata ayıklama günlüğünü de etkinleştirir) |
| `logging_mode` | string | `Console` | Günlük modu: Yok, Konsol, Özel, Hata Çıkışı Penceresi, Dosya, Tümü |
| `chrome_browser_limit` | int | - | Maksimum eşzamanlı Chrome tarayıcı örnekleri |
| `chrome_cache_path` | path | - | Chrome tarayıcı önbelleği dizini |
| `chrome_gpu_mode` | int | `0` | GPU modu: 0 Devre Dışı, 1 Donanım, 2 DonanımTam, 3 Yazılım |
| `chrome_custom_deployment_dir` | path | - | Chrome dağıtım ikili dosyaları için özel dizin |
| `temp_folder_path` | path | - | Geçici dizini geçersiz kıl |
| `skip_shutdown` | bool | `false` | Motorun boşta iken kapanmasını engelle |
| `skip_initialization` | bool | `false` | Başlangıçta Chrome/Pdfium başlatmayı atla |
| `keep_alive` | bool | `false` | Müşteri bağlantısı kesildikten sonra motoru çalışır halde tut |
| `single_process` | bool | - | Chrome'u tek süreçli modda çalıştır |
| `linux_and_docker_auto_config` | bool | `true` | Linux/Docker bağımlılıklarını otomatik yapılandır (Docker giriş noktası tarafından otomatik olarak ayarlanır) |
| `send_anonymous_analytics_and_crash_data` | bool | - | Anonim telemetriyi etkinleştir veya devre dışı bırak |
[[i:(`linux_and_docker_auto_config` parametresi, Docker giriş noktası tarafından otomatik olarak true olarak ayarlanır. Manuel olarak geçirmenize gerek yok. `chrome_gpu_mode`, ana bilgisayarınız GPU geçişini sağlamadığı sürece Docker'da 0 (Devre Dışı) olarak kalmalıdır.)]]
`IRONPDF_ENGINE_LICENSE_KEY` ortam değişkeni, lisans anahtarını `-e` veya `environment:` üzerinden Docker Compose ile ayarlamak için de kullanılabilir. Komut satırı parametreleri, her ikisi de ayarlandığında ortam değişkenlerine öncelik verir.
**Üretim örneği:**
```shell
docker run -d --restart=unless-stopped \
-p 33350:33350 \
-e IRONPDF_ENGINE_LICENSE_KEY=MY_KEY \
ironsoftwareofficial/ironpdfengine \
chrome_browser_limit=8 skip_shutdown=true
```
**Hata ayıklama örneği:**
```shell
docker run -p 33350:33350 \
ironsoftwareofficial/ironpdfengine \
enable_debug=true log_path=/app/logs/engine.log
```
#### Docker Compose ile
Anahtar, IronPdfEngine ve uygulamanızın birbirini görebileceği bir Docker ağı kurmaktır. 'depends_on'u ayarlayın, böylece IronPdfEngine uygulamanız başlamadan önce yükselecektir.
**Kurulum**
1. `docker-compose.yml` dosyası oluşturarak başlayın. Docker Compose dosyanızı aşağıdaki şablonu kullanarak kurun:
```yml
version: '3.6'
services:
myironpdfengine:
container_name: ironpdfengine
image: ironsoftwareofficial/ironpdfengine:latest
ports:
- '33350:33350'
networks:
- ironpdf-network
myconsoleapp:
container_name: myconsoleapp
build:
# enter YOUR project directory path here
context: ./MyConsoleApp/
# enter YOUR dockerfile name here, relative to project directory
dockerfile: Dockerfile
networks:
- ironpdf-network
depends_on:
myironpdfengine:
condition: service_started
networks:
ironpdf-network:
driver: 'bridge'
```
1. Uygulamanızda (myconsoleapp) IronPdfEngine adresini 'myironpdfengine:33350' olarak ayarlayın
2. docker compose çalıştırın
```shell
docker compose up --detach --force-recreate --remove-orphans --timestamps
```
### IronPdfEngine'e Bağlanma
IronPDF kodunuzu çalıştırın; uygulamanız artık Docker'daki IronPdfEngine ile iletişim kuruyor!
```csharp
using IronPdf;
using IronPdf.GrpcLayer;
// Configure for Docker container
var config = IronPdfConnectionConfiguration.Docker;
config.Host = "localhost";
IronPdf.Installation.ConnectToIronPdfHost(config);
// Use IronPDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF Docker!<h1>");
pdf.SaveAs("ironpdf.pdf");
```
<hr />
### Bağlantı Türü
Bağlantı türüne bağlı olarak atayabileceğiniz birkaç `IronPdfConnectionType` vardır.
İşte mevcut özelliklerin bir listesi:
**LocalExecutable**: Yerel makinenizde bir uygulama çalıştıran bir IronPdfEngine "sunucusu" ile bağlantı kurmak için bu seçeneği kullanırız. Çabuk bir örnek, bulut hizmetleri olmadan yerel olarak PDF üreten bir WinForm faturalama uygulaması olabilir.
**Docker**: Docker konteynerine ya yerel olarak ya da bulutta bağlanmaya çalışırken bu seçenek kullanılmalıdır.
**Uzaktan Sunucu**: Buluttaki IronPdfEngine için bu seçenek kullanılır. Bu, HTTP veya HTTPS protokolü aracılığıyla bulut barındırmalı (örneğin, Docker) IronPdfEngine örneğine bağlanır. Dikkat edin ki, bu uzak bir sunucuya bağlanma olduğundan, tam URL gereklidir (HTTP veya HTTPS protokolü dahil).
**Özel**: Bağlantı üzerinde tam kontrol ve özelleştirme için bu seçeneği kullanabilirsiniz. Bu seçenek, yukarıdaki diğer tanımlı seçenekler yerine sizin özel tanımlanmış **Grpc.Core.ChannelBase** ile kullanılır. Geliştiriciler, yeni bir **Grpc.Core.Channel** obje yaratarak veya **`Grpc.Net.Client.GrpcChannel.ForAddress(System.String)`** kullanarak yeni bir kanal oluşturabilir ve gRPC kanalı üzerinde özel ve eksiksiz bir kontrol sağlayabilir.
#### .NET Framework ile NetFrameworkChannel
.NET Framework için, çünkü gRPC .NET Framework projelerinde farklı çalışır, farklı bir kurulum gereklidir.
Bu yöntemin çalışması için, [**Grpc.Core**](https://www.nuget.org/packages/grpc.core) NuGet paketinin yüklendiğinden emin olun. Bu özel kurulum için **Grpc.Core.ChannelBase**'den türetilmiş bir özel gRPC kanalı kullanacağız.
IronPDFEngine kullanarak bir PDF oluşturmak ve kaydetmek için bağlantı kanalını nasıl uygulayacağımızı bu örnekte ele alalım.
[[t:(gRPC, .NET Framework projesinde farklı çalıştığından, aşağıdaki kod çalışmıyorsa adresin `<http>` veya `<https>` ön ekini kaldırmayı deneyin.)]]
[[w:(Unutmayın, bu durumda `pdf.Dispose` gereklidir.)]]
```csharp
using IronPdf;
// This code demonstrates how to use IronPdf with gRPC in a .NET Framework application.
// 1. Configure connection to use local IronPdfEngine executable
var config = IronPdf.GrpcLayer.IronPdfConnectionConfiguration.Executable;
// 2. Connect to the IronPDF host with the executable configuration
IronPdf.Installation.ConnectToIronPdfHost(config);
// 3. Create a PDF renderer instance
ChromePdfRenderer renderer = new ChromePdfRenderer();
// 4. Render HTML string as PDF document
PdfDocument pdf = renderer.RenderHtmlAsPdf("Hello world");
// 5. Save the PDF to disk
pdf.SaveAs("output.pdf");
// 6. Clean up , this is needed to work
pdf.Dispose();
```
#### WithCustomChannel ile Alternatif Yöntem
Alternatif bir yöntem, `IronPdf.GrpcLayer` tarafından sağlanan `WithCustomChannel` yöntemini kullanmak olacaktır.
`WithCustomChannel`, iki parametre alır, biri özelleştirilmiş gRPC kanalınız olan `customChannel`, diğeri `metadata`. `metadata` parametresi isteğe bağlıdır ve varsayılan olarak `null` olarak ayarlanmıştır.
```csharp
using IronPdf;
using IronPdf.GrpcLayer;
using Grpc.Core;
// 1. Create custom gRPC channel (.NET Framework style)
var channel = new Channel("123.456.7.8:80", ChannelCredentials.SecureSsl);
// 2. (Optional) Add metadata headers if needed
var metadata = new Metadata
{
{ "Authorization", "Bearer your_token_here" }
};
// 3. Configure IronPDF with custom channel
var config = IronPdfConnectionConfiguration.WithCustomChannel(channel, metadata);
IronPdf.Installation.ConnectToIronPdfHost(config);
// 4. Generate PDF
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("Hello world");
// 5. Save the PDF to disk
pdf.SaveAs("output.pdf");
// 6. Clean up , this is needed to work
pdf.Dispose();
```
<hr />
## IronPdfEngine AWS ECS üzerine dağıtma
### Ön Koşullar
* IronPdfEngine Docker imajını çekin. Bu, yukarıda [Docker Konteyner için IronPDF'i Kurma](#anchor-setup-ironpdf-for-docker-container) kısmında yer almaktadır.
* ECS'ye erişimi olan bir AWS hesabı.
### Ayarlar
1. Bir ECS Kümesi oluşturun. Bu kılavuzu takip ederek [konsol kullanarak Fargate ve Dış Başlatma türleri için bir küme oluşturun](https://docs.aws.amazon.com/AmazonECS/latest/userguide/create-cluster-console-v2.html).
2. Bir görev tanımı oluşturun. Konsolu kullanarak bir görev tanımı oluşturmaya yönelik rehber ['i takip edin](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-task-definition.html).
Önerilen ayarlar:
- **AWS Fargate**
- Minimum 1 vCPU ve 2 GB RAM önerilir. Gişe yükünüz ve ister PDF'lerle daha fazla sayfa içeren, ister ağır yük talepleri alan yorucu işler, daha yüksek bir sınıf seçin.
- **Ağ modu**: awsvpc
- **Port eşlemeleri**:
```json
{
"containerPort": 33350,
"hostPort": 33350,
"protocol": "tcp",
"appProtocol": "grpc"
}
```
- **Görüntü URI'si**: Bizden herhangi bir IronPdfEngine'e işaret edin. Örneğin, "ironsoftwareofficial/ironpdfengine:2024.1.20" (DockerHub üzerinden)
- **AWS İzin** & **Ağ** sizi kendi sorumluluğunuzda
- **Amazon CloudWatch'u Etkinleştir** önerilir. (Enable logging)
- **Konteyner başlatma sırası** aynı görev tanımında uygulama konteynerinizi dağıtmak istiyorsanız gereklidir.
3. Bir görev tanımı çalıştırın. Bir görev tanımını ya **Görev** ya da **Hizmet** olarak çalıştırabilirsiniz. Konsolu kullanarak bir hizmet oluşturmaya yönelik rehber ['ı takip edin](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-service-console-v2.html).
Önerilen ayarlar:
* Başlatma türü: **AWS Fargate**
* Genel IP: **Açık** test için ve **Kapatı** üretim için. Güvenlik ve AWS Ağlandırma kendi başınızı sorumluluğuna bırakılmıştır.
4. Keyfini çıkarın! IronPdfEngine docker AWS'nizde çalışıyor!
[[i:(IronPdfEngine Docker konteynırı, yatay ölçeklemeyi desteklemez; tek örnekli bir backend hizmeti olarak tasarlanmıştır. IronPDF kütüphanesini (IronPdfEngine ile birlikte veya onsuz) kullanan uygulamanız, birden fazla uygulama örneği dağıtarak yatay olarak ölçeklenebilir. Daha fazla ayrıntı için [IronPdfEngine Sınırlaması](/get-started/ironpdfengine/#anchor-ironpdfengine-limitation) bölümüne bakın.)]]
<hr />
## IronPdfEngine'i Azure Konteyner Örneği üzerinde dağıtma
### Ön Koşullar
* IronPdfEngine Docker imajını çekin. Bu, yukarıda [Docker Konteyner için IronPDF'i Kurma](#anchor-setup-ironpdf-for-docker-container) kısmında yer almaktadır.
* Azure Hesabı
### Ayarlar
1. Bir Azure Konteyner oluşturun. Azure portalını kullanarak Azure'da bir konteyner örneği dağıtmaya yönelik [kılavuzu takip edin](https://learn.microsoft.com/en-us/azure/container-instances/container-instances-quickstart-portal).
Önerilen ayarlar:
- **Görüntü kaynağı**: Diğer kayıt defteri
- **Resim**: **ironsoftwareofficial/ironpdfengine:2024.1.20** (Docker Hub üzerinden)
- **OS türü**: Linux
- **Boyut**: Minimum 1 vCPU ve 2 GiB bellek veya daha yüksek
- **Port**: TCP Port 33350
2. Keyfini çıkarın! IronPdfEngine docker Azure Konteyner Örneklerinizde çalışıyor!
[[i:(IronPdfEngine Docker konteynırı, yatay ölçeklemeyi desteklemez; tek örnekli bir backend hizmeti olarak tasarlanmıştır. IronPDF kütüphanesini (IronPdfEngine ile birlikte veya onsuz) kullanan uygulamanız, birden fazla uygulama örneği dağıtarak yatay olarak ölçeklenebilir. Daha fazla bilgi için [IronPdfEngine Sınırlaması](/get-started/ironpdfengine/#anchor-ironpdfengine-limitation) bölümüne bakın.)]]
<hr />
## IronPdfEngine'i AWS ECR Açık Galerisinde Edinme
### Ön Koşullar
* Docker kurulmuş olmalıdır.
### Ayarlar
1. [https://gallery.ecr.aws/v1m9w8y1/ironpdfengine](https://gallery.ecr.aws/v1m9w8y1/ironpdfengine) adresine gidin
2. v1m9w8y1/ironpdfengine görüntüsünü çekin
```shell
docker pull https://gallery.ecr.aws/v1m9w8y1/ironpdfengine
```
Veya belirli bir sürümü çekin (önerilir)
```shell
docker pull https://gallery.ecr.aws/v1m9w8y1/ironpdfengine:2023.12.6
```
3. ironpdfengine konteynerini çalıştırın.
Bu komut bir konteyner oluşturacak ve arka planda 33350 numaralı portla çalıştıracaktır
```shell
docker run -d -p 33350:33350 ironsoftwareofficial/ironpdfengine
```
IronPdfEngine'i kullanmak için IronPDF istemcisini nasıl yapılandıracağınızı öğrenmek için '[Kodu IronPdfEngine kullanacak şekilde güncelleyin](#anchor-update-the-code-to-use-ironpdfengine)' bölümüne gidin.
<hr />
## Pazardan IronPdfEngine Alın
Hızlı bir şekilde başlamanıza yardımcı olmak için IronPdfEngine'i hem Azure hem de AWS Marketplaces üzerine kurduk.
### Azure Marketplace
<div class="content-img-align-center">
<div class="center-image-wrapper">
<a href="https://azuremarketplace.microsoft.com/en-us/marketplace/apps/ironsoftwarecoltd1682560478296.ironpdf-docker-container-v1?tab=Overview"><img src="/static-assets/pdf/how-to/pull-run-ironpdfengine/azure-marketplace.webp" alt="Azure Marketplace" class="img-responsive add-shadow" /></a>
</div>
</div>
**Kurulum**
[Azure Marketplace'te IronPDF Docker Konteyneri](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/ironsoftwarecoltd1682560478296.ironpdf-docker-container-v1?tab=Overview) üzerine gidin. "Şimdi Al" ve "Devam Et" üzerine tıklayın.
"Temel Bilgiler", "Küme Detayları" ve "Uygulama Detayları" bölümlerini tamamlayarak Kubernetes hizmetini oluşturun.
Dağıtım tamamlandıktan sonra, sol kenar çubuğuna gidin ve Kubernetes kaynakları> Komut çalıştır'ı seçin. Aşağıdaki komutu çalıştırın:
```shell
kubectl get services
```
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/pdf/how-to/pull-run-ironpdfengine/azure-market-run-command.webp" alt="Kubernetes hizmeti - komut çalıştır" class="img-responsive add-shadow" />
</div>
</div>
EXTERNAL-IP ve PORT(S) bilgileriyle, IronPDFEngine bağlantısını uygun biçimde yapılandırabilirsiniz.
```csharp
using IronPdf;
using IronPdf.GrpcLayer;
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
IronPdfConnectionConfiguration configuration = new IronPdfConnectionConfiguration();
configuration.ConnectionType = IronPdfConnectionType.RemoteServer;
configuration.Host = "http://48.216.143.233";
configuration.Port = 80;
IronPdf.Installation.ConnectToIronPdfHost(configuration);
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");
pdf.SaveAs("output.pdf");
```
### AWS Marketplace
<div class="content-img-align-center">
<div class="center-image-wrapper">
<a href="https://aws.amazon.com/marketplace/pp/prodview-t66wmni5ri7ve?sr=0-1&ref_=beagle&applicationId=AWSMPContessa"><img src="/static-assets/pdf/how-to/pull-run-ironpdfengine/aws-marketplace.webp" alt="aws marketplace" class="img-responsive add-shadow" /></a>
</div>
</div>
**Önkoşullar**
* Docker kurulmuş olmalıdır.
* AWS CLI kurulmuş ve giriş yapılmış olmalıdır.
**Kurulum**
[AWS marketplace'te IronPdfEngine üzerinde](https://aws.amazon.com/marketplace/pp/prodview-t66wmni5ri7ve?sr=0-1&ref_=beagle&applicationId=AWSMPContessa) gidin. 'Devam Etmek İçin Üye Ol' üzerine tıklayın.
3. Şartları kabul edin.
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/pdf/how-to/pull-run-ironpdfengine/accept-EULA.webp" alt="EULA kabul et" class="img-responsive add-shadow" />
</div>
</div>
4. Yapılandırmaya Devam Edin.
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/pdf/how-to/pull-run-ironpdfengine/subscribe-complete.webp" alt="Üyelik tamamlandı" class="img-responsive add-shadow" />
</div>
</div>
5. ironpdfengine görüntüsünü çekin. Bu adım, ironpdfengine imajını çekmek için komut gösterecek.
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/pdf/how-to/pull-run-ironpdfengine/launch-this-software.webp" alt="Bu yazılımı başlat" class="img-responsive add-shadow" />
</div>
</div>
Örneğin:
```shell
aws ecr get-login-password \
--region us-east-1 | docker login \
--username AWS \
--password-stdin 000000000000.dkr.ecr.us-east-1.amazonaws.com
CONTAINER_IMAGES="000000000000.dkr.ecr.us-east-1.amazonaws.com/iron-software/ironpdfengine:2024.1.15"
for i in $(echo $CONTAINER_IMAGES | sed "s/,/ /g"); do docker pull $i; done
```
ironpdfengine konteynerini çalıştırın. Bu komut bir konteyner oluşturacak ve arka planda 33350 portuyla çalıştıracaktır.
```shell
docker run -d -p 33350:33350 000000000000.dkr.ecr.us-east-1.amazonaws.com/iron-software/ironpdfengine:2024.1.15
```
## IronPdfEngine Sağlık Kontrolü
Docker Konteynerinizin sağlığını kontrol etmek, üretim ortamında güvenilirlik ve bulunabilirliği sağlamak için kritik öneme sahiptir. IronPdfEngine Docker konteynerini kontrol etme yeteneği, hizmetin arıza durumda yeniden başlatılmasına olanak tanır ve talep arttığında kaynakları ölçekte tutmakla birlikte sürekli bir uygulamayı izlemeyi sağlamakta olur.
IronPdfEngine'in sağlığını kontrol etmek için, aynı IronPdfEngine portuna (varsayılan olarak, 33350 olur) bir gRPC isteği göndererek bir yanıt alıp almadığımızı doğrulayabiliriz.
### gRPC ile Sağlık Kontrolü
IronPdfEngine, standart gRPC sağlık kontrolü modeline uyar ve aşağıdaki protokol yapısını kullanır.
```protobuf
message HealthCheckRequest {
string service = 1; // Name of the service to check (e.g., "IronPdfEngine")
}
```
IronPdfEngine'i kontrol ettiğimiz için hizmet adını `IronPdfEngine` ile değiştiriyoruz.
33350 varsayılan numarası ile yerel IronPdfEngine hizmetine bir gRPC isteği göndermek için JavaScript kullanarak [Postman](https://www.postman.com) ile bir örnek.
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/pdf/how-to/Ironpdfengine-docker/servicestatus.webp" alt="Durum" class="img-responsive add-shadow" />
</div>
</div>
Yanıttan görebileceğiniz gibi, durum yanıtı `SERVING`, hizmetin aktif ve çalışır durumda olduğunu gösteriyor. Konteynır sağlıklı değilse, durum yanıtı `NOT_SERVING` olacaktır.
### Kubernetes Kurulumu ile Sağlık Kontrolü
Kubernetes kurulumları için, hizmetin sağlıklı olup olmadığını kontrol etmek için aşağıdakileri kullanabiliriz.
```yaml
livenessProbe:
exec:
command:
- /bin/grpc_health_probe
- -addr=:33350
- -rpc-timeout=5s
```
IronPdfEngine, PDF'leri oluşturma, yazma, düzenleme ve okuma işlemlerini gerçekleştirebilen bağımsız bir hizmettir. IronPDF Docker, uyumlu IronPDF sürümleriyle (v2023.2.x ve üstü) docker hizmetlerini çalıştırmaya hazırdır. Bu, geliştiricilerin IronPDF ile karşılaştıkları dağıtım sorunlarını ortadan kaldırmalarına yardımcı olacaktır.
IronPDF'in kendi konteyneri olarak çalıştırılmasının iyi bir fikir olmasının nedeni
IronPDF, çalıştırmak için hem Chrome hem de Pdfium ikili dosyalarına ihtiyaç duyar ve bunlar dosya boyutu açısından büyüktür (yüzlerce MB). Ayrıca makineye birkaç bağımlılığın kurulmasını gerektirir.
Bu yöntemi kullanarak, müşteriniz boyutun sadece bir kısmını kaplayacaktır (MB olarak).
Dağıtım Sorunlarını Önleyin
Çevreyi/konteyneri tüm bağımlılıkları düzgün bir şekilde içerecek şekilde yapılandırmak zorlu olabilir. IronPDF Docker konteynerini kullanmak, IronPDF'in önceden yüklenmiş ve çalışacağı garanti edilen bir şekilde gelmesi anlamına gelir, böylece tüm dağıtım ve bağımlılık sorunlarından kaçınır.
Sürümler
IronPDF Docker etiketi, IronPdfEngine'in kendi versiyonuna dayanır. Bu, IronPDF ürününün aynı versiyonu değildir.
Her IronPDF sürümü, kendi ilişkili IronPdfEngine sürümüne sahip olacaktır. Sürüm numarası mutlaka IronPDF Docker versiyonu ile eşleşmelidir.
Örneğin, IronPDF for Java sürümü 2023.2.1, IronPdfEngine sürümünü 2023.2.1 gerektirir. Uyumsuz IronPdfEngine ve IronPDF sürümlerini kullanamazsınız.
Not: IronPdf, IronPdf.Linux ve IronPdf.MacOs paketlerinin tümü IronPdf.Slim içerir.
Uygulamanızın boyutunu azaltmak için sadece IronPdf.Slim'i yüklemenizi tavsiye ederiz. IronPdf.Native.Chrome.xxx paketi artık kullanılmıyor, bu yüzden projenizden kaldırabilirsiniz.
Gerekli Konteyner Sürümünü Belirleme
Varsayılan olarak, Docker için IronPDF sürümü, NuGet üzerindeki mevcut IronPDF sürümü ile eşleşecektir. Versiyonu manuel olarak kontrol etmek için aşağıdaki kodu kullanabilirsiniz:
Bu komut bir konteyner oluşturacak ve arka planda 33350 numaralı portla çalıştıracaktır
docker run -d -p 33350:33350 -e IRONPDF_ENGINE_LICENSE_KEY=MY_LICENSE_KEY ironsoftwareofficial/ironpdfengine:2025.3.6
docker run -d -p 33350:33350 -e IRONPDF_ENGINE_LICENSE_KEY=MY_LICENSE_KEY ironsoftwareofficial/ironpdfengine:2025.3.6
SHELL
IronPdfEngine Çalışma Zamanı Parametreleri Nasıl Yapılandırılır?
Çalışma zamanı parametreleri, görüntü adından sonra doğrudan key=value çiftleri olarak konteynıra aktarılabilir. Bunlar, motor davranışını yeniden yapılandırmaya gerek kalmadan yapılandırır.
Müşteri bağlantısı kesildikten sonra motoru çalışır halde tut
single_process
bool
-
Chrome'u tek süreçli modda çalıştır
linux_and_docker_auto_config
bool
true
Linux/Docker bağımlılıklarını otomatik yapılandır (Docker giriş noktası tarafından otomatik olarak ayarlanır)
send_anonymous_analytics_and_crash_data
bool
-
Anonim telemetriyi etkinleştir veya devre dışı bırak
Lütfen dikkate alın: linux_and_docker_auto_config parametresi, Docker giriş noktası tarafından otomatik olarak true olarak ayarlanır. Manuel olarak geçirmenize gerek yok. chrome_gpu_mode, ana bilgisayarınız GPU geçişini sağlamadığı sürece Docker'da 0 (Devre Dışı) olarak kalmalıdır.
IRONPDF_ENGINE_LICENSE_KEY ortam değişkeni, lisans anahtarını -e veya environment: üzerinden Docker Compose ile ayarlamak için de kullanılabilir. Komut satırı parametreleri, her ikisi de ayarlandığında ortam değişkenlerine öncelik verir.
docker run -p 33350:33350 \ ironsoftwareofficial/ironpdfengine \ enable_debug=true log_path=/app/logs/engine.log
docker run -p 33350:33350 \
ironsoftwareofficial/ironpdfengine \
enable_debug=true log_path=/app/logs/engine.log
SHELL
Docker Compose ile
Anahtar, IronPdfEngine ve uygulamanızın birbirini görebileceği bir Docker ağı kurmaktır. 'depends_on'u ayarlayın, böylece IronPdfEngine uygulamanız başlamadan önce yükselecektir.
Kurulum
docker-compose.yml dosyası oluşturarak başlayın. Docker Compose dosyanızı aşağıdaki şablonu kullanarak kurun:
version: '3.6'services: myironpdfengine: container_name: ironpdfengine image: ironsoftwareofficial/ironpdfengine:latest ports: - '33350:33350' networks: - ironpdf-network myconsoleapp: container_name: myconsoleapp build: # enter YOUR project directory path here context: ./MyConsoleApp/ # enter YOUR dockerfile name here, relative to project directory dockerfile: Dockerfile networks: - ironpdf-network depends_on: myironpdfengine: condition: service_startednetworks: ironpdf-network: driver: 'bridge'
version: '3.6'
services:
myironpdfengine:
container_name: ironpdfengine
image: ironsoftwareofficial/ironpdfengine:latest
ports:
- '33350:33350'
networks:
- ironpdf-network
myconsoleapp:
container_name: myconsoleapp
build:
# enter YOUR project directory path here
context: ./MyConsoleApp/
# enter YOUR dockerfile name here, relative to project directory
dockerfile: Dockerfile
networks:
- ironpdf-network
depends_on:
myironpdfengine:
condition: service_started
networks:
ironpdf-network:
driver: 'bridge'
Text
Uygulamanızda (myconsoleapp) IronPdfEngine adresini 'myironpdfengine:33350' olarak ayarlayın
docker compose çalıştırın
docker compose up --detach --force-recreate --remove-orphans --timestamps
docker compose up --detach --force-recreate --remove-orphans --timestamps
SHELL
IronPdfEngine'e Bağlanma
IronPDF kodunuzu çalıştırın; uygulamanız artık Docker'daki IronPdfEngine ile iletişim kuruyor!
using IronPdf;using IronPdf.GrpcLayer;// Configure for Docker containervar config = IronPdfConnectionConfiguration.Docker;config.Host = "localhost";IronPdf.Installation.ConnectToIronPdfHost(config);// Use IronPDFChromePdfRenderer renderer = new ChromePdfRenderer();PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF Docker!<h1>");pdf.SaveAs("ironpdf.pdf");
using IronPdf;
using IronPdf.GrpcLayer;
// Configure for Docker container
var config = IronPdfConnectionConfiguration.Docker;
config.Host = "localhost";
IronPdf.Installation.ConnectToIronPdfHost(config);
// Use IronPDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF Docker!<h1>");
pdf.SaveAs("ironpdf.pdf");
ImportsIronPdfImportsIronPdf.GrpcLayer' Configure for Docker containerPrivate config = IronPdfConnectionConfiguration.Dockerconfig.Host = "localhost"IronPdf.Installation.ConnectToIronPdfHost(config)' Use IronPDFDim renderer As New ChromePdfRenderer()Dim pdf AsPdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF Docker!<h1>")pdf.SaveAs("ironpdf.pdf")
Imports IronPdf
Imports IronPdf.GrpcLayer
' Configure for Docker container
Private config = IronPdfConnectionConfiguration.Docker
config.Host = "localhost"
IronPdf.Installation.ConnectToIronPdfHost(config)
' Use IronPDF
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF Docker!<h1>")
pdf.SaveAs("ironpdf.pdf")
Bağlantı Türü
Bağlantı türüne bağlı olarak atayabileceğiniz birkaç IronPdfConnectionType vardır.
İşte mevcut özelliklerin bir listesi:
LocalExecutable: Yerel makinenizde bir uygulama çalıştıran bir IronPdfEngine "sunucusu" ile bağlantı kurmak için bu seçeneği kullanırız. Çabuk bir örnek, bulut hizmetleri olmadan yerel olarak PDF üreten bir WinForm faturalama uygulaması olabilir.
Docker: Docker konteynerine ya yerel olarak ya da bulutta bağlanmaya çalışırken bu seçenek kullanılmalıdır.
Uzaktan Sunucu: Buluttaki IronPdfEngine için bu seçenek kullanılır. Bu, HTTP veya HTTPS protokolü aracılığıyla bulut barındırmalı (örneğin, Docker) IronPdfEngine örneğine bağlanır. Dikkat edin ki, bu uzak bir sunucuya bağlanma olduğundan, tam URL gereklidir (HTTP veya HTTPS protokolü dahil).
Özel: Bağlantı üzerinde tam kontrol ve özelleştirme için bu seçeneği kullanabilirsiniz. Bu seçenek, yukarıdaki diğer tanımlı seçenekler yerine sizin özel tanımlanmış Grpc.Core.ChannelBase ile kullanılır. Geliştiriciler, yeni bir Grpc.Core.Channel obje yaratarak veya Grpc.Net.Client.GrpcChannel.ForAddress(System.String) kullanarak yeni bir kanal oluşturabilir ve gRPC kanalı üzerinde özel ve eksiksiz bir kontrol sağlayabilir.
.NET Framework ile NetFrameworkChannel
.NET Framework için, çünkü gRPC .NET Framework projelerinde farklı çalışır, farklı bir kurulum gereklidir.
Bu yöntemin çalışması için, Grpc.Core NuGet paketinin yüklendiğinden emin olun. Bu özel kurulum için Grpc.Core.ChannelBase'den türetilmiş bir özel gRPC kanalı kullanacağız.
IronPDFEngine kullanarak bir PDF oluşturmak ve kaydetmek için bağlantı kanalını nasıl uygulayacağımızı bu örnekte ele alalım.
İpuçları: gRPC, .NET Framework projesinde farklı çalıştığından, aşağıdaki kod çalışmıyorsa adresin <http> veya <https> ön ekini kaldırmayı deneyin.
Uyarı: Unutmayın, bu durumda pdf.Dispose gereklidir.
using IronPdf;// This code demonstrates how to use IronPdf with gRPC in a .NET Framework application.// 1. Configure connection to use local IronPdfEngine executablevar config = IronPdf.GrpcLayer.IronPdfConnectionConfiguration.Executable;// 2. Connect to the IronPDF host with the executable configurationIronPdf.Installation.ConnectToIronPdfHost(config);// 3. Create a PDF renderer instanceChromePdfRenderer renderer = new ChromePdfRenderer();// 4. Render HTML string as PDF documentPdfDocument pdf = renderer.RenderHtmlAsPdf("Hello world");// 5. Save the PDF to diskpdf.SaveAs("output.pdf");// 6. Clean up , this is needed to workpdf.Dispose();
using IronPdf;
// This code demonstrates how to use IronPdf with gRPC in a .NET Framework application.
// 1. Configure connection to use local IronPdfEngine executable
var config = IronPdf.GrpcLayer.IronPdfConnectionConfiguration.Executable;
// 2. Connect to the IronPDF host with the executable configuration
IronPdf.Installation.ConnectToIronPdfHost(config);
// 3. Create a PDF renderer instance
ChromePdfRenderer renderer = new ChromePdfRenderer();
// 4. Render HTML string as PDF document
PdfDocument pdf = renderer.RenderHtmlAsPdf("Hello world");
// 5. Save the PDF to disk
pdf.SaveAs("output.pdf");
// 6. Clean up , this is needed to work
pdf.Dispose();
ImportsIronPdf' This code demonstrates how to use IronPdf with gRPC in a .NET Framework application.' 1. Configure connection to use local IronPdfEngine executableDim config = IronPdf.GrpcLayer.IronPdfConnectionConfiguration.Executable' 2. Connect to the IronPDF host with the executable configurationIronPdf.Installation.ConnectToIronPdfHost(config)' 3. Create a PDF renderer instanceDim renderer As New ChromePdfRenderer()' 4. Render HTML string as PDF documentDim pdf AsPdfDocument = renderer.RenderHtmlAsPdf("Hello world")' 5. Save the PDF to diskpdf.SaveAs("output.pdf")' 6. Clean up, this is needed to workpdf.Dispose()
Imports IronPdf
' This code demonstrates how to use IronPdf with gRPC in a .NET Framework application.
' 1. Configure connection to use local IronPdfEngine executable
Dim config = IronPdf.GrpcLayer.IronPdfConnectionConfiguration.Executable
' 2. Connect to the IronPDF host with the executable configuration
IronPdf.Installation.ConnectToIronPdfHost(config)
' 3. Create a PDF renderer instance
Dim renderer As New ChromePdfRenderer()
' 4. Render HTML string as PDF document
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("Hello world")
' 5. Save the PDF to disk
pdf.SaveAs("output.pdf")
' 6. Clean up, this is needed to work
pdf.Dispose()
WithCustomChannel ile Alternatif Yöntem
Alternatif bir yöntem, IronPdf.GrpcLayer tarafından sağlanan WithCustomChannel yöntemini kullanmak olacaktır.
WithCustomChannel, iki parametre alır, biri özelleştirilmiş gRPC kanalınız olan customChannel, diğeri metadata. metadata parametresi isteğe bağlıdır ve varsayılan olarak null olarak ayarlanmıştır.
using IronPdf;using IronPdf.GrpcLayer;using Grpc.Core;// 1. Create custom gRPC channel (.NET Framework style)var channel = new Channel("123.456.7.8:80", ChannelCredentials.SecureSsl);// 2. (Optional) Add metadata headers if neededvar metadata = new Metadata{ { "Authorization", "Bearer your_token_here" }};// 3. Configure IronPDF with custom channelvar config = IronPdfConnectionConfiguration.WithCustomChannel(channel, metadata);IronPdf.Installation.ConnectToIronPdfHost(config);// 4. Generate PDFvar renderer = new ChromePdfRenderer();PdfDocument pdf = renderer.RenderHtmlAsPdf("Hello world");// 5. Save the PDF to diskpdf.SaveAs("output.pdf");// 6. Clean up , this is needed to workpdf.Dispose();
using IronPdf;
using IronPdf.GrpcLayer;
using Grpc.Core;
// 1. Create custom gRPC channel (.NET Framework style)
var channel = new Channel("123.456.7.8:80", ChannelCredentials.SecureSsl);
// 2. (Optional) Add metadata headers if needed
var metadata = new Metadata
{
{ "Authorization", "Bearer your_token_here" }
};
// 3. Configure IronPDF with custom channel
var config = IronPdfConnectionConfiguration.WithCustomChannel(channel, metadata);
IronPdf.Installation.ConnectToIronPdfHost(config);
// 4. Generate PDF
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("Hello world");
// 5. Save the PDF to disk
pdf.SaveAs("output.pdf");
// 6. Clean up , this is needed to work
pdf.Dispose();
ImportsIronPdfImportsIronPdf.GrpcLayerImportsGrpc.Core' 1. Create custom gRPC channel (.NET Framework style)Dim channel As New Channel("123.456.7.8:80", ChannelCredentials.SecureSsl)' 2. (Optional) Add metadata headers if neededDim metadata As New MetadataFrom { {"Authorization", "Bearer your_token_here"}}' 3. Configure IronPDF with custom channelDim config AsIronPdfConnectionConfiguration = IronPdfConnectionConfiguration.WithCustomChannel(channel, metadata)IronPdf.Installation.ConnectToIronPdfHost(config)' 4. Generate PDFDim renderer As New ChromePdfRenderer()Dim pdf AsPdfDocument = renderer.RenderHtmlAsPdf("Hello world")' 5. Save the PDF to diskpdf.SaveAs("output.pdf")' 6. Clean up, this is needed to workpdf.Dispose()
Imports IronPdf
Imports IronPdf.GrpcLayer
Imports Grpc.Core
' 1. Create custom gRPC channel (.NET Framework style)
Dim channel As New Channel("123.456.7.8:80", ChannelCredentials.SecureSsl)
' 2. (Optional) Add metadata headers if needed
Dim metadata As New Metadata From {
{"Authorization", "Bearer your_token_here"}
}
' 3. Configure IronPDF with custom channel
Dim config As IronPdfConnectionConfiguration = IronPdfConnectionConfiguration.WithCustomChannel(channel, metadata)
IronPdf.Installation.ConnectToIronPdfHost(config)
' 4. Generate PDF
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("Hello world")
' 5. Save the PDF to disk
pdf.SaveAs("output.pdf")
' 6. Clean up, this is needed to work
pdf.Dispose()
Bir görev tanımı oluşturun. Konsolu kullanarak bir görev tanımı oluşturmaya yönelik rehber 'i takip edin.
Önerilen ayarlar:
AWS Fargate
Minimum 1 vCPU ve 2 GB RAM önerilir. Gişe yükünüz ve ister PDF'lerle daha fazla sayfa içeren, ister ağır yük talepleri alan yorucu işler, daha yüksek bir sınıf seçin.
Konteyner başlatma sırası aynı görev tanımında uygulama konteynerinizi dağıtmak istiyorsanız gereklidir.
Bir görev tanımı çalıştırın. Bir görev tanımını ya Görev ya da Hizmet olarak çalıştırabilirsiniz. Konsolu kullanarak bir hizmet oluşturmaya yönelik rehber 'ı takip edin.
Önerilen ayarlar:
Başlatma türü: AWS Fargate
Genel IP: Açık test için ve Kapatı üretim için. Güvenlik ve AWS Ağlandırma kendi başınızı sorumluluğuna bırakılmıştır.
Lütfen dikkate alın: IronPdfEngine Docker konteynırı, yatay ölçeklemeyi desteklemez; tek örnekli bir backend hizmeti olarak tasarlanmıştır. IronPDF kütüphanesini (IronPdfEngine ile birlikte veya onsuz) kullanan uygulamanız, birden fazla uygulama örneği dağıtarak yatay olarak ölçeklenebilir. Daha fazla ayrıntı için IronPdfEngine Sınırlaması bölümüne bakın.
IronPdfEngine'i Azure Konteyner Örneği üzerinde dağıtma
Lütfen dikkate alın: IronPdfEngine Docker konteynırı, yatay ölçeklemeyi desteklemez; tek örnekli bir backend hizmeti olarak tasarlanmıştır. IronPDF kütüphanesini (IronPdfEngine ile birlikte veya onsuz) kullanan uygulamanız, birden fazla uygulama örneği dağıtarak yatay olarak ölçeklenebilir. Daha fazla bilgi için IronPdfEngine Sınırlaması bölümüne bakın.
Hızlı bir şekilde başlamanıza yardımcı olmak için IronPdfEngine'i hem Azure hem de AWS Marketplaces üzerine kurduk.
Azure Marketplace
Kurulum
Azure Marketplace'te IronPDF Docker Konteyneri üzerine gidin. "Şimdi Al" ve "Devam Et" üzerine tıklayın.
"Temel Bilgiler", "Küme Detayları" ve "Uygulama Detayları" bölümlerini tamamlayarak Kubernetes hizmetini oluşturun.
Dağıtım tamamlandıktan sonra, sol kenar çubuğuna gidin ve Kubernetes kaynakları> Komut çalıştır'ı seçin. Aşağıdaki komutu çalıştırın:
kubectl get services
kubectl get services
SHELL
EXTERNAL-IP ve PORT(S) bilgileriyle, IronPDFEngine bağlantısını uygun biçimde yapılandırabilirsiniz.
using IronPdf;using IronPdf.GrpcLayer;IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";IronPdfConnectionConfiguration configuration = new IronPdfConnectionConfiguration();configuration.ConnectionType = IronPdfConnectionType.RemoteServer;configuration.Host = "http://48.216.143.233";configuration.Port = 80;IronPdf.Installation.ConnectToIronPdfHost(configuration);ChromePdfRenderer renderer = new ChromePdfRenderer();PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");pdf.SaveAs("output.pdf");
using IronPdf;
using IronPdf.GrpcLayer;
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
IronPdfConnectionConfiguration configuration = new IronPdfConnectionConfiguration();
configuration.ConnectionType = IronPdfConnectionType.RemoteServer;
configuration.Host = "http://48.216.143.233";
configuration.Port = 80;
IronPdf.Installation.ConnectToIronPdfHost(configuration);
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");
pdf.SaveAs("output.pdf");
ImportsIronPdfImportsIronPdf.GrpcLayerIronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"Dim configuration As New IronPdfConnectionConfiguration()configuration.ConnectionType = IronPdfConnectionType.RemoteServerconfiguration.Host = "http://48.216.143.233"configuration.Port = 80IronPdf.Installation.ConnectToIronPdfHost(configuration)Dim renderer As New ChromePdfRenderer()Dim pdf AsPdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")pdf.SaveAs("output.pdf")
Imports IronPdf
Imports IronPdf.GrpcLayer
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
Dim configuration As New IronPdfConnectionConfiguration()
configuration.ConnectionType = IronPdfConnectionType.RemoteServer
configuration.Host = "http://48.216.143.233"
configuration.Port = 80
IronPdf.Installation.ConnectToIronPdfHost(configuration)
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")
pdf.SaveAs("output.pdf")
ironpdfengine görüntüsünü çekin. Bu adım, ironpdfengine imajını çekmek için komut gösterecek.
Örneğin:
aws ecr get-login-password \ --region us-east-1 | docker login \ --username AWS \ --password-stdin 000000000000.dkr.ecr.us-east-1.amazonaws.comCONTAINER_IMAGES="000000000000.dkr.ecr.us-east-1.amazonaws.com/iron-software/ironpdfengine:2024.1.15" for i in $(echo $CONTAINER_IMAGES | sed "s/,/ /g"); do docker pull $i; done
aws ecr get-login-password \
--region us-east-1 | docker login \
--username AWS \
--password-stdin 000000000000.dkr.ecr.us-east-1.amazonaws.com
CONTAINER_IMAGES="000000000000.dkr.ecr.us-east-1.amazonaws.com/iron-software/ironpdfengine:2024.1.15"
for i in $(echo $CONTAINER_IMAGES | sed "s/,/ /g"); do docker pull $i; done
SHELL
ironpdfengine konteynerini çalıştırın. Bu komut bir konteyner oluşturacak ve arka planda 33350 portuyla çalıştıracaktır.
docker run -d -p 33350:33350 000000000000.dkr.ecr.us-east-1.amazonaws.com/iron-software/ironpdfengine:2024.1.15
docker run -d -p 33350:33350 000000000000.dkr.ecr.us-east-1.amazonaws.com/iron-software/ironpdfengine:2024.1.15
SHELL
IronPdfEngine Sağlık Kontrolü
Docker Konteynerinizin sağlığını kontrol etmek, üretim ortamında güvenilirlik ve bulunabilirliği sağlamak için kritik öneme sahiptir. IronPdfEngine Docker konteynerini kontrol etme yeteneği, hizmetin arıza durumda yeniden başlatılmasına olanak tanır ve talep arttığında kaynakları ölçekte tutmakla birlikte sürekli bir uygulamayı izlemeyi sağlamakta olur.
IronPdfEngine'in sağlığını kontrol etmek için, aynı IronPdfEngine portuna (varsayılan olarak, 33350 olur) bir gRPC isteği göndererek bir yanıt alıp almadığımızı doğrulayabiliriz.
gRPC ile Sağlık Kontrolü
IronPdfEngine, standart gRPC sağlık kontrolü modeline uyar ve aşağıdaki protokol yapısını kullanır.
message HealthCheckRequest { string service = 1; // Name of the service to check (e.g., "IronPdfEngine")}
message HealthCheckRequest {
string service = 1; // Name of the service to check (e.g., "IronPdfEngine")
}
Text
IronPdfEngine'i kontrol ettiğimiz için hizmet adını IronPdfEngine ile değiştiriyoruz.
33350 varsayılan numarası ile yerel IronPdfEngine hizmetine bir gRPC isteği göndermek için JavaScript kullanarak Postman ile bir örnek.
Yanıttan görebileceğiniz gibi, durum yanıtı SERVING, hizmetin aktif ve çalışır durumda olduğunu gösteriyor. Konteynır sağlıklı değilse, durum yanıtı NOT_SERVING olacaktır.
Kubernetes Kurulumu ile Sağlık Kontrolü
Kubernetes kurulumları için, hizmetin sağlıklı olup olmadığını kontrol etmek için aşağıdakileri kullanabiliriz.
Docker kullanarak C# ile HTML'i PDF'ye nasıl dönüştürebilirim?
IronPDF'in Docker kurulumu ile HTML'i C# içinde PDF'ye dönüştürebilirsiniz. bir Docker konteynerinde IronPdfEngine'i dağıtın ve RenderHtmlAsPdf gibi yöntemleri kullanarak bunu başarın.
IronPdfEngine'i Docker'da kullanmak, bağımlılık sorunlarını azaltan ve Chrome ile Pdfium ikili dosyaları gibi tüm gerekli bileşenlerin hazır bulunduğu önceden yüklenmiş ve güvenilir bir ortam sunar.
Docker Compose ile IronPdfEngine nasıl kurulum yapılır?
Bir docker-compose.yml dosyası oluşturun ve hizmetler ile ağları tanımlayın. depends_on direktifini kullanarak IronPdfEngine'in uygulamanızdan önce başlamasını sağlayın.
AWS ECS üzerinde IronPdfEngine'i dağıtmak için hangi adımlar gereklidir?
AWS ECS üzerinde dağıtım yapmak için, bir ECS Kümesi oluşturun, bir görev tanımı yapın ve kaynak tahsisi için AWS Fargate kullanın. Ardından IronPdfEngine'i başlatmak için görevinizi veya hizmetinizi çalıştırın.
AWS ECR Genel Galerisinden IronPdfEngine'i nasıl çekebilirim?
AWS ECR Genel Galerisine erişin, IronPdfEngine görüntüsünü bulun ve kontenjanı çekmek ve çalıştırmak için sağlanan komutları takip edin.
IronPdfEngine'i Azure Marketplace üzerinden kullanmak mümkün mü?
Evet, IronPdfEngine Azure Marketplace üzerinde mevcuttur. Docker konteynerini dağıtmak için Marketplace sayfasındaki kurulum talimatlarını takip edebilirsiniz.
IronPdfEngine kullanırken nelere dikkat etmeliyim?
IronPdfEngine Docker konteyneri, tek örnekli bir arka uç hizmeti olarak tasarlandığından yatay ölçeklendirmeyi desteklemez. Ancak, IronPDF kütüphanesini (IronPdfEngine ile veya IronPdfEngine olmadan) kullanan uygulamalar, birden fazla uygulama örneği dağıtarak yine de yatay olarak ölçeklenebilir. Dağıtımınızı bu ayrımı göz önünde bulundurarak planlayın.
Docker ile PDF oluşturma ve manipülasyon görevlerini verimli bir şekilde nasıl yönetebilirim?
IronPdfEngine'i bir Docker konteynerinde dağıtarak PDF oluşturma ve manipülasyon görevlerini etkili bir şekilde yönetin, bağımlılıkları ele almak ve tutarlı bir ortam sağlamak için Docker'ın yeteneklerinden yararlanın.
Azure Konteyner Örneklerine IronPdfEngine'i dağıtmak için gereklilikler nelerdir?
Azure Konteyner Örneklerine dağıtım yapmak için bir Azure hesabına sahip olduğunuzdan emin olun ve dağıtım için IronPdfEngine Docker görüntüsünü çekin.
Are there specific logging configurations available for IronPdfEngine?
Yes, IronPdfEngine supports various logging configurations, including console, file, and custom modes. This flexibility helps in monitoring and debugging, allowing developers to choose the best method for their needs.
Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.