共用方式為


快速入門:搭配使用 Azure Cache for Redis 與 ASP.NET Web 應用程式

在本快速入門中,您會使用 Visual Studio 2019 修改 ASP.NET Web 應用程式,並連線至 Azure Cache for Redis 以儲存資料和從快取取得資料。 接著,您會將應用程式部署到 Azure App Service。

跳至程式碼

本文說明如何修改範例應用程式的程式碼,以建立連線至 Azure Cache for Redis 的工作應用程式。

如果您想要直接前往範例程式碼,請參閱 GitHub 上的 ASP.NET 快速入門範例

必要條件

建立快取

接下來,建立要與應用程式搭配使用的快取。

  1. 若要建立快取,請登入 Azure 入口網站。 在入口網站功能表中,選取 [建立資源]

    顯示 Azure 入口網站左側瀏覽窗格中醒目提示顯示「建立資源」選項的螢幕擷取畫面。

  2. 在 [開始使用] 窗格中,於搜尋列中輸入「Azure Cache for Redis」。 在搜尋結果中,尋找「Azure Cache for Redis」,然後選取 [建立]

    顯示 Azure Marketplace 的螢幕擷取畫面,搜尋方塊中有 Azure Cache for Redis,且「建立」按鈕已醒目顯示。

  3. 在 [新增 Azure Cache for Redis] 窗格的 [基本] 索引標籤上,為您的快取設定下列設定:

    設定 動作 描述
    訂用帳戶 選取 Azure 訂閱。 用於建立新 Azure Cache for Redis 執行個體的訂用帳戶。
    資源群組 選取資源群組,或選取 [新建] 並輸入新的資源群組名稱。 用來建立快取和其他資源的資源群組名稱。 將所有的應用程式資源放在一個資源群組中,您將可輕鬆地一併管理或刪除這些資源。
    DNS 名稱 輸入唯一名稱。 快取名稱必須是 1 到 63 個字元的字串,且只能包含數字、字母和連字號。 名稱的開頭和結尾必須是數字或字母,且不可包含連續的連字號。 快取執行個體的主機名稱\<DNS name>.redis.cache.windows.net
    地點 選取位置。 靠近使用您快取其他服務的 Azure 區域
    快取 SKU 選取 [SKU] 快取的可用大小、效能和功能參數取決於 SKU。 如需詳細資訊,請參閱 Azure Cache for Redis 概觀
    快取大小 選取快取大小。 如需詳細資訊,請參閱 Azure Cache for Redis 概觀
  4. 選取 [網路] 索引標籤,或選取 [下一步: 網路]

  5. 在 [網路] 索引標籤上,選取要用於快取的連線方法。

  6. 選取 [進階] 索引標籤,或選取 [下一步: 進階]

  7. 在 [進階] 窗格中,根據下列資訊驗證或選取驗證方法:

    螢幕擷取畫面:顯示 [進階] 窗格,以及可供選取的可用選項。

    • 根據預設,對於新的基本、標準或進階快取,會啟用 Microsoft Entra 驗證並停用存取金鑰驗證
    • 對於基本或標準快取,您可以選擇非 TLS 連接埠的選取項目。
    • 對於標準和進階快取,您可以選擇啟用可用性區域。 您無法在建立快取後停用可用性區域。
    • 針對進階快取,設定適用於非 TLS 連接埠、叢集、受控識別和資料持續性的設定。

    重要

    為了獲得最佳安全性,建議您盡可能使用 Microsoft Entra ID 搭配受控識別來授權對快取的要求。 使用 Microsoft Entra ID 和受控識別進行授權,提供比共用存取金鑰授權更優異的安全性和易用性。 如需搭配快取使用受控識別的詳細資訊,請參閱使用 Microsoft Entra ID 進行快取驗證 (部分機器翻譯)。

  8. (選用) 選取 [標籤] 索引標籤,或選取 [下一步: 標籤]

  9. (選用) 如果您想要分類快取資源,請在 [標籤] 索引標籤上輸入標籤名稱和值。

  10. 選取 [檢閱 + 建立] 按鈕。

    在 [檢閱 + 建立] 索引標籤上,Azure 會自動驗證您的設定。

  11. 出現綠色的 [通過驗證] 訊息之後,請選取 [建立]

