【发布时间】:2016-11-03 05:42:07
【问题描述】:
有没有办法从 AZURE 中正在运行的 (LINUX)VM 实例获取订阅 ID?
WALinuxAgent 可以从内部服务器读取订阅 ID 吗?
【问题讨论】:
标签: azure azure-virtual-machine
有没有办法从 AZURE 中正在运行的 (LINUX)VM 实例获取订阅 ID?
WALinuxAgent 可以从内部服务器读取订阅 ID 吗?
【问题讨论】:
标签: azure azure-virtual-machine
这可以使用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。
【讨论】:
您可以使用 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
希望对你有帮助
【讨论】: