了解如何使用 Bicep 來部署使用 Azure Cache for Redis 的快取。 部署快取之後,請將它與現有的儲存體帳戶搭配使用,以保留診斷資料。 了解如何定義要部署哪些資源,以及如何定義執行部署時所指定的參數。 您可以直接在自己的部署中使用此 Bicep 檔案,或加以自訂以符合您的需求。
Bicep 是一種網域特定語言 (DSL),使用宣告式語法來部署 Azure 資源。 其提供簡潔的語法、可靠的類型安全,並支援程式碼重複使用。 Bicep 為 Azure 中的基礎結構即程式代碼解決方案提供最佳撰寫體驗。
先決條件
- Azure 訂用帳戶:如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶。
- 儲存體帳戶:若要建立帳戶,請參閱建立 Azure 儲存體帳戶。 儲存體帳戶會用於診斷資料。 在名為 exampleRG 的新資源群組中建立儲存體帳戶。
Azure Cache for Redis
檢閱 Bicep 檔案
此快速入門中使用的 Bicep 檔案是來自 Azure 快速入門範本。
@description('Specify the name of the Azure Redis Cache to create.')
param redisCacheName string = 'redisCache-${uniqueString(resourceGroup().id)}'
@description('Location of all resources')
param location string = resourceGroup().location
@description('Specify the pricing tier of the new Azure Redis Cache.')
@allowed([
'Basic'
'Standard'
'Premium'
])
param redisCacheSKU string = 'Standard'
@description('Specify the family for the sku. C = Basic/Standard, P = Premium.')
@allowed([
'C'
'P'
])
param redisCacheFamily string = 'C'
@description('Specify the size of the new Azure Redis Cache instance. Valid values: for C (Basic/Standard) family (0, 1, 2, 3, 4, 5, 6), for P (Premium) family (1, 2, 3, 4, 5)')
@allowed([
0
1
2
3
4
5
6
])
param redisCacheCapacity int = 1
@description('Specify name of Built-In access policy to use as assignment.')
@allowed([
'Data Owner'
'Data Contributor'
'Data Reader'
])
param builtInAccessPolicyName string = 'Data Reader'
@description('Specify name of custom access policy to create.')
param builtInAccessPolicyAssignmentName string = 'builtInAccessPolicyAssignment-${uniqueString(resourceGroup().id)}'
@description('Specify the valid objectId(usually it is a GUID) of the Microsoft Entra Service Principal or Managed Identity or User Principal to which the built-in access policy would be assigned.')
param builtInAccessPolicyAssignmentObjectId string = newGuid()
@description('Specify human readable name of principal Id of the Microsoft Entra Application name or Managed Identity name used for built-in policy assignment.')
param builtInAccessPolicyAssignmentObjectAlias string = 'builtInAccessPolicyApplication-${uniqueString(resourceGroup().id)}'
@description('Specify name of custom access policy to create.')
param customAccessPolicyName string = 'customAccessPolicy-${uniqueString(resourceGroup().id)}'
@description('Specify the valid permissions for the customer access policy to create. For details refer to https://aka.ms/redis/ConfigureAccessPolicyPermissions')
param customAccessPolicyPermissions string = '+@connection +get +hget allkeys'
@description('Specify name of custom access policy to create.')
param customAccessPolicyAssignmentName string = 'customAccessPolicyAssignment-${uniqueString(resourceGroup().id)}'
@description('Specify the valid objectId(usually it is a GUID) of the Microsoft Entra Service Principal or Managed Identity or User Principal to which the custom access policy would be assigned.')
param customAccessPolicyAssignmentObjectId string = newGuid()
@description('Specify human readable name of principal Id of the Microsoft Entra Application name or Managed Identity name used for custom policy assignment.')
param customAccessPolicyAssignmentObjectAlias string = 'customAccessPolicyApplication-${uniqueString(resourceGroup().id)}'
resource redisCache 'Microsoft.Cache/redis@2023-08-01' = {
name: redisCacheName
location: location
properties: {
enableNonSslPort: false
minimumTlsVersion: '1.2'
sku: {
capacity: redisCacheCapacity
family: redisCacheFamily
name: redisCacheSKU
}
redisConfiguration: {
'aad-enabled': 'true'
}
}
}
resource redisCacheBuiltInAccessPolicyAssignment 'Microsoft.Cache/redis/accessPolicyAssignments@2023-08-01' = {
name: builtInAccessPolicyAssignmentName
parent: redisCache
properties: {
accessPolicyName: builtInAccessPolicyName
objectId: builtInAccessPolicyAssignmentObjectId
objectIdAlias: builtInAccessPolicyAssignmentObjectAlias
}
}
resource redisCacheCustomAccessPolicy 'Microsoft.Cache/redis/accessPolicies@2023-08-01' = {
name: customAccessPolicyName
parent: redisCache
properties: {
permissions: customAccessPolicyPermissions
}
dependsOn: [
redisCacheBuiltInAccessPolicyAssignment
]
}
resource redisCacheCustomAccessPolicyAssignment 'Microsoft.Cache/redis/accessPolicyAssignments@2023-08-01' = {
name: customAccessPolicyAssignmentName
parent: redisCache
properties: {
accessPolicyName: customAccessPolicyName
objectId: customAccessPolicyAssignmentObjectId
objectIdAlias: customAccessPolicyAssignmentObjectAlias
}
dependsOn: [
redisCacheCustomAccessPolicy
]
}
Bicep 檔案中會定義下列資源:
部署 Azure Cache for Redis Bicep 檔案
將 Bicep 檔案以 main.bicep 儲存至本機電腦。
使用 Azure CLI 或 Azure PowerShell 部署 Bicep 檔案。
az deployment group create --resource-group exampleRG --template-file main.bicep --parameters existingDiagnosticsStorageAccountName=<storage-name> existingDiagnosticsStorageAccountResourceGroup=<resource-group>備註
將 <storage-name> 取代為您在本快速入門的開頭建立的儲存體帳戶名稱。 將 <resource-group> 取代為您儲存體帳戶所在的資源群組名稱。
當部署完成時,您會看到指出部署成功的訊息。
Azure Managed Redis
檢閱 Bicep 檔案
@description('Specify the name of the Azure Redis Cache to create.')
param redisCacheName string = 'redisCache-${uniqueString(resourceGroup().id)}'
@description('Location of all resources')
param location string = resourceGroup().location
resource redisEnterprise 'Microsoft.Cache/redisEnterprise@2024-05-01-preview' = {
name: redisCacheName
location: location
sku: {
name: 'Balanced_B5'
}
identity: {
type: 'None'
}
properties: {
minimumTlsVersion: '1.2'
}
}
resource redisEnterpriseDatabase 'Microsoft.Cache/redisEnterprise/databases@2024-05-01-preview' = {
name: 'default'
parent: redisEnterprise
properties:{
clientProtocol: 'Encrypted'
port: 10000
clusteringPolicy: 'OSSCluster'
evictionPolicy: 'NoEviction'
persistence:{
aofEnabled: false
rdbEnabled: false
}
}
}
Bicep 檔案中會定義下列資源:
部署 Bicep 檔案
將 Bicep 檔案以 main.bicep 儲存至本機電腦。
使用 Azure CLI 或 Azure PowerShell 部署 Bicep 檔案。
az deployment group create --resource-group exampleRG --template-file main.bicep
檢閱已部署的資源
使用 Azure 入口網站、Azure CLI 或 Azure PowerShell 來列出資源群組中已部署的資源。
az resource list --resource-group exampleRG
清理資源
如果不再需要,請刪除資源群組,這會刪除資源群組中的資源。
az group delete --name exampleRG
相關內容
- 深入了解 ARM 範本