이 문서에서는 Azure Functions에서 Azure Managed Redis 또는 Azure Cache for Redis를 사용하여 최적화된 서버리스 및 이벤트 기반 아키텍처를 만드는 방법을 설명합니다.
Azure Functions는 트리거 및 바인딩이 주요 기능인 이벤트 기반 프로그래밍 모델을 제공합니다. Azure Functions를 사용하면 이벤트 기반 서버리스 애플리케이션을 쉽게 빌드할 수 있습니다. Azure Redis 서비스(Azure Managed Redis 및 Azure Cache for Redis)는 마이크로 서비스, 상태 관리, pub/sub 메시징 등을 비롯한 분산 애플리케이션을 빌드하기 위한 일련의 구성 요소 및 모범 사례를 제공합니다.
Azure Redis는 Azure Functions에 대한 트리거로 사용할 수 있으므로 서버리스 워크플로를 시작할 수 있습니다. 이 기능은 쓰기 숨김 캐시 또는 이벤트 기반 아키텍처와 같은 데이터 아키텍처에서 매우 유용할 수 있습니다.
Azure Redis 및 Azure Functions를 통합하여 Azure Redis 또는 외부 시스템의 이벤트에 대응하는 함수를 빌드할 수 있습니다.
| 작업 | Direction |
|---|---|
| Redis pub 하위 메시지에서 트리거 | 트리거 |
| Redis 목록의 트리거 | 트리거 |
| Redis 스트림에서 트리거 | 트리거 |
| 캐시된 값 읽기 | 입력 |
| 캐시할 값 작성 | 출력 |
함수 트리거 및 바인딩에 대한 가용성 범위
| 계층 | Azure Cache for Redis(Basic, Standard, Premium, Enterprise, Enterprise Flash) | Azure Managed Redis(메모리 최적화, 기본, 컴퓨팅 최적화, 플래시 최적화) |
|---|---|---|
| Pub/Sub | 예 | 예 |
| 목록 | 예 | 예 |
| 스트림 | 예 | 예 |
| 바인딩 | 예 | 예 |
Important
Redis 트리거는 현재 Elastic Premium 계획 또는 전용 App Service 계획에서 실행되는 함수에 대해서만 지원됩니다.
확장 설치
Functions는 격리된 C# 작업자 프로세스에서 실행됩니다. 자세한 내용은 격리된 작업자 프로세스에서 C# Azure Functions 실행 가이드를 참조하세요.
이 NuGet 패키지를 설치하여 프로젝트에 확장을 추가합니다.
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Redis
번들 설치
앱에서 이 바인딩 확장을 사용하려면 프로젝트 루트의 host.json 파일에 다음 extensionBundle 참조가 포함되어 있는지 확인합니다.
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
이 예제에서 값 version 은 [4.0.0, 5.0.0) Functions 호스트가 4.x의 모든 잠재적 버전을 포함하는 최소 4.0.0 하지만 보다 5.0.0작은 번들 버전을 사용하도록 지시합니다. 이 표기법은 v4.x 확장 번들의 사용 가능한 최신 부 버전에서 앱을 효과적으로 유지 관리합니다.
가능하면 최신 확장 번들 주 버전을 사용하고 런타임에서 최신 부 버전을 자동으로 유지하도록 허용해야 합니다. 확장 번들 릴리스 페이지에서 최신 번들의 콘텐츠를 볼 수 있습니다. 자세한 내용은 Azure Functions 확장 번들을 참조하세요.
패키지 업데이트
이 종속성을 추가하도록 파일을 업데이트 하여 pom.xml 추가합니다.
<dependency>
<groupId>com.microsoft.azure.functions</groupId>
<artifactId>azure-functions-java-library-redis</artifactId>
<version>1.0.0</version>
</dependency>
Redis 연결 문자열
Azure Redis 트리거 및 바인딩에는 캐시 연결 정보를 포함하는 애플리케이션 설정 또는 컬렉션 이름을 나타내는 필수 속성이 있습니다. Redis 트리거 또는 바인딩은 매개 변수에 전달된 이름의 연결 문자열 보유하는 환경 변수를 Connection 찾습니다.
로컬 개발 Connection 에서 local.settings.json 파일을 사용하여 정의할 수 있습니다. Azure 에 배포하는 경우 애플리케이션 설정을 사용할 수 있습니다.
Azure 함수를 사용하여 캐시 인스턴스에 연결할 때 배포에서 이러한 종류의 연결 중 하나를 사용할 수 있습니다.
사용자 할당 관리 ID는 함수 앱과 연결되어야 하며 해당 ID에는 캐시 서비스에서 명시적 권한도 부여되어야 합니다. 자세한 내용은 캐시 인증에 Microsoft Entra ID 사용을 참조하세요.
다음 예제에서는 바인딩의 속성이 설정된 Connection것으로 가정하여 클라이언트 인증의 종류에 따라 각 캐시 서비스에 연결하는 데 필요한 앱 설정의 Redis 키 이름과 값을 보여 줍니다.
"Redis__redisHostName": "<cacheName>.<region>.redis.azure.net",
"Redis__principalId": "<principalId>",
"Redis__clientId": "<clientId>"