Important
Azure Cache for Redis は、すべての SKU の提供終了タイムラインを発表しました。 できるだけ早く既存の Azure Cache for Redis インスタンスを Azure Managed Redis に移行することをお勧めします。
提供終了の詳細については、以下を参照してください。
Azure Event Grid は、クラウドのイベント処理サービスです。 このクイック スタートでは、Azure PowerShell を使用して Azure Cache for Redis イベントのサブスクライブ、イベントのトリガー、結果の表示を行います。
通常は、イベント データを処理し、アクションを実行するエンドポイントにイベントを送信します。 ただし単純化するために、このクイックスタートではメッセージを収集して表示する Web アプリにイベントを送信します。 このクイックスタートの手順の最後に、イベント データが Web アプリに送信済みであることを確認できます。
設定
このクイック スタートでは、最新バージョンの Azure PowerShell を実行している必要があります。 インストールまたはアップグレードする必要がある場合は、Azure PowerShell モジュールのインストールと構成に関するページを参照してください。
Azure にサインインする
Connect-AzAccount コマンドで Azure サブスクリプションにサインインし、画面上の指示に従って認証を行います。
Connect-AzAccount
この例では 、westus2 を使用し、全体で使用する変数に選択範囲を格納します。
$location = "westus2"
リソース グループを作成する
Event Grid のトピックは、個々の Azure リソースとしてデプロイされるため、Azure リソース グループにプロビジョニングする必要があります。 リソース グループは、Azure リソースをまとめてデプロイして管理するための論理上のコレクションです。
New-AzResourceGroup コマンドを使用してリソース グループを作成します。
次の例では、gridResourceGroup という名前のリソース グループを westus2 の場所に作成します。
$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 リファレンスを参照してください。
メッセージ エンドポイントの作成
トピックをサブスクライブする前に、イベント メッセージ用のエンドポイントを作成しましょう。 通常、エンドポイントは、イベント データに基づくアクションを実行します。 このクイック スタートを簡素化するために、イベント メッセージを表示する構築済みの Web アプリをデプロしします。 デプロイされたソリューションには、App Service プラン、App Service Web アプリ、および GitHub からのソース コードが含まれています。
<your-site-name> は、Web アプリの一意の名前に置き換えてください。 Web アプリ名は、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
デプロイが完了するまでに数分かかる場合があります。 デプロイが成功した後で、Web アプリを表示して、実行されていることを確認します。 Web ブラウザーで https://<your-site-name>.azurewebsites.net にアクセスします
メッセージが現在表示されていないサイトが表示されるはずです。
Azure Cache for Redis イベントをサブスクライブする
この手順では、トピックをサブスクライブして、追跡するイベントを Event Grid に通知します。次の例では、作成したキャッシュ インスタンスをサブスクライブし、イベント通知のエンドポイントとして Web アプリから URL を渡します。 Web アプリのエンドポイントには、サフィックス /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
Web アプリをもう一度表示し、その Web アプリにサブスクリプションの検証イベントが送信されたことに注目します。 目のアイコンを選択してイベント データを展開します。 Event Grid は検証イベントを送信するので、エンドポイントはイベント データを受信することを確認できます。 Web アプリには、サブスクリプションを検証するコードが含まれています。
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 によってサブスクライブ時に構成したエンドポイントに送信されました。 Web アプリを表示して、送信したイベント確認します。
[{
"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 が役立つ方法について説明します。