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

Azure Monitor Workbooks - How to make updates via code?

我正在使用 New-AzResourceGroupDeployment 部署 Azure 工作簿。这在我部署新工作簿时工作正常,但是否可以通过此 cmdlet(或 az deployment group create)更新该工作簿?

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

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

该门户允许编辑现有工作簿,我如何通过代码复制它?我似乎找不到 update- cmdlet 或等效命令。

谢谢

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

很有可能,你在模板中有 newguid 或其他东西,它正在创建一个新资源 id 每次你 运行 模板,它只是恰好具有相同的“friendly/display 名称”,这是用户通常看到的。

(存在这种区别是因为门户网站有关于资源 id 值中可以包含哪些字符的规则,但我们不想限制工作簿用户只能使用 [a-z0-9_] 为他们的工作簿命名)

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

GitHub - John Gardner post

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

if you're using a new guid for workbookId every time, you aren't creating the same workbook again. you're creating a new workbook with a new id, but reusing the same display name, which conflicts with something else with the same name.

我们示例中的默认假设是您需要一个新工作簿。如果您将此修改为 create/update 同一个工作簿,则必须在某处设置显式 ID,否则您将收到有关重复名称的错误。

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