다음을 통해 공유


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의 세 가지 유형의 연결을 사용할 수 있습니다.

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

함수에서 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>"