1

我正在使用 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 或等效项。

谢谢

4

2 回答 2

0

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

很有可能,您newguid在每次运行模板时都会在模板中创建一个新的资源ID,它恰好具有与用户通常看到的相同的“友好/显示名称”。

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

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

于 2020-11-04T02:06:42.243 回答
0

GitHub - 约翰·加德纳的帖子

是的,@dibyendupal05,那(没有确切的 [newGuid()] 代码是我在回复一些回复时的意思:

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

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

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

于 2021-08-11T13:50:43.270 回答