【问题标题】:How to get subscription id from the VM in AZURE如何从 AZURE 中的 VM 获取订阅 ID
【发布时间】:2016-11-03 05:42:07
【问题描述】:

有没有办法从 AZURE 中正在运行的 (LINUX)VM 实例获取订阅 ID?

WALinuxAgent 可以从内部服务器读取订阅 ID 吗?

【问题讨论】:

    标签: azure azure-virtual-machine


    【解决方案1】:

    这可以使用Azure Instance Metadata Service 来实现。从您的 VM 调用此服务将返回带有 SubscriptionId 的 JSON 以及其他有用数据。用于调用元数据服务的 Microsoft bash 脚本示例(请求中包含更新版本):

    sudo apt-get install curl
    sudo apt-get install jq
    curl -H Metadata:True "http://169.254.169.254/metadata/instance?api-version=2017-08-01&format=json" | jq .
    

    请参阅所提供链接中的“响应”部分以获取示例响应以及订阅 ID。

    【讨论】:

      【解决方案2】:

      您可以使用 powershell 来实现这一点。 首先。 什么样的虚拟机部署模型?

      ARM

      在这种情况下很简单。

      $vm = Get-AzureRmVM -ResourceGroupName $resourceGroupName -Name $vmName
      $vm.Id
      

      你会看到 - “/subscriptions/{subscriptionId}/...”

      经典

      如果您知道资源组 VM 已部署到,请使用以下内容:

      $resource = Get-AzureRmResource -ResourceGroupName $resourceGroupName -ResourceType Microsoft.ClassicCompute/virtualMachines -Name $vmName
      $resource.ResourceId
      

      同样——你会看到“/subscriptions/{subscriptionId}/...”

      resourceGroupName 的查找方法,如果未知(以防您编写一些自动脚本):

      $vm = Get-AzureVM | Where {$_.Name -eq $vmName}
      $service = Get-AzureService -ServiceName $vm.ServiceName
      $service.ExtendedProperties.ResourceGroup
      

      希望对你有帮助

      【讨论】:

      • 什么是 Linux 等价物,因为 Powershell 在 Linux 中不可用? Azure CLI 需要登录,这违背了自动化的目的
      猜你喜欢
      • 2017-08-26
      • 2020-04-20
      • 2021-02-14
      • 2019-03-03
      • 2022-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-22
      相关资源
      最近更新 更多