次の方法で共有


クイックスタート: ASP.NET Core Web アプリで Azure Cache for Redis を使用する

このクイックスタートでは、Azure Cache for Redis を、Azure Cache for Redis に接続してキャッシュからデータを格納および取得する ASP.NET Core Web アプリケーションに組み込みます。

.NET Core にはキャッシュ プロバイダーもあります。 既存のコードの変更を最小限にして Redis の使用をすぐに開始するには、次を参照してください。

GitHub のコードにスキップする

https://github.com/Azure-Samples/azure-cache-redis-samples GitHub リポジトリをクローンし、quickstart/aspnet-core ディレクトリに移動して、この先の手順用の完成したソース コードを表示します。

quickstart/aspnet-core ディレクトリは、Azure Developer CLI (azd) テンプレートとしても構成されます。 オープンソースの azd ツールを使用して、ローカル環境から Azure へのプロビジョニングとデプロイを効率化します。 必要に応じて、以下のように azd up コマンドを実行して Azure Cache for Redis インスタンスを自動的にプロビジョニングし、それに接続するようにローカル サンプル アプリを構成します。

azd up

eShop サンプルを調べる

次の手順として、Redis キャッシュ プロバイダーを使用する ASP.NET Core eShop という、ASP.NET Core キャッシュ プロバイダーを実演する現実世界シナリオの eShop アプリケーションを確認できます。

含まれている機能:

  • Redis 分散キャッシュ
  • Redis セッション状態プロバイダー

デプロイの手順はREADME.md にあります。

前提条件

キャッシュの作成

  1. キャッシュを作成するには、Azure portal にサインインし、 [リソースの作成] を選択します。

    左側のナビゲーション ペインの [リソースの作成] が強調表示されています。

  2. [開始] ページ上で、検索ボックス内に「Azure Cache for Redis」と入力します。 次に、[作成] を選択します。

    検索ボックス内に

  3. [新規 Redis Cache] ページ上で、キャッシュの設定を構成します。

    設定 値を選択する 説明
    サブスクリプション ドロップダウンで、ご自身のサブスクリプションを選択します。 この新しい Azure Cache for Redis インスタンスが作成されるサブスクリプション。
    リソース グループ ドロップ ダウンでリソース グループを選択するか、 [新規作成] を選択し、新しいリソース グループの名前を入力します。 その中にキャッシュやその他のリソースを作成するリソース グループの名前。 すべてのアプリ リソースを 1 つのリソース グループに配置することで、それらをまとめて簡単に管理または削除できます。
    DNS 名 一意の名前を入力します。 キャッシュ名は 1 から 63 文字の文字列で、数字、英字、ハイフンのみを使用する必要があります。 名前の先頭と末尾には数字または文字を使用する必要があり、連続するハイフンを含めることはできません。 キャッシュ インスタンスの "ホスト名" は、<DNS name>.redis.cache.windows.net です。
    場所 ドロップ ダウンで場所を選択します。 キャッシュを使用する他のサービスの近くのリージョンを選択します。
    キャッシュ SKU ドロップダウンで SKU を選択します。 SKU によって、このキャッシュに使用できるサイズ、パフォーマンス、機能のパラメーターが決まります。 詳細については、Azure Cache for Redis の概要に関するページを参照してください。
    キャッシュ サイズ ドロップダウンでキャッシュのサイズを選択します 詳細については、Azure Cache for Redis の概要に関するページを参照してください。
  4. [ネットワーク] タブを選択するか、ページの下部にある [ネットワーク] ボタンを選択します。

  5. [ネットワーク] タブで、接続方法を選択します。

  6. [次へ: 詳細設定] タブを選択するか、ページの下部にある [次へ: 詳細設定] ボタンを選択して、[詳細設定] タブを表示します。

    作業ウィンドウの [詳細設定] タブ、および選択できるオプションを示すスクリーンショット。

  7. Microsoft Entra 認証を有効にするボックスにチェックを入れます。

    重要

    最適なセキュリティを実現するために、Microsoft では、可能な限り Microsoft Entra ID とマネージド ID を使用してキャッシュに対する要求を認可することをお勧めします。 Microsoft Entra ID とマネージド ID を使った認可によって、共有キー認可よりもセキュリティが向上し、使いやすくなります。 キャッシュでマネージド ID を使用する方法の詳細については、「キャッシュ認証に Microsoft Entra ID を使用する」を参照してください。

  8. ページの下部にある [次へ: タグ] タブを選択するか、ページの下部にある [次へ: タグ] ボタンを選択します。

  9. 必要に応じて、 [タグ] タブで、リソースを分類する場合は名前と値を入力します。

  10. [Review + create](レビュー + 作成) を選択します。 [確認および作成] タブが表示され、Azure によって構成が検証されます。

  11. 緑色の検証に成功のメッセージが表示された後、 [作成] を選択します。

キャッシュが作成されるまで、しばらく時間がかかります。 Azure Cache for Redis の [概要] ページで進行状況を監視できます。 [状態] に "実行中" と表示されている場合は、キャッシュを使用する準備ができています。

Azure portal からホスト名を取得する

キャッシュ クライアントは、キャッシュのために Azure Cache for Redis サーバーに接続するためにホスト名とポートを必要とします。 クライアントによっては、これらの項目を参照するための名前が若干異なる場合があります。 ホスト名とポートは、Azure portal から取得できます。

  • [リソース] メニューから [概要] を選択します。 ホスト名の形式は <DNS-name>.redis.cache.windows.net となります。

    ホスト名が赤枠で囲まれた Azure Cache for Redis プロパティを示すスクリーンショット。

Redis アクセス ポリシーを追加する

