【问题标题】:How do I find Azure ARM template output properties for a resoruce如何查找资源的 Azure ARM 模板输出属性
【发布时间】:2019-03-31 01:51:24
【问题描述】:

在编写 ARM 模板的输出部分时,如何为资源提供哪些属性。在下面的公共 ip 资源示例中,我如何找出 dnsSettings.fqdn 或 .ipAddress 是否可用

"outputs": {
    "fqdn": {
        "value": "[reference(parameters('publicIPAddresses_name')).dnsSettings.fqdn]",
        "type": "string"
    },
    "ipaddress": {
        "value": "[reference(parameters('publicIPAddresses_name')).ipAddress]",
        "type": "string"
    }
}

【问题讨论】:

    标签: azure azure-resource-manager


    【解决方案1】:

    您的问题与Retrieve FQDN of Azure SQL from a linkted template 问题有关。

    满足您要求的最简单方法如下图所示。

    希望这会有所帮助!干杯!!

    注意:如果您认为您的问题已得到解答,请“接受”它,如果只是帮助,请单击“此答案很有用”并投赞成票。这可能对阅读此主题的其他社区成员有所帮助。

    【讨论】:

    • 您还可以使用门户中的资源浏览器来“浏览”您在 Azure 中预配的资源...
    • 这取决于 Az / Azure PowerShell 库如何决定将资源表示为对象。它可能对应于资源上的属性,也可能不对应。
    【解决方案2】:

    我发现的一种方法,仅使用 ARM,是输出整个对象:

        "outputs": {
        "ipaddress": {
            "type": "Object",
            "value": "[reference(parameters('publicIPAddresses_name'))]"
        }
    

    当您应用策略时,输出将显示所有可能的属性及其值。

    【讨论】:

      【解决方案3】:

      你可以在https://resources.azure.com查看整个json数据结构。

      【讨论】:

        【解决方案4】:

        您真的不知道,因为默认情况下会修改某些属性(而另一个答案根本没有提及,这可能会严重误导您)。您可以做的一件事是查看资源的其余 api 定义并使用 Full 对资源的引用,这样您将始终获得您在 api 定义中看到的内容。

        reference(parameters('publicIPAddresses_name'), 'api-version', 'Full')
        

        但是,对象结构会有所不同,据我所知,您需要访问对象的属性以获取大部分输出。我倾向于做的是 - 创建一个模板,它只输出我感兴趣的现有对象并运行它并检查输出。

        几乎从不需要输出,所以在我看来这不是什么大问题。

        Rest Api 定义:https://docs.microsoft.com/en-us/rest/api/azure/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-02-17
          • 2016-12-03
          • 1970-01-01
          • 2021-11-05
          相关资源
          最近更新 更多