Azure 为什么我不能访问模板输出中publicIpAddress的某些字段?

Azure 为什么我不能访问模板输出中publicIpAddress的某些字段?,azure,azure-resource-manager,azure-template,azure-rest-api,azure-public-ip,Azure,Azure Resource Manager,Azure Template,Azure Rest Api,Azure Public Ip,在我的模板输出中,我想返回分配的公共IP地址。 我在“输出”部分尝试了以下内容:(在“对象”类型的输出中) 这将工作并返回整个publicIpAddress对象: "ipobj": { "apiVersion": "2020-07-01", "location": "eastus", "sku": { "name":

在我的模板输出中,我想返回分配的公共IP地址。 我在“输出”部分尝试了以下内容:(在“对象”类型的输出中)

这将工作并返回整个publicIpAddress对象:

  "ipobj": {
    "apiVersion": "2020-07-01",
    "location": "eastus",
    "sku": {
      "name": "Basic",
      "tier": "Regional"
    },
    "properties": {
      "provisioningState": "Succeeded",
      "resourceGuid": "...",
      "ipAddress": "...",
      "publicIPAddressVersion": "IPv4",
      "publicIPAllocationMethod": "Dynamic",
      "idleTimeoutInMinutes": 4,
      "dnsSettings": {
        "domainNameLabel": "simplelinuxvm-zktwk4fzmy5p4",
        "fqdn": "simplelinuxvm-zktwk4fzmy5p4.eastus.cloudapp.azure.com"
      },
      "ipTags": [],
      "ipConfiguration": {
        "id": "/subscriptions/.../resourceGroups/.../providers/Microsoft.Network/networkInterfaces/simpleLinuxVMNetInt/ipConfigurations/ipconfig1"
      }
    },
    "subscriptionId": "...",
    "resourceGroupName": "...",
    "scope": "",
    "resourceId": "Microsoft.Network/publicIpAddresses/simpleLinuxVMPublicIP",
    "referenceApiVersion": "2020-07-01",
    "condition": true,
    "isConditionTrue": true,
    "isTemplateResource": false,
    "isAction": false,
    "provisioningOperation": "Read"
  }
这是符合实际情况的。 我还可以使用不带“Full”参数的引用来检索一些属性,根据,该参数应该返回对象的
属性。
这些工作:

"[reference(variables('publicIPAddressName')).dnsSettings.fqdn]"
"[reference(variables('publicIPAddressName')).publicIPAddressVersion]"
但其他一些属性无法访问:

"[reference(variables('publicIPAddressName')).ipAddress]"
"[reference(variables('publicIPAddressName'),'2020-07-01','Full').properties.ipAddress]"
根据错误消息(对于中间示例):

因此,Azure似乎不允许我访问完整输出中的属性。 这背后是否有任何解释/意图,或者至少有一个解决办法

注意:如果将“字符串”输出(即不作为对象的一部分)定义为


输出publicIpAddress对象的属性时,应注意定义与输出值匹配的正确类型

"outputs": {
    "publicIpipAddress": {
        "type": "string",
        "value": "[reference(parameters('publicIPAddresses_vmc_backupPublicIP_name'),'2020-07-01','Full').properties.ipAddress]"
    },
    "idleTimeoutInMinutes": {
        "type": "int",
        "value": "[reference(parameters('publicIPAddresses_vmc_backupPublicIP_name'),'2020-07-01','Full').properties.idleTimeoutInMinutes]"
    }
}

它可以在idletimeoutting分钟内工作,但我仍然会收到相同的ipAddress错误。您好,请您将完整或准确的样本复制到我的邮箱中好吗?您应该尝试使用“[reference(variables('publicIPAddressName'),'2020-07-01','Full').properties.ipAddress]”而不是“
”值“:“[reference(variables('publicIPAddressName')).ipAddress]”来输出publicIpAddress。您在尝试时错过了属性和api版本。我已经尝试过了。模板输出“ip”无效:语言表达式属性“ipAddress”不存在,可用属性为“provisioningState、resourceGuid、publicIPAddressVersion、publicIPAllocationMethod、IdleTimeoutingMinutes、dnsSettings、ipTags”…“您是否尝试了
“值”:“[引用(变量('publicIPAddressName')、'2020-07-01'、'Full').properties.ipAddress]“
?能否显示有关它的屏幕截图?我无法在评论中添加图像,但我复制了上面的错误消息,并将模板中使用的输出复制到原始问题中。
The template output '...' is not valid: The language expression property 'ipAddress' doesn't exist, available properties are 'provisioningState, resourceGuid, publicIPAddressVersion, publicIPAllocationMethod, idleTimeoutInMinutes, dnsSettings, ipTags'
"ip": {
    "type": "string",
    "value": "[reference(variables('publicIPAddressName')).ipAddress]" 
}
"ip": {
    "type": "string",
    "value": "[reference(variables('publicIPAddressName'),'2020-07-01','Full').properties.ipAddress]"
},
"outputs": {
    "publicIpipAddress": {
        "type": "string",
        "value": "[reference(parameters('publicIPAddresses_vmc_backupPublicIP_name'),'2020-07-01','Full').properties.ipAddress]"
    },
    "idleTimeoutInMinutes": {
        "type": "int",
        "value": "[reference(parameters('publicIPAddresses_vmc_backupPublicIP_name'),'2020-07-01','Full').properties.idleTimeoutInMinutes]"
    }
}