Java용 Azure SDK 사용
Java용 오픈 소스 Azure SDK는 Java 애플리케이션 코드에서 Azure 리소스를 간편하게 프로비저닝하고, 관리하고, 사용할 수 있게 해줍니다.
중요 세부 정보
- Azure 라이브러리는 로컬 또는 클라우드에서 실행하는 Java 코드에서 Azure 서비스와 통신하는 방법입니다.
- 이 라이브러리는 Java 8 이상을 지원하며, Java 8 기준과 최신 Java '장기 지원' 릴리스 모두에 대한 테스트를 거쳤습니다.
- 라이브러리에는 전체 Java 모듈 지원이 포함됩니다. 즉, Java 모듈의 요구 사항을 완전히 준수하고 사용하기 위해 모든 관련 패키지를 내보냅니다.
- Java용 Azure SDK는 특정 Azure 서비스와 관련된 많은 개별 Java 라이브러리로만 구성됩니다. "SDK"에는 다른 도구가 없습니다.
- 고유한 "관리" 및 "클라이언트" 라이브러리("관리 평면" 및 "데이터 평면" 라이브러리라고도 함)가 있습니다. 각 집합은 서로 다른 용도로 사용되며 다양한 종류의 코드에서 사용됩니다. 자세한 내용은 이 문서의 뒷부분에 나오는 다음 섹션을 참조하세요.
- 라이브러리에 대한 설명서는 Java용 Azure 참조(Azure 서비스로 구성되어 있음) 또는 Java API 브라우저(패키지 이름으로 구성되어 있음)에서 찾을 수 있습니다.
기타 세부 정보
- Java용 Azure SDK 라이브러리는 기본 Azure REST API를 기반으로 빌드되므로 익숙한 Java 패러다임을 통해 이러한 API를 사용할 수 있습니다. 그러나 원하는 경우 언제든지 Java 코드에서 직접 REST API를 사용할 수 있습니다.
- GitHub 리포지토리에서 Azure 라이브러리에 대한 소스 코드를 찾을 수 있습니다. 오픈 소스 프로젝트이기 때문에 여러분의 기여를 환영합니다!
- 현재 인증 프로토콜, 로깅, 추적, 전송 프로토콜, 버퍼링된 응답 및 재시도와 같은 일반적인 클라우드 패턴을 공유하도록 Java용 Azure SDK 라이브러리를 업데이트하고 있습니다.
- 이 공유 기능은 azure-core 라이브러리에 포함되어 있습니다.
- 라이브러리에 적용되는 지침에 대한 자세한 내용은 Java Azure SDK 디자인 지침을 참조 하세요.
Java용 Azure SDK에 지원되는 플랫폼
Java용 Azure SDK는 Java 8 이상을 지원하지만 개발자는 개발 및 프로덕션으로 릴리스할 때 항상 최신 LTS(Java 장기 지원) 릴리스를 사용하는 것이 좋습니다. 최신 LTS 릴리스를 사용하면 버그 수정, 성능 향상 및 보안 수정을 포함하여 Java 내에서 최신 개선 사항을 사용할 수 있습니다. 또한 Java용 Azure SDK에는 이후 Java 릴리스에 대한 추가 지원이 포함되어 있습니다. 이 추가 지원은 성능을 개선하고 지원되는 Java 8 기준을 넘는 JDK 관련 개선 사항을 포함합니다.
Java용 Azure SDK는 Windows, Linux 및 macOS에서 테스트 및 지원됩니다. JDK가 지원하는 다른 플랫폼에서는 테스트되지 않으며 Android 배포를 지원하지 않습니다. Android 디바이스에서 배포하고 Azure 서비스를 사용하는 소프트웨어를 개발하려는 개발자를 위해 Android용 Azure SDK 프로젝트에서 Android 관련 라이브러리를 사용할 수 있습니다.
클라이언트 라이브러리에서 Azure 리소스 커넥트 및 사용
클라이언트(또는 "데이터 평면") 라이브러리를 사용하면 Java 애플리케이션 코드를 작성하여 이미 프로비전된 서비스와 상호 작용할 수 있습니다. 클라이언트 라이브러리는 클라이언트 API를 지원하는 서비스에만 존재합니다. Maven 그룹 ID가 이므로 com.azure
식별할 수 있습니다.
모든 Azure Java 클라이언트 라이브러리는 클라이언트 인스턴스를 만드는 Java Builder 클래스를 제공하는 것과 동일한 API 디자인 패턴을 따릅니다. 이 패턴은 클라이언트의 정의 및 인스턴스화를 작업과 분리하므로 클라이언트를 변경할 수 없어 더 쉽게 사용할 수 있습니다. 또는 모든 클라이언트 라이브러리가 몇 가지 중요한 패턴을 따릅니다.
동기 API와 비동기 API를 모두 지원하는 클라이언트 라이브러리는 별도의 클래스에서 이러한 API를 제공해야 합니다. 즉, 이러한 경우 동기화 API
KeyVaultClient
및KeyVaultAsyncClient
비동기 API에 대한 API가 있습니다.동기 API 및 비동기 API 작성 작업을 모두 담당하는 단일 작성기 클래스가 있습니다. 작성기는 포함된 동기화 클라이언트 클래스와
Builder
비슷하게 이름이 지정됩니다. 예:KeyVaultClientBuilder
. 이 작성기에는buildClient()
클라이언트 인스턴스를 적절하게 만드는 메서드가 있습니다buildAsyncClient()
.
이러한 규칙으로 인해 끝나는 Client
모든 클래스는 변경할 수 없으며 Azure 서비스와 상호 작용하는 작업을 제공합니다. ClientBuilder
로 끝나는 모든 클래스는 특정 클라이언트 유형의 인스턴스를 구성하고 만드는 작업을 제공합니다.
클라이언트 라이브러리 예제
다음 코드 예제에서는 동기 Key Vault KeyClient
를 만드는 방법을 보여 줍니다.
KeyClient client = new KeyClientBuilder()
.endpoint(<your Key Vault URL>)
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
다음 코드 예제에서는 비동기 Key Vault KeyAsyncClient
를 만드는 방법을 보여 줍니다.
KeyAsyncClient client = new KeyClientBuilder()
.endpoint(<your Key Vault URL>)
.credential(new DefaultAzureCredentialBuilder().build())
.buildAsyncClient();
각 클라이언트 라이브러리 작업에 대한 자세한 내용은 SDK GitHub 리포지토리에 있는 라이브러리의 프로젝트 디렉터리에 있는 README.md 파일을 참조하세요. 참조 설명서 및 Azure 샘플에서 더 많은 코드 조각을 찾을 수도 있습니다.
관리 라이브러리를 사용하여 Azure 리소스 프로비저닝 및 관리
관리(또는 "관리 평면") 라이브러리를 사용하면 Java 애플리케이션 코드에서 Azure 리소스를 만들고 프로비전하고 관리할 수 있습니다. com.azure.resourcemanager
Maven 그룹 ID에서 이러한 라이브러리를 찾을 수 있습니다. 모든 Azure 서비스에는 해당 관리 라이브러리가 있습니다.
관리 라이브러리를 사용하면 구성 및 배포 스크립트를 작성하여 Azure Portal 또는 Azure CLI를 통해 수행할 수 있는 것과 동일한 작업을 수행할 수 있습니다.
모든 Azure Java 관리 라이브러리는 Azure 컴퓨팅 서비스 또는 AzureResourceManager
인기 있는 서비스의 집계와 같은 ComputeManager
클래스를 서비스 API로 제공합니다*Manager
.
관리 라이브러리 예
다음 코드 예제에서는 다음을 만드는 방법을 보여줍니다.ComputeManager
ComputeManager computeManager = ComputeManager
.authenticate(
new DefaultAzureCredentialBuilder().build(),
new AzureProfile(AzureEnvironment.AZURE));
다음 코드 예제에서는 새 가상 머신을 프로비전하는 방법을 보여 줍니다.
VirtualMachine virtualMachine = computeManager.virtualMachines()
.define(<your virtual machine>)
.withRegion(Region.US_WEST)
.withExistingResourceGroup(<your resource group>)
.withNewPrimaryNetwork("10.0.0.0/28")
.withPrimaryPrivateIPAddressDynamic()
.withoutPrimaryPublicIPAddress()
.withPopularLinuxImage(KnownLinuxVirtualMachineImage.UBUNTU_SERVER_18_04_LTS)
.withRootUsername(<virtual-machine username>)
.withSsh(<virtual-machine SSH key>)
.create();
다음 코드 예제에서는 기존 가상 머신을 가져오는 방법을 보여 줍니다.
VirtualMachine virtualMachine = computeManager.virtualMachines()
.getByResourceGroup(<your resource group>, <your virtual machine>);
다음 코드 예제에서는 가상 머신을 업데이트하고 새 데이터 디스크를 추가하는 방법을 보여 줍니다.
virtualMachine.update()
.withNewDataDisk(10)
.apply();
각 관리 라이브러리를 사용하는 방법에 대한 자세한 내용은 SDK GitHub 리포지토리에서 라이브러리의 프로젝트 디렉터리에 있는 README.md 파일을 참조하세요. 참조 설명서 및 Azure 샘플에서 더 많은 코드 조각을 찾을 수도 있습니다.
SDK 팀과 교류하고 도움 받기
- Java용 Azure SDK 설명서를 방문하세요.
- Stack Overflow(영문)의 커뮤니티에 질문을 게시합니다.
- GitHub 리포지토리에서 SDK에 대한 문제를 엽니다.
- 트위터에서 @AzureSDK 언급합니다.
다음 단계
Java용 Azure SDK가 무엇인지 이해했으므로 라이브러리를 사용할 때 생산성을 높이기 위해 존재하는 다양한 교차 절단 개념을 자세히 살펴볼 수 있습니다. 다음 문서에서는 좋은 시작점을 제공합니다.