Azure Function에서 Java용 IronPDF 실행하는 방법
- Java용 IronPDF Docker 배포만 지원합니다.
- IronPDF 런타임에 바이너리 실행이 필요하므로 ZIP 배포는 지원되지 않습니다.
- 사용자 지정 이미지를 사용하여 Linux에서 함수를 만드는 방법에 대한 Microsoft 공식 가이드를 따르십시오.
Choose a programming language의 경우 ->Java선택- 앱이 정상적으로 실행될 때까지 안내를 따르세요.
-
IronPDF 종속성을 추가합니다.
- 최신
<version>를 pom에 추가하십시오:
<dependencies> <dependency> <groupId>com.ironsoftware</groupId> <artifactId>ironpdf</artifactId> <version>2022.xx.x</version> </dependency> <dependency> <groupId>com.ironsoftware</groupId> <artifactId>ironpdf-engine-linux-x64</artifactId> <version>2022.xx.x</version> </dependency> </dependencies><dependencies> <dependency> <groupId>com.ironsoftware</groupId> <artifactId>ironpdf</artifactId> <version>2022.xx.x</version> </dependency> <dependency> <groupId>com.ironsoftware</groupId> <artifactId>ironpdf-engine-linux-x64</artifactId> <version>2022.xx.x</version> </dependency> </dependencies>XML- 참고: IronPDF를 Docker에서 실행하려면
ironpdf-engine-linux-x64이 필수입니다.
- 최신
-
RenderPdf함수를 추가합니다Function.java에 새 함수를 추가합니다- 이 함수는 URL을 입력받아 렌더링된 PDF를 반환합니다.
import com.microsoft.azure.functions.*; import com.ironsoftware.ironpdf.PdfDocument; import java.util.Optional; public class Function { /** * Azure function to render a URL as a PDF and return it. * Triggered by an HTTP request with a URL query string parameter. */ @FunctionName("RenderPdf") public HttpResponseMessage renderPdf( @HttpTrigger( name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage<Optional<String>> request, final ExecutionContext context) { context.getLogger().info("Java HTTP trigger processed a request. (RenderPdf)"); // Parse query parameter for the URL final String url = request.getQueryParameters().get("url"); // Check if the URL parameter is provided if (url == null) { return request.createResponseBuilder(HttpStatus.BAD_REQUEST) .body("Please pass a url on the query string") .build(); } else { try { context.getLogger().info("IronPDF is attempting to render the URL: " + url); // Render the given URL as a PDF PdfDocument pdfDocument = PdfDocument.renderUrlAsPdf(url); // Convert the PDF document to binary data byte[] content = pdfDocument.getBinaryData(); // Return the PDF as an attachment in the response return request.createResponseBuilder(HttpStatus.OK) .body(content) .header("Content-Disposition", "attachment; filename=ironpdf_result.pdf") .build(); } catch (Exception e) { context.getLogger().severe("Failed to render PDF: " + e.getMessage()); return request.createResponseBuilder(HttpStatus.INTERNAL_SERVER_ERROR) .body("An error occurred while rendering the PDF.") .build(); } } } }import com.microsoft.azure.functions.*; import com.ironsoftware.ironpdf.PdfDocument; import java.util.Optional; public class Function { /** * Azure function to render a URL as a PDF and return it. * Triggered by an HTTP request with a URL query string parameter. */ @FunctionName("RenderPdf") public HttpResponseMessage renderPdf( @HttpTrigger( name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage<Optional<String>> request, final ExecutionContext context) { context.getLogger().info("Java HTTP trigger processed a request. (RenderPdf)"); // Parse query parameter for the URL final String url = request.getQueryParameters().get("url"); // Check if the URL parameter is provided if (url == null) { return request.createResponseBuilder(HttpStatus.BAD_REQUEST) .body("Please pass a url on the query string") .build(); } else { try { context.getLogger().info("IronPDF is attempting to render the URL: " + url); // Render the given URL as a PDF PdfDocument pdfDocument = PdfDocument.renderUrlAsPdf(url); // Convert the PDF document to binary data byte[] content = pdfDocument.getBinaryData(); // Return the PDF as an attachment in the response return request.createResponseBuilder(HttpStatus.OK) .body(content) .header("Content-Disposition", "attachment; filename=ironpdf_result.pdf") .build(); } catch (Exception e) { context.getLogger().severe("Failed to render PDF: " + e.getMessage()); return request.createResponseBuilder(HttpStatus.INTERNAL_SERVER_ERROR) .body("An error occurred while rendering the PDF.") .build(); } } } }JAVA -
Dockerfile 업데이트
- IronPDF Linux에 필요한 패키지를 추가하세요. 예제에서 기본 Docker 이미지는
mcr.microsoft.com/azure-functions/java:4-java$JAVA_VERSION-build이며, 이는Debian 11을 기반으로 합니다. 그러므로 이러한 패키지들을 Dockerfile에 추가해야 합니다.
RUN apt update \ && apt install -y libgdiplus libxkbcommon-x11-0 libc6 libc6-dev libgtk2.0-0 libnss3 \ libatk-bridge2.0-0 libx11-xcb1 libxcb-dri3-0 libdrm-common libgbm1 \ libasound2 libxrender1 libfontconfig1 libxshmfence1 RUN apt-get install -y xvfb libva-dev libgdiplus- 다른 Linux 배포판에 대한 내용은 IronPDF Linux 설치 가이드를 참조하십시오.
- IronPDF Linux에 필요한 패키지를 추가하세요. 예제에서 기본 Docker 이미지는
-
함수를 Azure에 다시 배포합니다.
- 빌드 및 패키징:
mvn clean package - Docker 이미지 빌드:
docker build --tag <DOCKER_ID>/azurefunctionsimage:v1.0.0 . - Docker 이미지 푸시:
docker push <DOCKER_ID>/azurefunctionsimage:v1.0.0 - Azure 함수 업데이트:
az functionapp create --name <APP_NAME> --storage-account <STORAGE_NAME> \ --resource-group AzureFunctionsContainers-rg --plan myPremiumPlan \ --deployment-container-image-name <DOCKER_ID>/azurefunctionsimage:v1.0.0az functionapp create --name <APP_NAME> --storage-account <STORAGE_NAME> \ --resource-group AzureFunctionsContainers-rg --plan myPremiumPlan \ --deployment-container-image-name <DOCKER_ID>/azurefunctionsimage:v1.0.0SHELL
- 빌드 및 패키징:
- IronPDF 즐기세요
- 다음 위치에서 함수 트리거:
https://<APP_NAME>.azurewebsites.net/api/RenderPdf?url=https://www.google.com - 참고: 처음 실행될 때는 초기화로 인해 속도가 느리거나 오류가 발생할 수 있지만, 이후에는 안정적으로 작동합니다.
- 다음 위치에서 함수 트리거:
자주 묻는 질문
Azure Functions를 사용하여 Java로 PDF 생성기를 만들려면 어떻게 해야 하나요?
Docker를 통해 IronPDF를 배포하면 Azure Functions를 사용하여 Java로 PDF 생성기를 만들 수 있습니다. 이 방법은 IronPDF 라이브러리를 사용하여 Azure Functions 환경 내에서 PDF 생성 작업을 처리하는 것입니다.
Azure Functions에서 IronPDF를 사용하려면 Docker 배포가 왜 필요한가요?
Azure Functions에서 IronPDF를 사용하려면 런타임에 바이너리를 실행해야 하므로 Docker 배포가 필수적입니다. Zip 배포 방식에서는 런타임 실행이 지원되지 않습니다.
Maven 프로젝트에 IronPDF 종속성을 추가하는 단계는 무엇입니까?
Maven 프로젝트에 IronPDF 종속성을 추가하려면 `pom.xml` 파일에 IronPDF 및 `ironpdf-engine-linux-x64` 라이브러리를 포함시키세요. 호환성을 위해 최신 버전을 사용하고 있는지 확인하십시오.
Azure Function에서 RenderPdf 함수는 어떻게 작동하나요?
Azure Function의 RenderPdf 함수는 HTTP 요청에서 URL을 읽고, IronPDF의 `PdfDocument.renderUrlAsPdf` 메서드를 사용하여 해당 URL을 PDF로 렌더링한 다음, 생성된 PDF 파일을 응답의 첨부 파일로 반환합니다.
IronPDF용 Dockerfile에 필요한 Linux 패키지는 무엇입니까?
IronPDF용 Dockerfile에는 Debian 기반 이미지에서 제대로 작동하도록 `libgdiplus`, `libxkbcommon-x11-0`, `libc6`, `libgtk2.0-0`과 같은 Linux 패키지가 포함되어야 합니다.
PDF 생성 기능을 처음 실행할 때 무엇을 예상해야 할까요?
PDF 생성 기능을 처음 실행할 때는 초기화 과정으로 인해 속도가 느리거나 오류가 발생할 수 있습니다. 이후 실행 시에는 더욱 안정적으로 작동할 것입니다.
Azure Function용 Docker 이미지를 배포하려면 어떻게 해야 하나요?
Azure Function용 Docker 이미지를 배포하려면 ` mvn clean package 명령으로 프로젝트를 빌드하고, Docker 이미지를 생성한 다음, Docker 레지스트리에 푸시하고, Azure Function이 새 이미지를 사용하도록 업데이트하면 됩니다.
Azure에서 PDF 생성 기능을 실행하기 위한 올바른 URL 형식은 무엇입니까?
PDF 생성 기능을 실행하려면 `https://`와 같은 URL 형식을 사용하십시오.
사용자 지정 Docker 이미지를 사용하여 Azure Function을 설정하는 데 필요한 자료는 어디에서 찾을 수 있나요?
사용자 지정 Docker 이미지를 사용하여 Azure Function을 설정하는 방법에 대해서는 Microsoft 공식 가이드인 "사용자 지정 이미지를 사용하여 Linux에서 Azure Function 만들기"를 참조하세요.