新的快取部署會在幾分鐘內進行。 您可以在 Azure Cache for Redis 概觀窗格上監視部署進度。 當 [狀態] 顯示 [執行中] 時,表示快取已可供使用。

取得主機名稱、連接埠和存取金鑰

若要連線 Azure Cache for Redis 伺服器,快取用戶端需要快取的主機名稱、連接埠和存取金鑰。 某些用戶端可能會使用略有不同的名稱來參考這些項目。 您可以在 Azure 入口網站中取得主機名稱、連接埠和金鑰。

  • 若要取得快取的存取金鑰:

    1. 在 Azure 入口網站中,移至您的快取。
    2. 在服務功能表上的 [設定] 底下,選取 [驗證]
    3. 在 [驗證] 窗格中,選取 [存取金鑰] 索引標籤。
    4. 若要複製存取金鑰的值,請選取金鑰欄位中的 [複製] 圖示。

    螢幕擷取畫面顯示如何尋找和複製 Azure Cache for Redis 執行個體的存取金鑰。

  • 若要取得快取的主機名稱和連接埠:

    1. 在 Azure 入口網站中,移至您的快取。
    2. 在服務功能表上,選取 [概觀]
    3. 在 [基本資訊] 底下,針對 [主機名稱],選取 [複製] 圖示以複製主機名稱值。 主機名稱值的格式為 <DNS name>.redis.cache.windows.net
    4. 針對 [連接埠],選取 [複製] 圖示以複製連接埠值。

    螢幕擷取畫面顯示如何尋找和複製 Azure Cache for Redis 執行個體的主機名稱和連接埠。

編輯 CacheSecrets.config 檔案

  1. 在您的電腦上建立名為 CacheSecrets.config 的檔案。將該檔案放在範例應用程式的原始程式碼不會加以簽入的位置。 在本快速入門中,CacheSecrets.config 檔案位於 C:\AppSecrets\ 資料夾中。

  2. 編輯 CacheSecrets.config 檔案,並新增下列內容。

    在程式碼中:

    • <cache-name> 取代為快取主機名稱。

    • <access-key> 取代為快取的主要存取金鑰。

      提示

      您可以在金鑰輪替期間使用次要存取金鑰作為重新產生主要存取金鑰時的替代金鑰。

    <appSettings>
        <add key="CacheConnection" value="<cache-name>.redis.cache.windows.net,abortConnect=false,ssl=true,allowAdmin=true,password=<access-key>"/>
    </appSettings>
    
  3. 儲存檔案。

更新 MVC 應用程式

在本節中,model-view-controller (MVC) 應用程式會顯示對 Azure Cache for Redis 連線的簡單測試。

web.config 檔案如何連線至快取

當您在本機執行應用程式時,CacheSecrets.config 中的資訊會用來連線到您的 Azure Cache for Redis 執行個體。 稍後,您可以將此應用程式部署至 Azure。 屆時,您將會在 Azure 中設定應用程式設定,以供應用程式用來擷取快取連線資訊,而不是使用組態檔。

由於 CacheSecrets.config 檔案不會隨著應用程式部署至 Azure,因此您只會在本機測試應用程式時使用它。 請以最安全的方式保存這項資訊,以協助防止他人惡意存取快取資料。

更新 web.config 檔案

  1. 在 [方案總管] 中,開啟 web.config 檔案。

    顯示 Visual Studio 方案總管中 web.config 檔案的螢幕擷取畫面。

  2. web.config 檔案中 ,將 <appSettings> 元素設定為在本機執行應用程式:

    <appSettings file="C:\AppSecrets\CacheSecrets.config">

