有没有办法从AZURE中的正在运行的(LINUX)VM实例获取订阅ID?
WALinuxAgent可以从内部服务器读取订阅ID吗?
答案 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
希望有所帮助