【问题标题】:azure powershell Get-Azurermresource, How to get unique ID of a specific resourceazure powershell Get-Azurermresource,如何获取特定资源的唯一 ID
【发布时间】:2019-10-09 21:29:20
【问题描述】:

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

【问题讨论】:

  • 如果您详细说明为什么需要确定可能命名相同的资源的部署之间的差异,这可能会有所帮助。例如,如果您删除了一个存储帐户,然后重新创建,那么为什么要让您的方案知道它们现在是不同的部署如此重要?

标签: azure azure-powershell


【解决方案1】:

就 Azure 平台而言,ResourceID 是 uniqueID。它包含订阅 ID 和资源的名称。虽然您是正确的,但如果您删除一个资源并在同一订阅中创建另一个同名的资源,它将具有相同的 ResourceID,它仍然唯一标识当时创建的资源。

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

如果您想要跨不同部署实例识别资源的东西,那么直接来自平台的信息可能更难做到。您可能必须自己处理。标记可能是一个选项,具体取决于您要完成的任务。

【讨论】:

    【解决方案2】:

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

    /subscriptions/a4cd20a0-af7c-4278-8875-dc54076450f8/resourceGroups/MY-ResourceGroup/providers/Microsoft.Compute/disks/my_dev_disk00455
    

    【讨论】:

    • 嗨,Ken,您的意思是,使用带有参数 ResourceGroupName 和 Provider 的“get-azurermresource”cmd-let??
    • 正确,get-azurermresource 列出了 ResourceID
    • 我不确定我是否理解正确,你能给我一些你后端命令 You You 的例子吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-27
    • 2018-10-20
    • 2019-09-06
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多