快速入門:搭配使用 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。
必要條件
- Azure 訂用帳戶 - 建立免費帳戶
- Visual Studio 2019,包含 ASP.NET 與 Web 開發和 Azure 開發工作負載。
建立快取
接下來,請建立應用程式的快取。
若要建立快取,請登入 Azure 入口網站。 在入口網站功能表中,選取 [建立資源]。
在 [開始使用] 窗格中,於搜尋列中輸入「Azure Cache for Redis」。 在搜尋結果中,尋找「Azure Cache for Redis」,然後選取 [建立]。
在 [新增 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 概觀。 選取 [網路] 索引標籤,或選取 [下一步: 網路]。
在 [網路] 索引標籤上,選取要用於快取的連線方法。
選取 [進階] 索引標籤,或選取 [下一步: 進階]。
在 [進階] 窗格中,根據下列資訊驗證或選取驗證方法:
- 根據預設,對於新的基本、標準或進階快取,會啟用 Microsoft Entra 驗證並停用存取金鑰驗證。
- 對於基本或標準快取,您可以選擇非 TLS 連接埠的選取項目。
- 對於標準和進階快取,您可以選擇啟用可用性區域。 您無法在建立快取後停用可用性區域。
- 針對進階快取,設定適用於非 TLS 連接埠、叢集、受控識別和資料持續性的設定。
重要
為了獲得最佳安全性,建議您盡可能使用 Microsoft Entra ID 搭配受控識別來授權對快取的要求。 使用 Microsoft Entra ID 和受控識別進行授權,提供比共用存取金鑰授權更優異的安全性和易用性。 如需搭配快取使用受控識別的詳細資訊,請參閱使用 Microsoft Entra ID 進行快取驗證 (部分機器翻譯)。
(選用) 選取 [標籤] 索引標籤,或選取 [下一步: 標籤]。
(選用) 如果您想要分類快取資源,請在 [標籤] 索引標籤上輸入標籤名稱和值。
選取 [檢閱 + 建立] 按鈕。
在 [檢閱 + 建立] 索引標籤上,Azure 會自動驗證您的設定。
出現綠色的 [通過驗證] 訊息之後,請選取 [建立]。
新的快取部署會在幾分鐘內進行。 您可以在 Azure Cache for Redis 概觀窗格上監視部署進度。 當 [狀態] 顯示 [執行中] 時,表示快取已可供使用。
在快取上啟用 Microsoft Entra ID 驗證
如果您已有快取,請查看是否已啟用 Microsoft Entra 驗證。 若未啟用,請加以啟用。 建議您針對應用程式使用 Microsoft Entra ID。
在 Azure 入口網站中,選取 Azure Cache for Redis 執行個體,您想要在其中使用 Microsoft Entra 權杖型驗證。
從 [資源] 功能表中選取 [驗證]。
簽入工作窗格,以查看是否已核取 [啟用 Microsoft Entra 驗證]。 若是如此,您可以繼續進行。
選取 [啟用 Microsoft Entra 驗證],然後輸入有效使用者的名稱。 當您選取 [儲存] 時,您輸入的使用者預設會自動獲指派「資料擁有者存取原則」。 您也可以輸入受控識別或服務主體,以連線到快取執行個體。
隨即會顯示快顯對話方塊,詢問您是否要更新設定,並告知您此作業需要幾分鐘的時間。 選取 [是]。
重要
一旦啟用作業完成,快取執行個體中的節點就會重新啟動以載入新的設定。 建議您在維護視窗期間或在忙碌的上班時間之外執行這項作業。 此作業最多可能需要 30 分鐘的時間。
如需搭配 Azure CLI 使用 Microsoft Entra ID 的詳細資訊,請參閱身分識別的參考頁面。
編輯 CacheSecrets.config 檔案
在您的電腦上建立名為 CacheSecrets.config 的檔案。將該檔案放在範例應用程式的原始程式碼不會加以簽入的位置。 在本快速入門中,CacheSecrets.config 檔案位於 C:\AppSecrets\CacheSecrets.config。
編輯 Web.config 檔案。 然後,新增下列內容:
<appSettings> <add key="RedisHostName" value="<cache-hostname>:<port-number>"/> </appSettings>
將 取代
<cache-hostname>
為您的快取主機名,因為它出現在 Azure 入口網站的 [概觀] 刀鋒視窗中將取代
<port-number>
為您的快取主機埠號碼。儲存檔案。
更新 MVC 應用程式
在本節中,您可以看到 MVC 應用程式,而其呈現對 Azure Cache for Redis 顯示簡單測試的檢視。 當 “RedisHostName” 組態指向您的 Azure 受控 Redis 實例時,MVC 應用程式可以連線到您的 Azure 受控 Redis 實例。
安裝 StackExchange.Redis
您的解決方案需要 StackExchange.Redis
套件才能執行。 使用此程序進行安裝:
若要將應用程式設定為使用適用於 Visual Studio 的 StackExchange.Redis NuGet 套件,請選取 [工具] > [NuGet 套件管理員] > [套件管理員主控台]。
從
Package Manager Console
視窗執行下列命令:Install-Package Microsoft.Azure.StackExchangeRedis
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.Redis
的 ConnectionMultiplexer
執行個體,以確保對快取的連線一定良好。 當連線中斷且無法自動重新連線時,RedisConnection
類別會重新建立連線。
下列程式代碼行使用 Microsoft Entra ID 來連線到 Azure Cache for Redis 或 Azure 受控 Redis(預覽版),而不需密碼。
var configurationOptions = await ConfigurationOptions.Parse($"{_redisHostName}").ConfigureForAzureWithTokenCredentialAsync(new DefaultAzureCredential());
如需詳細資訊,請參閱 StackExchange.Redis 和 GitHub 存放庫中的程式碼。
範例中的版面配置檢視
此範例的首頁版面配置會儲存在 _Layout.cshtml 檔案中。 從此頁面按一下 [Azure Cache for Redis 測試],即可啟動實際的快取測試。
在 [方案總管] 中,展開 [檢視]>[共用] 資料夾。 然後開啟 _Layout.cshtml 檔案。
您會在
<div class="navbar-header">
中看到下行。@Html.ActionLink("Azure Cache for Redis Test", "RedisCache", "Home", new { area = "" }, new { @class = "navbar-brand" })
顯示來自快取的資料
從首頁中,選取 [Azure Cache for Redis 測試] 以查看範例輸出。
在 [方案總管] 中,展開 [檢視] 資料夾,然後在 [主資料夾] 資料夾上按一下滑鼠右鍵。
您應該會在 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 本機中裝載應用程式以進行測試和偵錯。
在本機執行應用程式
在 Visual Studio 中,選取 [偵錯]>[開始偵錯] 以在本機建置和啟動要測試和偵錯的應用程式。
在瀏覽器中,選取導覽列上的 [Azure Cache for Redis 測試]。
在下列範例中,
Message
金鑰先前具有快取值,此值是在入口網站中使用 Azure Cache for Redis 主控台設定的。 應用程式更新了該快取值。 應用程式也已執行PING
和CLIENT LIST
命令。
在 Azure 中發佈並執行
在本機成功測試應用程式後,您可以將應用程式部署至 Azure 並在雲端執行。
將應用程式發佈至 Azure
在 Visual Studio 的 [方案總管] 中,以滑鼠右鍵按一下專案節點。 然後選取 [發佈]。
選取 [Microsoft Azure App Service]、選取 [新建],然後選取 [發佈]。
在 [建立 App Service] 對話方塊中,進行下列變更:
設定 建議值 描述 應用程式名稱 使用預設值。 應用程式名稱會是應用程式部署至 Azure 時的主機名稱。 如有必要,該名稱中會新增時間戳記尾碼,以成為唯一名稱。 訂用帳戶 選擇 Azure 訂用帳戶。 系統會就任何相關的裝載費用,對此訂用帳戶收費。 如果您有多個 Azure 訂用帳戶,請確認您已選取所需的訂用帳戶。 資源群組 使用您用來建立快取的相同資源群組 (例如 TestResourceGroup)。 資源群組可協助您以群組管理所有資源。 其後當您想要刪除應用程式時,請直接刪除該群組即可。 App Service 計劃 選取 [新增],然後建立名為 TestingPlan 的新 App Service 方案。
使用您在建立快取時所使用的相同位置。
選擇免費大小。App Service 方案會針對要搭配執行的 Web 應用程式定義一組計算資源。 在您設定 App Service 裝載設定後,請選取 [建立]。
在 Visual Studio 中監視 [輸出] 視窗,以查看發佈狀態。 應用程式發佈之後,系統會記錄應用程式的 URL:
新增快取的應用程式設定
在發佈新的應用程式之後,請新增新的應用程式設定。 這項設定會用來儲存快取連線資訊。
新增應用程式設定
在 Azure 入口網站頂端的搜尋列中輸入應用程式名稱,以尋找您所建立的新應用程式。
新增名為 CacheConnection 的應用程式設定,以供應用程式用來連線至快取。 使用您在 web.config 檔案中設定
RedisHostName
的相同值。
在 Azure 中執行應用程式
在您的瀏覽器中,移至應用程式的 URL。 該 URL 會顯示在 Visual Studio [輸出] 視窗中的發佈作業結果內。 此外,在 Azure 入口網站中,該 URL 也會提供於您建立的應用程式所屬的 [概觀] 頁面上。
選取導覽列上的 [Azure Cache for Redis 測試] 來測試快取存取,就像使用本機版本一樣。
清除資源
如果您想要繼續使用在本文中建立的資源,請保留該資源群組。
否則,若已完成資源使用,則可刪除您建立的 Azure 資源群組,以避免衍生費用。
重要
刪除資源群組是無法回復的動作。 當您刪除資源群組時,其中包含的所有資源都將永久刪除。 請確定您不會不小心刪除錯誤的資源群組或資源。 如果您是在包含需保留資源的現有資源群組內部建立資源,則可以個別刪除每個資源,而不必刪除整個資源群組。
刪除資源群組
登入 Azure 入口網站,然後選取 [資源群組]。
選取您想要刪除的資源群組。
如果有許多資源群組,請使用 [篩選任何欄位] 方塊,並輸入您針對本文所建立資源群組的名稱。 選取結果清單中的資源群組。
選取 [刪除資源群組]。
系統將會要求您確認是否刪除資源群組。 輸入您的資源群組名稱以進行確認,然後選取 [刪除]。
不久後,系統便會刪除該資源群組及其所有的資源。