【问题标题】:Azure VM metadata missing / emtpy publicIpAddressAzure VM 元数据丢失/空 publicIpAddress
【发布时间】:2020-07-03 16:40:08
【问题描述】:

在 Azure VM 上查询元数据时,publicIpAddress 没有任何值,即使机器是公共 IP。

curl -H Metadata:true "http://169.254.169.254/metadata/instance?api-version=2019-11-01"

为 publicIpAddress 返回一个空字符串

{
  "compute": {
    // ... Omitted for brevity
  },
  "network": {
    "interface": [
      {
        "ipv4": {
          "ipAddress": [
            {
              "privateIpAddress": "10.3.0.4",
              "publicIpAddress": ""
            }
          ],
         // ... Rest has been omitted for brevity

有人知道为什么吗?我检查了https://docs.microsoft.com/en-us/azure/virtual-machines/windows/instance-metadata-service,但找不到公共 IP 地址不显示的任何原因

【问题讨论】:

    标签: azure metadata azure-vm


    【解决方案1】:

    我认为您的公共 IP 地址是 Standard SKU 而不是 Basic SKU,它不支持实例元数据服务。

    来自MSDN

    使用实例元数据服务 IMDS 时,仅具有基本 SKU 的公共 IP 地址可用。不支持标准 SKU。

    这个GitHub Issue也有更多信息。

    我还用基本和标准 SKU 的公共 IP 地址对此进行了测试,标准 SKU 在查询实例元数据实例 API 时会给你"publicIpAddress":""

    解决方案

    为了能够使用实例元数据服务,您需要使用基本 SKU 公网 IP 地址。您无法在创建公共 IP 地址后更改 SKU,如 MSDN 中突出显示的那样。

    相反,您可以先将 Standard SKU 公共 IP 地址实例与虚拟机网络接口解除关联,使用 Basic SKU 创建一个新的公共 IP 地址,然后将其关联公共 IP 地址与您的虚拟机网络接口。这是必需的,因为网络接口只能有一个与之关联的公共 IP 地址。

    检查公共 IP 地址 SKU

    您可以从 Azure PowerShell 命令运行 Get-AzPublicIpAddress 来检查您的公共地址 SKU:

    (Get-AzPublicIpAddress -Name "PUBLIC-IP-NAME" -ResourceGroupName "RESOURCE-GROUP").Sku.Name
    

    如果您愿意,也可以使用 Azure CLI 中的 az network public-ip show

    az network public-ip show -n "PUBLIC-IP-NAME" -g "RESOURCE-GROUP" --query "sku.name"
    

    或者只是通过 Azure 门户导航到您的公共 IP 地址实例进行检查。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-02
      • 2021-04-24
      • 1970-01-01
      • 2021-11-28
      • 1970-01-01
      • 2011-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多