ASP.NET 執行階段會將外部檔案的內容與 <appSettings> 元素的標記合併。 如果找不到指定的檔案,則執行階段會略過檔案屬性。 您的密碼 (您的快取的連接字串) 不會包含在應用程式的原始程式碼中。 將 Web 應用程式部署至 Azure 時,不會部署 CacheSecrets.config 檔案。

安裝 StackExchange.Redis

您的解決方案需要 StackExchange.Redis 套件才能執行。

若要安裝 StackExchange.Redis 套件:

  1. 若要將應用程式設定為使用適用於 Visual Studio 的 StackExchange.Redis NuGet 套件,請選取 [工具]>[NuGet 套件管理員]>[套件管理員主控台]

  2. 在 [套件管理員主控台] 視窗中,執行下列命令:

    Install-Package StackExchange.Redis
    

NuGet 套件會下載並新增必要的組件參考,以讓用戶端應用程式使用 StackExchange.Redis 用戶端來存取 Azure Cache for Redis。

使用 RedisConnection 連線到快取

與快取的連線是由 RedisConnection 類別所管理。 連線會先在此陳述式中建立,其位於 ContosoTeamStats/Controllers/HomeController.cs

   private static Task<RedisConnection> _redisConnectionFactory = RedisConnection.InitializeAsync(connectionString: ConfigurationManager.AppSettings["CacheConnection"].ToString()););

CacheConnection 祕密的值可透過使用祕密管理員設定提供者進行存取,並用作密碼參數。

RedisConnection.cs中,您可以看到 StackExchange.Redis 命名空間已新增至程式碼。 RedisConnection 類別需要命名空間。

using StackExchange.Redis;

RedisConnection 程式碼可確保快取一律有狀況良好的連線。 連線是透過 StackExchange.Redis 中的 ConnectionMultiplexer 執行個體來管理。 當連線中斷且無法自動重新連線時,RedisConnection 類別會重新建立連線。

如需詳細資訊,請參閱 StackExchange.RedisGitHub 存放庫中的程式碼。

驗證範例中的版面配置檢視

此範例的首頁版面配置會儲存在 _Layout.cshtml 檔案中。 在此頁面上選取 [Azure Cache for Redis 測試],即可啟動實際的快取測試。

  1. 在 [方案總管] 中,選取 [檢視],然後以滑鼠右鍵按一下 [共用] 資料夾。 然後,開啟 _Layout.cshtml 檔案。

  2. 確認下列這一行位於 <div class="navbar-header"> 中:

    @Html.ActionLink("Azure Cache for Redis Test", "RedisCache", "Home", new { area = "" }, new { @class = "navbar-brand" })
    

    顯示網頁上歡迎和瀏覽選項的螢幕擷取畫面。

顯示快取中的資料

在首頁上,選取導覽列中的 [Azure Cache for Redis 測試],以查看範例輸出。

  1. 在 [方案總管] 中,選取 [檢視],然後以滑鼠右鍵按一下 [首頁] 資料夾。

  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>
    

在本機執行應用程式

根據預設,專案已設定為在 IIS Express 本機中裝載應用程式以進行測試和偵錯。

若要在本機執行應用程式:

  1. 在 Visual Studio 中,選取 [偵錯]>[開始偵錯] 以在本機建置和啟動要測試和偵錯的應用程式。

  2. 在瀏覽器中,選取導覽列上的 [Azure Cache for Redis 測試]

  3. 在下列範例中,Message 金鑰先前具有快取值,此值是在入口網站中使用 Azure Cache for Redis 主控台設定的。 應用程式更新了該快取值。 應用程式也已執行 PINGCLIENT LIST 命令。

    顯示本機已完成簡單測試的螢幕擷取畫面。

在 Azure 中發佈並執行

在本機成功測試應用程式後,您可以將應用程式部署至 Azure 並在雲端執行。

