다음을 통해 공유


빠른 시작: PowerShell을 사용하여 Azure Cache for Redis 이벤트를 웹 엔드포인트로 라우팅

중요합니다

Azure Cache for Redis는 모든 SKU에 대한 사용 중지 타임라인을 발표했습니다. 가능한 한 빨리 기존 Azure Cache for Redis 인스턴스를 Azure Managed Redis 로 이동하는 것이 좋습니다.

사용 중지에 대한 자세한 내용은 다음과 같습니다.

Azure Event Grid는 클라우드에 대한 이벤트 서비스입니다. 이 빠른 시작에서는 Azure PowerShell을 사용하여 Azure Cache for Redis 이벤트를 구독하고, 이벤트를 트리거하고, 결과를 확인합니다.

일반적으로 이벤트 데이터를 처리하고 작업을 수행하는 엔드포인트에 이벤트를 보냅니다. 그러나 이 빠른 시작을 간소화하기 위해 메시지를 수집하고 표시하는 웹앱에 이벤트를 보냅니다. 이 빠른 시작에서 설명하는 단계를 완료하면 이벤트 데이터가 웹앱으로 보내졌음을 알 수 있습니다.

설치 프로그램

이 빠른 시작에서는 최신 버전의 Azure PowerShell을 실행해야 합니다. 설치 또는 업그레이드해야 하는 경우 Azure PowerShell 설치 및 구성을 참조하세요.

Azure에 로그인

Connect-AzAccount 명령으로 Azure 구독에 로그인하고 화면의 지시에 따라 인증합니다.

Connect-AzAccount

이 예제에서는 westus2 를 사용하고 전체에서 사용할 수 있는 변수에 선택 영역을 저장합니다.

$location = "westus2"

리소스 그룹 만들기

Event Grid 토픽은 개별 Azure 리소스로 배포되며 Azure 리소스 그룹으로 프로비저닝되어야 합니다. 리소스 그룹은 Azure 리소스가 배포 및 관리되는 논리적 컬렉션입니다.

New-AzResourceGroup 명령을 사용하여 리소스 그룹을 만듭니다.

다음 예제에서는 westus2 위치에 gridResourceGroup이라는 리소스 그룹을 만듭니다.

$resourceGroup = "gridResourceGroup"
New-AzResourceGroup -Name $resourceGroup -Location $location

Azure Cache for Redis 인스턴스 만들기

New-AzRedisCache
   -ResourceGroupName <String>
   -Name <String>
   -Location <String>
   [-Size <String>]
   [-Sku <String>]
   [-RedisConfiguration <Hashtable>]
   [-EnableNonSslPort <Boolean>]
   [-TenantSettings <Hashtable>]
   [-ShardCount <Int32>]
   [-MinimumTlsVersion <String>]
   [-SubnetId <String>]
   [-StaticIP <String>]
   [-Tag <Hashtable>]
   [-Zone <String[]>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

PowerShell에서 캐시 인스턴스를 만드는 방법에 대한 자세한 내용은 Azure PowerShell 참조를 참조하세요.

메시지 엔드포인트 만들기

토픽을 구독하기 전에 이벤트 메시지에 대한 엔드포인트를 만들어 보겠습니다. 일반적으로 엔드포인트는 이벤트 데이터를 기반으로 작업을 수행합니다. 이 빠른 시작을 간소화하기 위해 이벤트 메시지를 표시하는 미리 작성된 웹앱을 배포합니다. 배포된 솔루션은 App Service 계획, App Service 웹앱 및 GitHub의 소스 코드를 포함합니다.

<your-site-name>을 웹앱의 고유한 이름으로 바꿉니다. 웹앱 이름은 DNS 항목의 일부이므로 고유해야 합니다.

$sitename="<your-site-name>"

New-AzResourceGroupDeployment `
  -ResourceGroupName $resourceGroup `
  -TemplateUri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/main/azuredeploy.json" `
  -siteName $sitename `
  -hostingPlanName viewerhost

배포가 완료될 때까지 몇 분 정도 걸릴 수 있습니다. 배포가 성공된 후 실행하는지 확인하려면 웹앱을 봅니다. 웹 브라우저에서 https://<your-site-name>.azurewebsites.net으로 이동합니다.

메시지가 표시되지 않는 사이트를 보게 될 것입니다.

빈 Event Grid 뷰어 사이트.

Azure Cache for Redis 이벤트를 구독하기

이 단계에서는 추적하려는 이벤트를 Event Grid에 알리기 위해 토픽을 구독합니다. 다음 예제에서는 만든 캐시 인스턴스를 구독하고 웹앱의 URL을 이벤트 알림의 엔드포인트로 전달합니다. 웹앱에 대한 엔드포인트는 접미사 /api/updates/를 포함해야 합니다.

$cacheId = (Get-AzRedisCache -ResourceGroupName $resourceGroup -Name $cacheName).Id
$endpoint="https://$sitename.azurewebsites.net/api/updates"

New-AzEventGridSubscription `
  -EventSubscriptionName <event_subscription_name> `
  -Endpoint $endpoint `
  -ResourceId $cacheId

웹앱을 다시 확인하고, 구독 유효성 검사 이벤트를 보냈음을 확인합니다. 눈 모양 아이콘을 선택하여 이벤트 데이터를 확장합니다. Event Grid는 유효성 검사 이벤트를 보내므로 엔드포인트는 이벤트 데이터를 수신하려는 것을 확인할 수 있습니다. 웹앱은 구독의 유효성을 검사하는 코드를 포함합니다.

Azure Event Grid 뷰어.

Azure Cache for Redis에서 이벤트 트리거

이제 이벤트를 트리거하여 Event Grid가 메시지를 사용자 엔드포인트에 어떻게 배포하는지 살펴 보겠습니다.

Import-AzRedisCache
      [-ResourceGroupName <String>]
      -Name <String>
      -Files <String[]>
      [-Format <String>]
      [-Force]
      [-PassThru]
      [-DefaultProfile <IAzureContextContainer>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

PowerShell에서 가져오는 방법에 대한 자세한 내용은 Azure PowerShell 참조를 참조하세요.

이벤트를 트리거했고 Event Grid가 구독할 때 구성한 엔드포인트로 메시지를 보냈습니다. 웹앱을 확인하여 방금 전송한 이벤트를 봅니다.

[{
"id": "e1ceb52d-575c-4ce4-8056-115dec723cff",
  "eventType": "Microsoft.Cache.ImportRDBCompleted",
  "topic": "/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Cache/Redis/{cache_name}",
  "data": {
    "name": "ImportRDBCompleted",
    "timestamp": "2020-12-10T18:07:54.4937063+00:00",
    "status": "Succeeded"
  },
  "subject": "ImportRDBCompleted",
  "dataversion": "1.0",
  "metadataVersion": "1",
  "eventTime": "2020-12-10T18:07:54.4937063+00:00"
}]

자원을 정리하세요

이 Azure Cache for Redis 인스턴스와 이벤트 구독을 계속 사용하려면, 이 빠른 시작에서 생성한 리소스를 정리하지 마세요. 계속하지 않으려면 다음 명령을 사용하여 이 빠른 시작에서 만든 리소스를 삭제합니다.

Remove-AzResourceGroup -Name $resourceGroup

다음 단계

이제 토픽 및 이벤트 구독을 만드는 방법을 배웠으므로 Azure Cache for Redis 이벤트 및 Event Grid에서 수행할 수 있는 작업에 대해 자세히 알아보세요.