当我尝试调用 Set-AzureRmApiManagementPolicy PowerShell命令行开关来更新Azure API Management中的策略时,出现以下错误:
Set-AzureRmApiManagementPolicy:ValidationError:资源已被修改 最后检索。
仅在策略已存在时才会出现此错误。如果我删除该策略并重新运行它,那么它可以正常工作。因此,一旦政策已经存在,更新政策就会出现一些奇怪的问题。我知道这应该工作,因为如果我提前打电话给 Login-AzureRmAccount 并登录,我就能运行。然后更新现有策略。这似乎与我使用Api Management REST API进行身份验证的方式有关。我使用证书方法进行身份验证,这就是我不需要调用 Login-AzureRmAccount 的原因。有什么想法吗?
答案 0 :(得分:1)
事实证明这个问题是旧版“2014-02-14”api版本中的一个错误导致的。 PowerShell命令行开关( Set-AzureRmApiManagementPolicy )基本上编译为使用2014-02-14 api-version的简单REST调用。我通过调用 Get-Module -ListAvailable
检查了PowerShell模块 AzureRm.ApiManagement 的版本由于AzureManagement模块与我正在使用的Octopus平台捆绑在一起,因此我无法直接更新它。因此,我决定完全废弃使用PowerShell命令行开关的想法,直接调用Azure Management REST API。问题解决了。