共用方式為


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

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

跳至 GitHub 上的程式碼

複製 GitHub 上的存放庫 https://github.com/Azure-Samples/azure-cache-redis-samples/tree/main/quickstart/aspnet

必要條件

建立快取

接下來,請建立應用程式的快取。

  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 概觀窗格上監視部署進度。 當 [狀態] 顯示 [執行中] 時,表示快取已可供使用。

在快取上啟用 Microsoft Entra ID 驗證

如果您已有快取,請查看是否已啟用 Microsoft Entra 驗證。 若未啟用,請加以啟用。 建議您針對應用程式使用 Microsoft Entra ID。

  1. 在 Azure 入口網站中,選取 Azure Cache for Redis 執行個體,您想要在其中使用 Microsoft Entra 權杖型驗證。

  2. 從 [資源] 功能表中選取 [驗證]

  3. 簽入工作窗格,以查看是否已核取 [啟用 Microsoft Entra 驗證]。 若是如此,您可以繼續進行。

  4. 選取 [啟用 Microsoft Entra 驗證],然後輸入有效使用者的名稱。 當您選取 [儲存] 時,您輸入的使用者預設會自動獲指派「資料擁有者存取原則」。 您也可以輸入受控識別或服務主體,以連線到快取執行個體。

    此螢幕擷取畫面顯示資源功能表中選取的驗證,並已核取 [啟用 Microsoft Entra 驗證]。

  5. 隨即會顯示快顯對話方塊,詢問您是否要更新設定,並告知您此作業需要幾分鐘的時間。 選取 [是]

    重要

    一旦啟用作業完成,快取執行個體中的節點就會重新啟動以載入新的設定。 建議您在維護視窗期間或在忙碌的上班時間之外執行這項作業。 此作業最多可能需要 30 分鐘的時間。

如需搭配 Azure CLI 使用 Microsoft Entra ID 的詳細資訊,請參閱身分識別的參考頁面

編輯 CacheSecrets.config 檔案

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

  2. 編輯 Web.config 檔案。 然後,新增下列內容:

    <appSettings>
        <add key="RedisHostName" value="<cache-hostname>:<port-number>"/>
    </appSettings>
    
  3. 將 取代 <cache-hostname> 為您的快取主機名,因為它出現在 Azure 入口網站的 [概觀] 刀鋒視窗中

  4. 將取代 <port-number> 為您的快取主機埠號碼。

  5. 儲存檔案。

更新 MVC 應用程式

在本節中,您可以看到 MVC 應用程式,而其呈現對 Azure Cache for Redis 顯示簡單測試的檢視。 當 “RedisHostName” 組態指向您的 Azure 受控 Redis 實例時,MVC 應用程式可以連線到您的 Azure 受控 Redis 實例。

安裝 StackExchange.Redis

您的解決方案需要 StackExchange.Redis 套件才能執行。 使用此程序進行安裝:

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

  2. Package Manager Console 視窗執行下列命令:

    Install-Package Microsoft.Azure.StackExchangeRedis
    
  3. NuGet 封裝會下載並新增必要的組件參考,以讓用戶端應用程式使用 Microsoft.Azure.StackExchangeRedis 用戶端來存取 Azure Cache for Redis。

使用 RedisConnection 連線至快取

與快取的連線是由 RedisConnection 類別所管理。 首先從 ContosoTeamStats/Controllers/HomeController.cs 在此陳述式中建立連線:

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

RedisConnection.cs 中,您會看到 StackExchange.Redis 命名空間已新增至程式碼。 這是 RedisConnection 類別的必要項目。

using StackExchange.Redis;

RedisConnection 程式碼管理來自 StackExchange.RedisConnectionMultiplexer 執行個體,以確保對快取的連線一定良好。 當連線中斷且無法自動重新連線時,RedisConnection 類別會重新建立連線。

下列程式代碼行使用 Microsoft Entra ID 來連線到 Azure Cache for Redis 或 Azure 受控 Redis(預覽版),而不需密碼。

var configurationOptions = await ConfigurationOptions.Parse($"{_redisHostName}").ConfigureForAzureWithTokenCredentialAsync(new DefaultAzureCredential());

如需詳細資訊,請參閱 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 的 [方案總管] 中,以滑鼠右鍵按一下專案節點。 然後選取 [發佈]

    顯示 [發佈] 按鈕的螢幕快照。

  2. 選取 [Microsoft Azure App Service]、選取 [新建],然後選取 [發佈]

    顯示如何發佈至 App Service 的螢幕快照。

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

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

    顯示 [App Service] 對話框的螢幕快照。

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

  5. 在 Visual Studio 中監視 [輸出] 視窗,以查看發佈狀態。 應用程式發佈之後,系統會記錄應用程式的 URL:

    在輸出窗格中發佈信息的螢幕快照。

新增快取的應用程式設定

在發佈新的應用程式之後,請新增新的應用程式設定。 這項設定會用來儲存快取連線資訊。

新增應用程式設定

  1. 在 Azure 入口網站頂端的搜尋列中輸入應用程式名稱,以尋找您所建立的新應用程式。

    顯示如何在 Azure 入口網站 上尋找應用程式的螢幕快照。

  2. 新增名為 CacheConnection 的應用程式設定,以供應用程式用來連線至快取。 使用您在 web.config 檔案中設定RedisHostName的相同值。

    顯示如何新增應用程式設定的螢幕快照。

在 Azure 中執行應用程式

  1. 在您的瀏覽器中,移至應用程式的 URL。 該 URL 會顯示在 Visual Studio [輸出] 視窗中的發佈作業結果內。 此外,在 Azure 入口網站中,該 URL 也會提供於您建立的應用程式所屬的 [概觀] 頁面上。

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

清除資源

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

否則,若已完成資源使用,則可刪除您建立的 Azure 資源群組,以避免衍生費用。

重要

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

刪除資源群組

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

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

    如果有許多資源群組,請使用 [篩選任何欄位] 方塊,並輸入您針對本文所建立資源群組的名稱。 選取結果清單中的資源群組。

    此螢幕擷取畫面顯示工作窗格中要刪除的資源群組清單。

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

  4. 系統將會要求您確認是否刪除資源群組。 輸入您的資源群組名稱以進行確認,然後選取 [刪除]

    此螢幕擷取畫面顯示需要資源名稱才能確認刪除的表單。

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

下一步