Terraform 从Terrraform中的Azure函数应用程序获取身份

Terraform 从Terrraform中的Azure函数应用程序获取身份,terraform,terraform-provider-azure,Terraform,Terraform Provider Azure,我正在尝试从Azure Function应用程序检索托管身份,并在Azure Keyvault中为该身份设置访问策略。该脚本如下所示(较大脚本的一部分) 当执行地形规划时返回以下错误 Error: Unsupported attribute on resources.tf line 283, in resource "azurerm_key_vault_access_policy" "funcidmngmt": 283: tenant_id

我正在尝试从Azure Function应用程序检索托管身份,并在Azure Keyvault中为该身份设置访问策略。该脚本如下所示(较大脚本的一部分)

当执行
地形规划时
返回以下错误

Error: Unsupported attribute

  on resources.tf line 283, in resource "azurerm_key_vault_access_policy" "funcidmngmt":
 283:     tenant_id = data.azurerm_function_app.funcidmngmtapp.identity.tenant_id

This value does not have any attributes.


Error: Unsupported attribute

  on resources.tf line 284, in resource "azurerm_key_vault_access_policy" "funcidmngmt":
 284:     object_id = data.azurerm_function_app.funcidmngmtapp.identity.principal_id

This value does not have any attributes.
据我所知,语法是正确的,但在理解错误消息时有问题


感谢您的反馈

身份属性是一个列表,因此请使用此属性(重要部分是
.0.
):


您是否使用最新的terraform提供程序版本?terraform v0.14.10+提供程序注册表.terraform.io/hashicorp/azurerm v2.56.0是否可以尝试
data.azurerm\u function\u app.funcidmngmtapp.identity.0.principal\u id
?我相信这是一个有效的方法。已尝试使用data.azurerm_function_app.funcidmngmtapp.identity[0]。租户id,因为我怀疑它是数组,但不知道用于访问索引的Terrraform语法。谢谢@silent很高兴它有帮助!我将创建一个答案
Error: Unsupported attribute

  on resources.tf line 283, in resource "azurerm_key_vault_access_policy" "funcidmngmt":
 283:     tenant_id = data.azurerm_function_app.funcidmngmtapp.identity.tenant_id

This value does not have any attributes.


Error: Unsupported attribute

  on resources.tf line 284, in resource "azurerm_key_vault_access_policy" "funcidmngmt":
 284:     object_id = data.azurerm_function_app.funcidmngmtapp.identity.principal_id

This value does not have any attributes.
data.azurerm_function_app.funcidmngmtapp.identity.0.principal_id