將應用程式發佈至 Azure:

  1. 在 Visual Studio 中,於 [方案總管] 中以滑鼠右鍵按一下專案節點,然後選取 [發佈]

    顯示 Azure 中醒目提示 [發佈] 功能表命令的螢幕擷取畫面。

  2. 選取 [Microsoft Azure App Service]>[新建]>[發佈]

    顯示要發佈至 App Service 之功能表選項的螢幕擷取畫面。

  3. 在 [建立 App Service] 對話方塊中,進行下列變更:

    設定 動作 描述
    應用程式名稱 使用預設值。 應用程式名稱會是應用程式部署至 Azure 時的主機名稱。 該名稱中會新增時間戳記尾碼,以成為唯一的應用程式名稱。
    訂用帳戶 選取 Azure 訂閱。 系統會就任何相關的裝載費用,對此訂用帳戶收費。 如果您有多個 Azure 訂用帳戶,請確認您已選取要使用的訂用帳戶。
    資源群組 使用您用來建立快取的相同資源群組 (例如 TestResourceGroup)。 資源群組可協助您以群組管理所有資源。 稍後,當您想要刪除應用程式時,可以刪除資源群組以刪除所有相關資源。
    App Service 計劃 選取 [新增],然後建立名為 TestingPlan 的新 App Service 方案。
    針對您在建立快取時所使用的 [位置] 使用相同的值。
    針對大小,選取 [免費]
    App Service 方案會針對要搭配執行的 Web 應用程式定義一組計算資源。

    顯示 Azure 中 App Service 對話方塊的螢幕擷取畫面。

  4. 在您設定 App Service 主機設定後,請選取 [建立]

  5. 在 [輸出] 視窗中,檢查發佈狀態。 發佈應用程式之後,應用程式的 URL 會顯示為輸出:

    顯示 Visual Studio 中發佈輸出視窗的螢幕擷取畫面。

新增快取的應用程式設定

發佈新的應用程式之後,請在 Azure 入口網站中新增應用程式設定。 此設定會儲存快取連線資訊。

若要新增應用程式設定:

  1. 在 Azure 入口網站中,在搜尋列中輸入應用程式的名稱。

    顯示在 Azure 入口網站中搜尋應用程式的螢幕擷取畫面。

  2. 新增名為 CacheConnection 的應用程式設定,以供應用程式用來連線至快取。 使用您在 CacheSecrets.config 檔案中用於 CacheConnection 的相同值。 該值包含快取的主機名稱和存取金鑰。

    顯示新增應用程式設定的螢幕擷取畫面。

在 Azure 中執行應用程式

  1. 在您的瀏覽器中,移至應用程式的 URL。 該 URL 會顯示在 Visual Studio [輸出] 視窗中的發佈作業結果內。 它也會出現在您應用程式 [概觀] 窗格上的 Azure 入口網站中。

  2. 在網頁導覽列上,選取 [Azure Cache for Redis 測試] 來測試快取存取,就像使用本機版本一樣。

清除資源

如果您想要繼續使用在本文中建立的資源,請保留該資源群組。

否則,若要避免與資源相關的費用,如果您完成使用資源,可以刪除您所建立的 Azure 資源群組。

警告

刪除資源群組是無法回復的動作。 當您刪除資源群組時,資源群組中的所有資源都將永久刪除。 請確定您不會不小心刪除錯誤的資源群組或資源。 如果您是在具有想要保留資源的現有資源群組內建立資源,則可以個別刪除每個資源,而不必刪除整個資源群組。

刪除資源群組

  1. 登入 Azure 入口網站,然後選取 [資源群組]

  2. 選取要刪除的資源群組。

    如果有許多資源群組,請在 [篩選任何欄位] 中,輸入您建立以完成本文的資源群組名稱。 在搜尋結果清單中,選取資源群組。

    顯示要從中選擇以刪除之資源群組清單的螢幕擷取畫面。

  3. 選取 [刪除資源群組]

  4. 在 [刪除資源群組] 窗格中,輸入要確認的資源群組名稱,然後選取 [刪除]

    螢幕擷取畫面顯示需要輸入資源名稱以確認刪除的方塊。

不久後,系統便會刪除該資源群組及其所有的資源。