Azure CLI 任务 "az sf cluster create" 因托管代理失败

Azure CLI task "az sf cluster create" fails with hosted agent

下面的命令是根据我在官方文档中找到的一个代码片段创建一个Linux Service Fabric集群。

最初是 bash 脚本,但在我的私人构建代理上不可用(需要 windows 内部程序??)所以我切换到批处理脚本。

我想知道为什么以下命令失败:

d:\a\r1\a>call az sf cluster create --resource-group "ha17aztestclustergroup"  --location "westeurope"  --certificate-output-folder . --certificate-password "433q6D7sdNKkd-.,6ck@6"  --certificate-subject-name "ha17rsomaztestsf.cloudapp.azure.com"  --cluster-name "ha17aztestcluster"  --cluster-size 3 --os UbuntuServer1604 --vault-name "ha17rsomaztestkeyvault"  --vault-resource-group "ha17aztestclustergroup"  --vm-password $VmPassword --vm-user-name "sfadmin" 
ERROR: az sf cluster: error: argument subcommand: invalid choice: create
usage: az sf cluster [-h]
                      {select,manifest,code-version,config-version,health} ...

安装了 AZ CLI 2.0.20 的完全相同的内联脚本确实适用于我的私人构建代理

Azure 托管代理 (VS2017) 安装了 AZ CLI 2.0.14。
但我怀疑这就是问题所在。

Hosted VS2017 安装了 Azure CLI 2.0.14,az sf cluster(2.0.21 包含)没有 create 命令,您可以通过添加 A​​zure CLI 任务,使用 z sf cluster --help 命令检查其命令。

因此,您可以设置一个私有构建代理并使用该代理进行构建。 Deploy an agent on Windows

我 运行 在部署不同的资源(Function Apps)时遇到了类似的问题。在比安装在托管代理上的版本更高的版本中修复了错误。

我最终解决了这个问题,方法是将此命令动态注入我的脚本,或者只是在我的版本中添加一个额外的 Azure CLI 步骤来更新 Azure CLI

pip install --pre azure-cli --extra-index-url https://azurecliprod.blob.core.windows.net/edge

不幸的是,更新代理需要将近 5 分钟,但我的所有版本现在都是可靠的。