Jak uruchomić i wdrożyć IronPDF .NET w Azure Function
Tak. IronPDF może być używany do generowania, manipulacji i odczytywania dokumentów PDF w Azure. IronPDF został gruntownie przetestowany na wielu platformach Azure, w tym na stronach internetowych MVC, Azure Functions i wielu innych.
Jak przekonwertować HTML na PDF w Azure Function
- Zainstaluj bibliotekę C# do konwersji HTML na PDF w Azure Function
- Wybierz poziom hostingu Azure Basic B1 lub wyższy
- Odznaczyć opcję
Uruchom z pliku pakietupodczas publikowania - Postępuj zgodnie z zalecanymi instrukcjami konfiguracji
- Skorzystaj z przykładowego kodu, aby utworzyć generator plików PDF przy użyciu platformy Azure
Poradnik "Jak to zrobić"
Zainstaluj pakiet IronPDF
Aplikacje Azure Function mają trzy odrębne środowiska: Linux, Windows i Container. Ten artykul wyjasnia, jak skonfigurowac IronPDF we wszystkich trzech srodowiskach. Spośród nich, kontener Azure Function App jest rekomendowany, ponieważ zapewnia izolowane środowisko. Aby rozpocząć, wybierzmy odpowiedni pakiet do zainstalowania.
Azure Function App Container
Azure Function App Container wymaga minimalnego wysilku, co czyni go zalecanym sposobem wdrozenia IronPDF.
Install-Package IronPdf.Linux
Skonfiguruj plik Docker
Skonfiguruj plik Docker zgodnie z używaną dystrybucją Linux. Proszę zapoznać się z tym artykułem dla szczegółowych instrukcji.
Aplikacja Azure Function (Windows)
Aby uzyc standardowego pakietu IronPDF, upewnij się, że opcja Run from package file nie jest zaznaczona. Wlaczenie tej opcji powoduje wdrozenie projektu jako plik ZIP, co koliduje z konfiguracja plikow IronPDF. Jeśli wolisz włączyć opcję Run from package file, zainstaluj zamiast tego pakiet IronPdf.Slim.
- pakiet IronPDF
Install-Package IronPdf
Aplikacja funkcji Azure (Linux)
W przypadku Azure Function App (Linux), projekt jest domyślnie wdrażany jako plik ZIP i tego zachowania nie można wyłączyć. Jest to podobne do włączenia opcji Run from package file w Azure Function App (Windows).
Install-Package IronPdf.Slim
Wybierz odpowiednie opcje Azure
Wybór odpowiedniego poziomu hostingowego
Azure Basic B1 jest minimalnym poziomem hostingu wymaganym do potrzeb renderingu naszych użytkowników końcowych. Jeśli tworzysz system o dużej przepustowości, może wymagać aktualizacji.
Konfiguracja dla .NET 6
Microsoft niedawno usunął biblioteki obrazówania z .NET 6+, co spowodowało problemy z wieloma starszymi interfejsami API. W związku z tym konieczne jest skonfigurowanie projektu, aby nadal umożliwiał te wywołania interfejsu API.
- W systemie Linux ustaw
Installation.LinuxAndDockerDependenciesAutoConfig=true;, aby upewnić się, żelibgdiplusjest zainstalowany na komputerze - Dodaj poniższe do pliku .csproj dla projektu .NET 6:
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
- Utwórz w swoim projekcie plik o nazwie
runtimeconfig.template.jsoni wprowadź do niego następujące treści:
{
"configProperties": {
"System.Drawing.EnableUnixSupport": true
}
}
- Na koniec dodaj poniższą linię na początku programu:
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);
System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", True)
Przykład kodu Azure Function
Ten przykład konwertuje HTML na PDF i automatycznie wysyła wpisy dziennika do wbudowanego rejestratora Azure (zobacz ILogger log).
[FunctionName("PrintPdf")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log, ExecutionContext context)
{
log.LogInformation("Entered PrintPdf API function...");
// Apply license key
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
// Enable logging
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.Custom;
IronPdf.Logging.Logger.CustomLogger = log;
// Configure IronPdf settings
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
IronPdf.Installation.AutomaticallyDownloadNativeBinaries = true;
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
IronPdf.Installation.CustomDeploymentDirectory = "/tmp";
try
{
log.LogInformation("About to render PDF...");
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render PDF from a URL
var pdf = renderer.RenderUrlAsPdf("https://www.google.com/");
log.LogInformation("Finished rendering PDF...");
return new FileContentResult(pdf.BinaryData, "application/pdf") { FileDownloadName = "google.pdf" };
}
catch (Exception e)
{
log.LogError(e, "Error while rendering PDF");
return new OkObjectResult($"Error while rendering PDF: {e}");
}
}
[FunctionName("PrintPdf")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log, ExecutionContext context)
{
log.LogInformation("Entered PrintPdf API function...");
// Apply license key
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
// Enable logging
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.Custom;
IronPdf.Logging.Logger.CustomLogger = log;
// Configure IronPdf settings
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
IronPdf.Installation.AutomaticallyDownloadNativeBinaries = true;
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
IronPdf.Installation.CustomDeploymentDirectory = "/tmp";
try
{
log.LogInformation("About to render PDF...");
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render PDF from a URL
var pdf = renderer.RenderUrlAsPdf("https://www.google.com/");
log.LogInformation("Finished rendering PDF...");
return new FileContentResult(pdf.BinaryData, "application/pdf") { FileDownloadName = "google.pdf" };
}
catch (Exception e)
{
log.LogError(e, "Error while rendering PDF");
return new OkObjectResult($"Error while rendering PDF: {e}");
}
}
<FunctionName("PrintPdf")>
Public Shared Async Function Run(<HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route := Nothing)> ByVal req As HttpRequest, ByVal log As ILogger, ByVal context As ExecutionContext) As Task(Of IActionResult)
log.LogInformation("Entered PrintPdf API function...")
' Apply license key
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
' Enable logging
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.Custom
IronPdf.Logging.Logger.CustomLogger = log
' Configure IronPdf settings
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = True
IronPdf.Installation.AutomaticallyDownloadNativeBinaries = True
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
IronPdf.Installation.CustomDeploymentDirectory = "/tmp"
Try
log.LogInformation("About to render PDF...")
Dim renderer As New ChromePdfRenderer()
' Render PDF from a URL
Dim pdf = renderer.RenderUrlAsPdf("https://www.google.com/")
log.LogInformation("Finished rendering PDF...")
Return New FileContentResult(pdf.BinaryData, "application/pdf") With {.FileDownloadName = "google.pdf"}
Catch e As Exception
log.LogError(e, "Error while rendering PDF")
Return New OkObjectResult($"Error while rendering PDF: {e}")
End Try
End Function
Utworzenie projektu za pomocą szablonu Azure Function w Visual Studio może skutkować nieznacznie innym kodem. Z powodu tych różnic, nawet z tym samym zainstalowanym pakietem, jeden projekt może działać, podczas gdy inny nie. Jeśli tak się stanie, proszę ustawić właściwość CustomDeploymentDirectory na "/tmp".
Zrozumienie każdej konfiguracji instalacji
- LinuxAndDockerDependenciesAutoConfig: To ustawienie sprawdza i próbuje pobrać wszystkie niezbędne zależności dla silnika Chrome. Jest wymagane przy używaniu systemów bez GUI, takich jak Linux. W systemach kontenerowych, zależności są zazwyczaj wymienione w pliku Dockerfile; dlatego można ustawić to na false.
- AutomaticallyDownloadNativeBinaries: Ta opcja pobiera natywną bibliotekę Chrome w trakcie działania. Jest wymagana przy używaniu pakietu IronPdf.Slim.
- CustomDeploymentDirectory: To ustawienie jest wymagane dla systemów z ograniczonym dostępem do zapisu.
Znane problemy
Renderowanie czcionek SVG nie jest dostępne w planach hostingu wspólnionego
Jednym z ograniczeń, na które napotkaliśmy, jest to, że platforma hostingowa Azure nie wspiera serwerów ładujących czcionki SVG, takie jak Google Fonts, w ich tańszych wspólnionych planach aplikacji internetowych. Dzieje się tak, ponieważ te wspólne platformy hostingowe nie mają dostępu do obiektów graficznych Windows GDI+ ze względów bezpieczeństwa.
Zalecamy używanie Windows lub Linux Docker Container lub może VPS na Azure, aby obejść ten problem, gdy wymagana jest najlepsza jakość renderowania czcionek.
Hosting w ramach darmowego tieru Azure jest wolny
Darmowe i współdzielone poziomy Azure oraz plan zużycia nie są odpowiednie do renderowania PDF. Zalecamy hosting Azure B1/plan Premium, którego sami używamy. Proces HTML to PDF stanowi znaczne "obciążenie" dla każdego komputera — podobne do otwierania i renderowania strony internetowej na własnym komputerze. Wykorzystywany jest prawdziwy silnik przeglądarki, dlatego musimy odpowiednio się przygotować i spodziewać się czasu renderowania podobnego do tego na komputerze stacjonarnym o podobnej mocy.
Tworzenie zgłoszenia wsparcia inżynieryjnego
Aby utworzyć zgłoszenie, zapoznaj się z przewodnikiem 'Jak złożyć zgłoszenie wsparcia inżynieryjnego dla IronPDF'
Często Zadawane Pytania
Jak mogę hostować bibliotekę do generowania plików PDF w Azure?
Bibliotekę do generowania plików PDF, taką jak IronPDF, można hostować na platformie Azure, konfigurując funkcję Azure Function lub witrynę internetową MVC. Należy upewnić się, że zainstalowano niezbędne pakiety z NuGet i skonfigurować środowisko zgodnie z wymaganiami biblioteki.
Które środowiska Azure są kompatybilne z biblioteką PDF?
IronPDF jest kompatybilny z wieloma środowiskami Azure, w tym ze stronami internetowymi MVC i Azure Functions. Został zaprojektowany tak, aby płynnie działać na różnych platformach oferowanych przez Azure.
Jakie są wymagania dotyczące hostingu biblioteki PDF w Azure?
Aby uzyskać optymalną wydajność podczas korzystania z IronPDF na platformie Azure, zaleca się korzystanie z co najmniej poziomu hostingu Azure Basic B1. Zapewnia to wystarczające zasoby do wydajnego renderowania plików PDF.
Jak skonfigurować bibliotekę PDF dla aplikacji Azure Function App w systemie Linux?
Aby skonfigurować IronPDF dla aplikacji Azure Function App w systemie Linux, zainstaluj pakiet IronPdf.Slim. Wdróż projekt jako plik ZIP i upewnij się, że wszystkie konfiguracje są prawidłowo ustawione dla środowiska Linux.
Jakie konfiguracje są wymagane dla .NET 6 podczas korzystania z biblioteki PDF w Azure?
Korzystając z IronPDF z .NET 6 na platformie Azure, zaktualizuj ustawienia projektu, aby zezwolić na wywołania starszych interfejsów API. Ustaw Installation.LinuxAndDockerDependenciesAutoConfig=true i dołącz niezbędne konfiguracje do plików projektu.
Dłączego do renderowania plików PDF w Azure zaleca się użycie kontenera Docker?
Do renderowania plików PDF w Azure zaleca się użycie kontenera Docker, ponieważ zapewnia on bardziej kontrolowane środowisko, obsługuje lepsze renderowanie czcionek i pozwala uniknąć ograniczeń związanych z planami hostingu współdzielonego.
Co może powodować powolne renderowanie plików PDF w ramach bezpłatnego pakietu Azure?
Renderowanie plików PDF w ramach bezpłatnego pakietu Azure Free Tier przebiega wolno ze względu na ograniczone zasoby obliczeniowe. Proces ten wymaga znacznej mocy obliczeniowej, podobnie jak renderowanie strony internetowej, dlatego bardziej odpowiednie są plany wyższych poziomów, takie jak B1 lub Premium.
Jak mogę rozwiązać problem z niedziałającym projektem Azure Function z biblioteką PDF?
Jeśli projekt Azure Function z IronPDF nie działa, sprawdź, czy właściwość CustomDeploymentDirectory jest ustawiona na „/tmp”, oraz upewnij się, że wszystkie niezbędne pakiety i konfiguracje są poprawnie zainstalowane i ustawione.
Jakie opcje wsparcia są dostępne przy wdrażaniu biblioteki PDF w Azure?
Aby uzyskać pomoc w zakresie wdrażania IronPDF na platformie Azure, zapoznaj się z przewodnikiem „Jak złożyć zgłoszenie do pomocy technicznej dotyczące IronPDF” na stronie internetowej IronPDF, gdzie znajdziesz szczegółowe informacje.

