如何从AZURE中的VM获取订阅ID

时间:2016-11-03 05:42:07

标签: azure azure-virtual-machine

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

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

3 个答案:

答案 0 :(得分:2)

这可以使用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 .

请参阅提供的样本响应链接中的“响应”部分,其中包含subscriptionId。

答案 1 :(得分:1)

没有。您无法从VM获取订阅ID。 订阅ID可以从azure经典门户左侧菜单获得>设置。  或者您使用Get-AzureSubscription cmdlet通过powershell获取subscriptionID

答案 2 :(得分:0)

您可以使用powershell来实现此目的。 首先。 什么样的VM部署模型?

<强> 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

希望有所帮助