Azure Monitor工作簿-如何通过代码进行更新?

问题描述

我正在使用New-AzResourceGroupDeployment部署Azure工作簿。我在部署新工作簿时可以很好地工作,但是是否可以通过此cmdlet(或创建z部署组)对该工作簿进行更新?

如果我在顶部部署(具有相关的访问级别),则会得到以下信息:

Status Message: A Workbook with the same name already exists within this subscription. (Code:Conflict)

该门户允许编辑现有工作簿,如何通过代码复制此工作簿?我似乎找不到更新cmdlet或等效项。

谢谢

解决方法

工作簿的“显示名称”用作“好”名称,但是,工作簿也具有唯一的ID。

机会是,您每次运行模板时,模板中都有newguid或正在创建新资源 id 的内容,它恰好具有相同的“友好/显示”名称”,这是用户通常看到的。

(之所以存在这种区别,是因为门户网站对资源 id 值中可以包含哪些字符有规定,但是我们不希望限制工作簿用户仅使用[a-z0-9_]来为其命名工作簿)

如果要再次覆盖同一工作簿,则需要更新模板以正确地重新使用模板的 id 部分,以便ARM尝试更新相同的资源,而不是更新创建一个具有不同 id但具有相同显示/友好名称的 new 工作簿?

,

GitHub - John Gardner post

是的,@dibyendupal05,那个(没有确切的 [newGuid()] 代码就是我回帖时的意思:

如果您每次都为 workbookId 使用新的 guid,则不会再次创建相同的工作簿。您正在创建一个具有新 ID 的新工作簿,但重复使用了相同的显示名称,这与具有相同名称的其他内容相冲突。

我们示例中的默认假设是您需要一个新工作簿。如果您正在修改它以创建/更新相同的工作簿,则必须在某处设置显式 ID,否则您将收到关于重复名称的错误。

正如dibyendupal05所说,如果你想使用模板来更新现有资源,你不能在里面使用newGuid,你必须显式设置一个id,并继续使用那个id,这样你就可以运行相同的模板并更新同一个工作簿,而不是尝试创建一个恰好具有相同显示名称的新工作簿。