다음을 통해 공유


Azure Redis용 Azure 함수 개요

이 문서에서는 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

번들 설치

  1. Java 함수 프로젝트를 만듭니다. Maven을 사용할 수 있습니다. mvn archetype:generate -DarchetypeGroupId=com.microsoft.azure -DarchetypeArtifactId=azure-functions-archetype -DjavaVersion=8

  2. host.json 파일에서 다음 코드를 추가하거나 바꿔 확장 번들을 추가합니다.

    {
      "version": "2.0",
      "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
        "version": "[4.11.*, 5.0.0)"
      }
    }
    

    Warning

    Redis 확장은 현재 미리 보기 번들 릴리스에서만 사용할 수 있습니다.

  3. 파일에 Redis 바인딩용 Java 라이브러리를 pom.xml 추가합니다.

    <dependency>
      <groupId>com.microsoft.azure.functions</groupId>
      <artifactId>azure-functions-java-library-redis</artifactId>
      <version>${azure.functions.java.library.redis.version}</version>
    </dependency>
    

host.json 파일에서 다음 코드를 추가하거나 바꿔 확장 번들을 추가합니다.

  {
    "version": "2.0",
    "extensionBundle": {
      "id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
      "version": "[4.11.*, 5.0.0)"
  }
}

Warning

Redis 확장은 현재 미리 보기 번들 릴리스에서만 사용할 수 있습니다.

Redis 연결 문자열

Azure Redis 트리거 및 바인딩에는 캐시 연결 정보를 포함하는 애플리케이션 설정 또는 컬렉션 이름을 나타내는 필수 속성이 있습니다. 연결 문자열 Azure Managed Redis 또는 Azure Cache for Redis 포털의 액세스 키 메뉴에서 찾을 수 있습니다. Redis 트리거 또는 바인딩은 매개 변수에 전달된 이름의 연결 문자열 보유하는 환경 변수를 Connection 찾습니다.

로컬 개발 Connection 에서 local.settings.json 파일을 사용하여 정의할 수 있습니다. Azure 에 배포하는 경우 애플리케이션 설정을 사용할 수 있습니다.

Azure 함수를 사용하여 캐시 인스턴스에 연결할 때 배포에서 연결 문자열, 시스템 할당 관리 ID 및 사용자 할당 관리 ID의 세 가지 유형의 연결을 사용할 수 있습니다.

로컬 개발의 경우 서비스 주체 비밀을 사용할 수도 있습니다.

Important

최적의 보안을 위해 함수 앱은 관리 ID가 있는 Microsoft Entra ID를 사용하여 가능한 경우 캐시에 대한 요청에 권한을 부여해야 합니다. Microsoft Entra ID 및 관리 ID를 사용한 인증은 공유 액세스 키 인증에 비해 뛰어난 보안과 사용 편의성을 제공합니다. 캐시에서 관리 ID를 사용하는 방법에 대한 자세한 내용은 캐시 인증을 위한 Microsoft Entra ID 사용을 참조하세요.

함수에서 appsettings 설정된 것으로 가정 Connection 하여 다음 유형의 클라이언트 인증을 각각 구성할 수 Redis 있습니다.

Connection string

"Redis": "<cacheName>.<region>.redis.azure.net:10000,password=..."

시스템 할당 관리 ID

"Redis__redisHostName": "<cacheName>.<region>.redis.azure.net",
"Redis__principalId": "<principalId>"

사용자 할당 관리 ID

"Redis__redisHostName": "<cacheName>.<region>.redis.azure.net",
"Redis__principalId": "<principalId>",
"Redis__clientId": "<clientId>"

서비스 주체 비밀

서비스 주체 비밀을 사용하는 연결은 로컬 개발 중에만 사용할 수 있습니다.

"Redis__redisHostName": "<cacheName>.<region>.redis.azure.net",
"Redis__principalId": "<principalId>",
"Redis__clientId": "<clientId>"
"Redis__tenantId": "<tenantId>"
"Redis__clientSecret": "<clientSecret>"