如何在AzAPI Provider的Terraform脚本中为Azure Function指定用户分配托管标识
解决方法
在Terraform的AzAPI资源配置中,userAssignedIdentities是以托管标识资源ID为键、空对象为值的字典结构。你可以通过Terraform的插值语法将var.myManagedIdentity作为动态键填入,具体修改如下:
resource "azapi_resource" "function_apps" { type = "Microsoft.Web/sites@2024-04-01" schema_validation_enabled = false location = var.location name = var.FunctionAppName parent_id = var.resourcegroup body = { kind = "functionapp,linux" identity = { type = "UserAssigned" // 填入用户分配托管标识 userAssignedIdentities = { "${var.myManagedIdentity}" = {} } } // 保留你的其他配置... } } variable "myManagedIdentity" { type = string default = "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}" }
补充说明
- 如果需要绑定多个用户分配托管标识,只需在
userAssignedIdentities中添加更多键值对即可:userAssignedIdentities = { "${var.myManagedIdentity1}" = {} "${var.myManagedIdentity2}" = {} } - 这里的空对象
{}是Azure API要求的格式,不需要填充任何属性,只需确保键是托管标识的完整资源ID即可。
内容的提问来源于stack exchange,提问作者BlackMiracle
相关产品推荐
相关产品推荐