Azure Cache for Redis にアクセスする ID にデータ アクセス ポリシーを割り当てる必要があります。 この例では、Azure CLI または Visual Studio へのログインに使用するのと同じ Microsoft Entra ID アカウントにデータ アクセス ポリシーを割り当てます。

  1. キャッシュの [設定] リソース メニューを選択し、[データ アクセスの構成] を選択します。

  2. [データ アクセスの構成] ページで、上部のナビゲーションから [追加] > [新しい Redis ユーザー] を選択します。

    [データ アクセスの構成] 画面を示すスクリーンショット。

  3. [新しい Redis ユーザー] ページで、[データ共同作成者] ポリシーを選択し、[次へ: Redis ユーザー] を選択します。

  4. [+ メンバーの選択] を選択してポップアップ メニューを開きます。 自分のユーザー アカウントを検索し、結果からそれを選択します。

    [メンバーの選択] が赤いボックスで強調表示されている作業ペイン内の [Redis ユーザー] タブを示すスクリーンショット。

  5. [確認と割り当て] を選択して、選択したユーザーにポリシーを割り当てます。

ホスト名のローカル シークレットを追加する

コマンド ウィンドウで、角かっこを含めプレースホルダーを自分のキャッシュ名とプライマリ アクセス キーに置き換えた上で次のコマンドを実行して、RedisHostName という名前の新しいシークレットを保存します。

dotnet user-secrets set RedisHostName "<cache-name>.redis.cache.windows.net"

RedisConnection を使用してキャッシュに接続する

RedisConnection クラスは、キャッシュへの接続を管理します。 接続は、Controllers フォルダーにある HomeController.cs の次のステートメントで確立されます。

_redisConnection = await _redisConnectionFactory;

RedisConnection.cs クラスは、Azure Cache for Redis に接続するために不可欠な型を含めるために StackExchange.Redis および Azure.Identity 名前空間をファイルの先頭に含んでいます。

using StackExchange.Redis;
using Azure.Identity;

RedisConnection のコードは、StackExchange.Redis からの ConnectionMultiplexer インスタンスを管理することによって、キャッシュへの正常な接続が常に存在することを保証します。 接続が失われ、自動的に再接続できない場合、RedisConnection クラスによって再び接続が作成されます。

詳細については、StackExchange.Redis と、GitHub リポジトリのコードを参照してください。

サンプルのレイアウト ビュー

このサンプルのホーム ページ レイアウトは、_Layout.cshtml ファイルに格納されます。 このページから [Azure Cache for Redis テスト] をクリックして実際のキャッシュ テストを開始します。

  1. Views\Shared\_Layout.cshtml を開きます。

  2. <div class="navbar-header"> で確認できます。

    <a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="RedisCache">Azure Cache for Redis Test</a>
    

ウェルカム ページのスクリーンショット

キャッシュのデータの表示

サンプル出力を確認するには、ホーム ページから [Azure Cache for Redis テスト] を選択します。

  1. ソリューション エクスプローラーで、[Views] フォルダーを展開し、[Home] フォルダーを右クリックします。

  2. このコードは RedisCache.cshtml ファイルにあります。

    @{
        ViewBag.Title = "Azure Cache for Redis Test";
    }
    
    <h2>@ViewBag.Title.</h2>
    <h3>@ViewBag.Message</h3>
    <br /><br />
    <table border="1" cellpadding="10">
        <tr>
            <th>Command</th>
            <th>Result</th>
        </tr>
        <tr>
            <td>@ViewBag.command1</td>
            <td><pre>@ViewBag.command1Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command2</td>
            <td><pre>@ViewBag.command2Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command3</td>
            <td><pre>@ViewBag.command3Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command4</td>
            <td><pre>@ViewBag.command4Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command5</td>
            <td><pre>@ViewBag.command5Result</pre></td>
        </tr>
    </table>
    

アプリをローカルで実行する

  1. コマンド ウィンドウで次のコマンドを実行し、アプリをビルドします。

    dotnet build
    
  2. 次のコマンドを使用してアプリを実行します。

    dotnet run
    
  3. Web ブラウザーで https://localhost:5001 を参照します。

  4. Web ページにあるナビゲーション バーの [Azure Cache for Redis Test](Azure Cache for Redis テスト) を選択して、キャッシュへのアクセスをテストします。

ローカルで完了した簡単なテストのスクリーンショット

リソースをクリーンアップする

この記事で作成したリソースを引き続き使用する場合は、リソース グループを保持します。

それ以外の場合、リソースを使い終わったら、課金されないように、作成した Azure リソース グループを削除できます。

重要

リソース グループを削除すると、元に戻すことができません。 リソース グループを削除すると、そのリソース グループ内のすべてのリソースは完全に削除されます。 間違ったリソース グループやリソースをうっかり削除しないようにしてください。 リソースを既存のリソース グループ内に作成し、そのリソース グループ内に保持したいリソースが含まれている場合は、リソース グループを削除するのではなく、各リソースを個別に削除できます。

リソース グループを削除するには

  1. Azure portal にサインインし、 [リソース グループ] を選択します。

  2. 削除するリソース グループを選択します。

    多数のリソース グループがある場合は、[任意のフィールドのフィルター...] ボックスを使用し、この記事用に作成したリソース グループの名前を入力します。 結果リストでリソース グループを選びます。

    作業ペインの削除するリソース グループの一覧を示すスクリーンショット。

  3. [リソース グループの削除] を選択します。

  4. リソース グループの削除の確認を求めるメッセージが表示されます。 確認のためにリソース グループの名前を入力し、[削除] を選択します。

    削除を確認するためにリソース名を必要とするフォームを示すスクリーンショット。

しばらくすると、リソース グループとそのリソースのすべてが削除されます。