Terraform销毁Azure DevOps服务端点时未删除应用注册问题咨询
关于azuredevops_serviceendpoint_azurecr关联的Entra ID应用注册的问题解答
1. 能否指定应用注册的显示名称?
通过azuredevops_serviceendpoint_azurecr资源本身没办法直接指定它自动生成的Entra应用注册显示名称——这个资源是Azure DevOps端的管理组件,后台生成的应用注册没有暴露命名参数。但可以换个思路:手动用Terraform创建符合命名规范的应用注册,再关联到Azure DevOps服务端点,具体步骤如下:
- 先用
azuread_application资源定义自定义显示名称的应用注册 - 基于该应用创建服务主体(
azuread_service_principal) - 最后创建
azuredevops_serviceendpoint_azurecr时,指定使用手动创建的服务主体信息,而不是让它自动生成。
2. 如何实现删除资源时同步删除应用注册?
如果依赖azuredevops_serviceendpoint_azurecr自动生成应用注册,Terraform不会管理这个应用的生命周期,所以执行terraform destroy时不会删除它。解决办法还是上面的手动管理方案:把应用注册、服务主体纳入Terraform的资源管理范围,这样销毁时Terraform会按依赖顺序自动清理相关资源。
完整配置示例
# 获取当前租户和用户信息 data "azuread_client_config" "current" {} # 创建Azure DevOps项目(示例) resource "azuredevops_project" "example" { name = "MyProject" description = "示例项目" visibility = "private" version_control = "Git" work_item_template = "Agile" } # 1. 创建自定义名称的Entra ID应用注册 resource "azuread_application" "acr_service_endpoint" { display_name = "ADO-ACR-服务端点-我的项目" # 替换成你的规范名称 owners = [data.azuread_client_config.current.object_id] } # 2. 创建对应服务主体 resource "azuread_service_principal" "acr_service_endpoint" { application_id = azuread_application.acr_service_endpoint.application_id } # 3. 创建应用密码(服务主体密钥) resource "azuread_application_password" "acr_service_endpoint" { application_object_id = azuread_application.acr_service_endpoint.object_id end_date_relative = "8760h" # 1年有效期,可按需调整 } # 4. 创建Azure DevOps ACR服务端点,关联手动创建的服务主体 resource "azuredevops_serviceendpoint_azurecr" "example" { project_id = azuredevops_project.example.id service_endpoint_name = "我的ACR服务端点" azurecr_name = "myacrregistry" # 替换成你的ACR名称 service_principal_id = azuread_service_principal.acr_service_endpoint.id service_principal_secret = azuread_application_password.acr_service_endpoint.value tenant_id = data.azuread_client_config.current.tenant_id }
效果说明
- 应用注册会使用你指定的
display_name,命名规范完全可控 - 执行
terraform destroy时,Terraform会按依赖顺序先删除Azure DevOps服务端点,再删除应用密码、服务主体,最后删除应用注册,实现资源的同步清理。
内容的提问来源于stack exchange,提问作者limitIntegral314
相关产品推荐
相关产品推荐

