azure powershell Get-Azurermresource,如何获取特定资源的唯一ID

问题描述 投票:0回答:2

我正在准备一个脚本,我需要获取资源的特定ID,我尝试使用get-azurermresource,但它仅给我提供-ResourceId之类的值。对我来说,这不是此资源的唯一ID,因为当我们删除资源并用相同的名称重新创建资源时,ResourceId将是相同的。如果使用Azure VM,我可以使用cmd-let-> GetAzVM获得此唯一ID,我得到-> VmId : 604f7764-7ffe-4be0-b313-81ca9deda5ad。但是其余的资源呢?是否有其他方法可以提及其他资源的“唯一ID”?

azure azure-powershell
2个回答
1
投票

就Azure平台而言,ResourceID是唯一ID。它包含subscriptionId和资源名称。没错,但是,如果删除资源并在同一预订中创建另一个相同名称的资源,则它将具有相同的ResourceID,但此时它仍会唯一地标识创建的资源。

VmId是一个异常值,不仅用于唯一标识该VM,而且还可以跨其他可能创建,删除和重新创建的VM部署唯一标识该VM。这对于诸如许可之类的事情很有用,因为它是在SMBIOS级别设置的,无法更改。大多数(如果不是全部)其他资源类型没有这种类型的标识符。

如果您希望通过某种方法可以识别不同部署实例之间的资源,则可能更难处理直接来自平台的信息。您可能必须自己处理。标签可能是一个选择,具体取决于您要完成的工作。


1
投票

要获得真正唯一的ID,您需要将您的subscriptionID以及ResourceGroupName和Provider合并在一起。这就是我们在后端执行的操作。例如,用于服务结构的VM磁盘ResourceID看起来像这样(get-azurermresource将显示此内容):

/subscriptions/a4cd20a0-af7c-4278-8875-dc54076450f8/resourceGroups/MY-ResourceGroup/providers/Microsoft.Compute/disks/my_dev_disk00455
© www.soinside.com 2019 - 2024. All rights reserved.