Spring Boot는 Spring Cloud Azure 개발 환경을 간소화합니다. Spring Cloud Azure 스타터는 애플리케이션에 포함할 편리한 종속성 설명자 집합입니다. 스타터가 객체 인스턴스화 및 구성 로직을 처리하므로, 직접 처리할 필요가 없습니다. 각 스타터는 Azure 클라우드 환경 및 인증 정보와 같은 중요한 구성 정보를 제공하기 위해 spring-cloud-azure-starter에 의존합니다. 다음 예제와 같이 YAML 파일과 같은 속성으로 구성할 수 있습니다.
spring:
cloud:
azure:
profile:
tenant-id: <tenant>
cloud-type: Azure
credential:
client-id: ${AZURE_CLIENT_ID}
메모
cloud 속성은 선택 사항입니다.
tenant-id 허용되는 값은 common, organizations, consumers또는 테넌트 ID입니다. 이러한 값에 대한 자세한 내용은 오류 AADSTS50020 - ID 공급자의 사용자 계정이 테넌트에 존재하지 않음의 잘못된 엔드포인트 사용(개인 및 조직 계정) 섹션을 참조하세요. 단일 테넌트 앱을 변환하는 방법에 대한 자세한 내용은 Microsoft Entra ID단일 테넌트 앱을 다중 테넌트로 변환을 참조하세요.
이러한 속성은 선택 사항입니다. 지정하지 않으면 Spring Boot에서 자동으로 찾으려고 시도합니다. Spring Boot에서 이러한 속성을 찾는 방법에 대한 자세한 내용은 설명서를 참조하세요.
종속성 설정
Spring Cloud Azure 스타터를 두 가지 방법으로 사용할 수 있습니다. 첫 번째 방법은 다음 예제와 같이 spring-cloud-azure-starter 종속성과 함께 Azure SDK를 사용하는 것입니다.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-cosmos</artifactId>
</dependency>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-starter</artifactId>
</dependency>
두 번째 방법은 Azure SDK 종속성을 추가하지 않고 각 서비스에 대한 Spring Cloud Azure Starter를 직접 포함하는 것입니다. 예를 들어 Azure Cosmos DB 다음 종속성을 추가합니다.
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-starter-cosmos</artifactId>
</dependency>
팁
지원되는 스타터 목록은 Spring Cloud Azure 개발자 가이드Starter 종속성 섹션을 참조하세요.
구성
메모
보안 주체를 사용하여 Azure 리소스에 액세스하기 위해 Microsoft Entra ID 인증하고 권한을 부여하는 경우 보안 주체가 Azure 리소스에 액세스할 수 있는 충분한 권한이 있는지 확인합니다. 자세한 내용은 Microsoft Entra ID사용하여 액세스 권한 부여를 참조하세요.
각 Azure 서비스에 대한 구성 속성은 접두사 spring.cloud.azure.<azure-service>아래에 있습니다.
팁
모든 Spring Cloud Azure 구성 속성 목록은 Spring Cloud Azure 구성 속성참조하세요.
기본 사용량
application.yaml 파일에 다음 속성을 추가하여 Azure Cosmos DB 클라이언트를 자동으로 구성합니다.
spring:
cloud:
azure:
cosmos:
database: ${AZURE_COSMOS_DATABASE_NAME}
endpoint: ${AZURE_COSMOS_ENDPOINT}
consistency-level: eventual
connection-mode: direct
그런 다음, 컨텍스트에서 둘 다 CosmosClientCosmosAsyncClient 사용할 수 있으며 다음 예제와 같이 자동으로 연결할 수 있습니다.
class Demo {
@Autowired
private CosmosClient cosmosClient;
@Override
public void run() {
User item = User.randomUser();
CosmosContainer container = cosmosClient.getDatabase(databaseName).getContainer(containerName);
container.createItem(item);
}
}
샘플
GitHub의 azure-spring-boot-samples 리포지토리를 참조하세요.