[英]Azure VM metadata missing / emtpy publicIpAddress
在 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 地址不顯示的任何原因
我相信您的公共 IP 地址是 Standard SKU 而不是 Basic SKU,不支持實例元數據服務。
來自MSDN :
使用實例元數據服務 IMDS 時,僅具有基本 SKU 的公共 IP 地址可用。 不支持標准 SKU。
此GitHub 問題也有更多信息。
我還使用基本和標准 SKU 的公共 IP 地址對此進行了測試,標准 SKU 在查詢實例元數據實例 API 時會為您提供"publicIpAddress":""
。
為了能夠使用實例元數據服務,您需要使用Basic SKU公共 IP 地址。 一旦創建了公共 IP 地址,您就無法更改 SKU,如MSDN中突出顯示的那樣。
相反,您可以首先將您的Standard SKU公共 IP 地址實例與您的虛擬機網絡接口取消關聯,創建一個新的公共 IP 地址與Basic SKU ,然后將此公共 ZA12A3079E14CED426E69BA52B8A9 地址與您的虛擬機網絡接口相關聯。 這是必需的,因為網絡接口只能有一個與其關聯的公共 IP 地址。
您可以從 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 地址實例進行檢查。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.