【问题标题】:Azure DevOps PowerShell task fails to load 'Az.CosmosDB' moduleAzure DevOps PowerShell 任务无法加载“Az.CosmosDB”模块
【发布时间】:2021-01-10 00:33:07
【问题描述】:

我有一个 Azure DevOps 管道来轮换 Cosmos DB 帐户密钥。为此,我使用 PowerShell 和 New-AzCosmosDBAccountKey cmdlet。

由于某些未知原因,Az.CosmosDB 模块没有与Az 一起安装,因此每次运行管道时都需要手动安装。

Install-Module -Name Az.CosmosDb -AllowClobber -Force

当我在本地运行时,一切都按预期工作,但在 Azure DevOps 中我看到一个错误

在模块“Az.CosmosDB”中找到“Get-AzCosmosDBAccountKey”命令,但无法加载该模块。

Azure DevOps 中可能会发生什么与本地发生的不同?

【问题讨论】:

    标签: powershell azure-devops pipeline powershell-module


    【解决方案1】:

    这里的答案是对Az.CosmosDb 模块进行了更新,因此它特别需要Az.Accounts 的1.9.4(或更高版本)版本。但是,在 Azure DevOps 托管代理上,他们使用 1.9.3 版。

    为了修复,我更改了手动安装Az.CosmosDb 模块的命令-

    Install-Module -Name Az.CosmosDb -RequiredVersion 0.1.6 -AllowClobber -Force
    

    注意

    当我在 PowerShell 库中发现 Az.CosmosDb 模块的所有版本都是 1.0.0 时,我进行了一些调查,结果发现尽管 Cosmos DB 模块仍处于预览状态已经存在多年。这解释了为什么在安装 Az 时该模块没有与所有其他 Az.* 模块一起安装。

    非常令人沮丧的是,documentation 上的任何地方都没有提及它处于预览状态的模块。如果有的话,它可能会为我节省很多时间!

    【讨论】:

    • 很高兴看到您解决了这个问题。请Accept it as an Answer,这可能对阅读此主题的其他社区成员有所帮助。
    【解决方案2】:

    请在运行 DevOps Pipeline 时检查您正在使用哪个代理池。如果您使用 microsoft 托管代理,则每次运行管道时,您都会获得一个全新的虚拟机。虚拟机在使用一次后被丢弃。所以每次都需要手动安装Az.CosmosDB模块。

    您也可以在本地机器上部署代理,这样就不需要每次都手动安装Az.CosmosDB模块了。

    https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/agents?view=azure-devops&tabs=browser

    【讨论】:

    • 我使用的是托管代理,因此我在每次运行时都安装该模块。从阅读错误消息来看,问题似乎不是模块未安装,而是托管代理无法读取模块。
    • 手动安装模块时是否也出现此错误?
    • 是的,这就是全部问题 - 我正在手动安装模块,因为它没有与 Az 一起安装,因此最初在托管代理上不可用。要手动安装,我使用Install-Module -Name Az.CosmosDb -AllowClobber -Force。没有错误,并且模块似乎已安装,但是一旦我尝试使用模块中的 cmdlet,PowerShell 就会抛出问题中描述的错误。
    【解决方案3】:

    似乎今天 Azure DevOps 终于打破了一切,旧变种

    Install-Module Az.CosmosDB -RequiredVersion 0.1.6 -Force
    

    已停止工作。太棒了,Az DevOps 和 Azure 技术的整体体验几乎是一样的,每次它们只是突然停止在随机的地方工作!

    UPD:图库源地址已失效https://www.powershellgallery.com/packages/Az.CosmosDB/0.1.6,看来是这个原因

    【讨论】:

    猜你喜欢
    • 2020-02-15
    • 1970-01-01
    • 2017-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2020-07-28
    • 1970-01-01
    相关资源
    最近更新 更多