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 라이브러리를 업데이트하고 있습니다.
  • 라이브러리에 적용되는 지침에 대한 자세한 내용은 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 KeyVaultClientKeyVaultAsyncClient 비동기 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가 무엇인지 이해했으므로 라이브러리를 사용할 때 생산성을 높이기 위해 존재하는 다양한 교차 절단 개념을 자세히 살펴볼 수 있습니다. 다음 문서에서는 좋은 시작점을 제공합니다.