使用 CLI 管理缓存节点


本文概述了如何使用 Azure CLI 创建、配置和部署Microsoft连接缓存企业缓存节点。

先决条件:

  1. 安装 Azure CLI如何安装 Azure CLI
  2. 安装连接的缓存扩展:通过以下命令安装连接的缓存扩展
az extension add --name mcc

若要了解有关安装扩展的详细信息,请参阅 安装连接的缓存扩展。



1. 创建资源组

第一步是创建资源组(如果还没有资源组)。 Azure 资源组是在其中部署和管理 Azure 资源的逻辑容器。

若要创建资源组,请使用 az group create。 可 在此处找到有关此 CLI 命令的更多详细信息。

az group create --name myrg --location westus

创建资源组后,需要创建Microsoft连接缓存企业资源。

2.创建连接的缓存 Azure 资源

连接的缓存 Azure 资源是可在其中创建缓存节点的顶级 Azure 资源。

若要创建连接的缓存 Azure 资源,请使用 az mcc ent resource create

az mcc ent resource create --mcc-resource-name mymccresource --resource-group myrg

重要提示

在输出中,查找 operationStatus。 operationStatus = Succeeded 表示我们的服务已成功开始创建连接的缓存资源。


下一步是在此资源下创建缓存节点。

3.创建缓存节点

若要创建缓存节点,请使用 az mcc ent node create

az mcc ent node create --cache-node-name mycachenode --mcc-resource-name mymccresource --resource-group myrg --host-os <linux or windows>

重要提示

在输出中,查找 operationStatus。 operationStatus = Succeeded 表示我们的服务已成功开始创建缓存节点。


4.确认创建缓存节点

在开始配置缓存节点之前,需要确认已成功创建缓存节点。

若要确认缓存节点创建,请使用 az mcc ent node show


az mcc ent node show --cache-node-name mycachenode --mcc-resource-name mymccresource --resource-group myrg  

重要提示

在输出中查找 cacheNodeState。 如果 cacheNodeState = 未配置,则可以继续执行缓存节点配置。 如果 cacheNodeState = 注册正在进行中,则缓存节点仍在创建过程中。 请再等待一两分钟,然后再次运行命令。


确认成功创建缓存节点后,可以继续配置缓存节点。

5.配置缓存节点

若要配置缓存节点,请使用 az mcc ent node update

以下示例配置启用了代理的 Linux 缓存节点:

az mcc ent node update --cache-node-name <mycachenode> --mcc-resource-name <mymccresource> --resource-group <myrg>
--cache-drive "[{physical-path:</physical/path>,size-in-gb:<size of cache drive>},{</physical/path>,size-in-gb:<size of cache drive>}...]"> --proxy <enabled> --proxy-host <"proxy host name"> --proxy-port <proxy port>  --auto-update-day <day of week> --auto-update-time <time of day> --auto-update-week <week of month> --auto-update-ring <update ring>

注意

  • 对于要在 Windows 主机 OS 上部署的缓存节点,缓存驱动器的物理路径 必须为/var/mcc
  • 在输出中,查找 operationStatus。 operationStatus = Succeeded 表示我们的服务已成功更新缓存节点。 你还将看到 cacheNodeState 将显示 “未预配”。
  • 请保存 physicalPath、sizeInGb、proxyPort、proxyHostName 的值, 因为构造预配脚本需要这些值。

6.获取缓存节点的预配详细信息

成功配置缓存节点后,下一步是将缓存节点部署到主机计算机。 若要部署缓存节点,需要创建包含相关信息的预配脚本。

若要获取预配脚本的相关信息,请使用 az mcc ent node get-provisioning-details

az mcc ent node get-provisioning-details --cache-node-name mycachenode --mcc-resource-name mymccresource --resource-group myrg

重要提示

  • 保存 cacheNodeId、customerKey、mccResourceId 和 registrationKey 的结果值。 创建预配脚本需要这些 GUID。
  • 在输出中查找 cacheNodeState。 如果 cacheNodeState = 未预配,则可以继续缓存节点预配。
  • 如果 cacheNodeState = 未配置,则表示尚未配置缓存节点。 在预配之前配置缓存节点。

下一步

若要将缓存节点部署到 Windows 主机计算机,请参阅

若要将缓存节点部署到 Linux 主机计算机,请参阅


批量创建和配置多个缓存节点的示例脚本:

下面是有关如何编写已连接缓存 Azure 资源以及多个连接缓存缓存节点的批量创建和配置的脚本的伪代码示例:

#Define variables
$mccResourceName = "myMCCResource"
$cacheNodeName = "demo-node"
$cacheNodeOperatingSystem = "Windows"
$resourceGroup = "myRG"
$resourceLocation = "westus"
$cacheNodesToCreate = 2
$proxyHost = "myProxy.com"
$proxyPort = "8080"
$waitTime = 3

# Create Microsoft Connected Cache Azure resource
az mcc ent resource create --mcc-resource-name $mccResourceName --location $resourceLocation --resource-group $resourceGroup

#Loop through $cacheNodesToCreate iterations
for ($cacheNodeNumber = 1; $cacheNodeNumber -le $cacheNodesToCreate; $cacheNodeNumber++) {
    $iteratedCacheNodeName = $cacheNodeName + "-" + $cacheNodeNumber
    
    #Create cache node
    az mcc ent node create --cache-node-name $iteratedCacheNodeName --mcc-resource-name $mccResourceName --host-os $cacheNodeOperatingSystem --resource-group $resourceGroup

    #Get cache node state
    $cacheNodeState = $(az mcc ent node show --cache-node-name $iteratedCacheNodeName --mcc-resource-name $mccResourceName --resource-group $resourceGroup --query "cacheNodeState") | ConvertFrom-Json

    $howLong = 0
    #Wait until cache node state returns "Not Configured"
    while ($cacheNodeState -ne "Not Configured") {
        Write-Output "Waiting for cache node creation to complete...$howLong seconds"
        Start-Sleep -Seconds $waitTime
        $howLong += $waitTime
    
        $cacheNodeState = $(az mcc ent node show --cache-node-name $iteratedCacheNodeName --mcc-resource-name $mccResourceName --resource-group $resourceGroup --query "cacheNodeState") | ConvertFrom-Json
    }

    #Configure cache node
    az mcc ent node update --cache-node-name $iteratedCacheNodeName --mcc-resource-name $mccResourceName --resource-group $resourceGroup --cache-drive  "[{physical-path:/var/mcc,size-in-gb:50}]" --proxy enabled --proxy-host $proxyHost --proxy-port $proxyPort
}