You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Terraform仅生成一次UUID并存储,用于AzureAD应用角色?

问题:Terraform AzureAD v3.0.1中实现App Role的UUID仅生成一次并持久化

背景说明

在Terraform AzureAD v3.0.1版本中,azuread_application_app_role资源的role_id字段为必填项,且不会自动生成,需由计划或模块自行生成该ID。

最初尝试通过random_uuid为每个角色生成UUID,并将结果赋值给role_id字段,配置代码如下:

resource "random_uuid" "admin_role" {}
resource "random_uuid" "user_role" {}

resource "azuread_application" "app" {
  display_name = var.app_name
  identifier_uris = [local.app_identifier_uri]
}

...

resource "azuread_application_app_role" "admin_role" {
  role_id = random_uuid.admin_role.result
  application_id = azuread_application.app.id
  allowed_member_types = ["User"]
  description = "Admins can manage ${var.app_name}"
  display_name = "Admin-${var.app_name}"
  value = "Admin-${var.app_name}"
}

resource "azuread_application_app_role" "user_role" {
  role_id = random_uuid.user_role.result
  application_id = azuread_application.app.id
  allowed_member_types = ["User"]
  description = "User of  ${var.app_name} application"
  display_name = "User-${var.app_name}"
  value = "User-${var.app_name}"
}

遇到的问题

已配置远程状态存储,但每次执行init、plan、apply时都会生成新的UUID,导致每次计划都出现状态漂移,需要UUID仅生成一次并存储以供后续使用。

曾尝试使用null_resource解决,但未成功,配置如下:

resource "random_uuid" "example_administrator" {}

resource "null_resource" "initialize_uuid" {
  triggers = {
    uuid = random_uuid.example_administrator.id
  }
}

resource "azuread_application_app_role" "example" {
  role_id = null_resource.initialize_uuid.triggers["uuid"]
  ...
}

还未测试time方案,配置示例如下:

provider "time" {}

resource "time_static" "admin_role" {
  triggers = {
    # Any attribute here will generate the UUID only once
    role = "admin"
  }
}

resource "time_static" "user_role" {
  triggers = {
    # Any attribute here will generate the UUID only once
    role = "user"
  }
}

需求

如何实现UUID仅生成一次并存储的需求?


内容的提问来源于stack exchange,提问作者Peter Kahn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 17:48:12