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

如何通过IaC自动获取Front Door创建的专用终结点名称以完成自动审批?

自动审批Front Door共享专用链接的应用服务端请求

当你在Bicep中为Front Door源配置sharedPrivateLinkResource并将status设为Approved时,这仅完成了Front Door侧的同意操作——应用服务(如App Service)端的专用链接请求仍会处于待审批状态。要实现自动化审批,无需手动提取专用终结点名称,可通过Bicep的资源引用能力自动获取该名称并完成审批。

实现步骤

1. 定义Front Door及共享专用链接资源

先部署Front Door及其关联的共享专用链接资源,触发应用服务的专用链接请求:

param frontDoorName string
param appServiceName string
param appServiceResourceGroup string

resource frontDoor 'Microsoft.Network/frontDoors@2021-06-01' = {
  name: frontDoorName
  location: 'global'
  properties: {
    // 其他Front Door基础配置
    backendPools: [
      {
        name: 'myBackendPool'
        backends: [
          {
            address: '${appServiceName}.azurewebsites.net'
            // 后端其他配置(优先级、权重等)
          }
        ]
        sharedPrivateLinkResources: [
          {
            name: 'appServiceSharedLink'
            properties: {
              privateLinkResourceId: resourceId(appServiceResourceGroup, 'Microsoft.Web/sites', appServiceName)
              groupIds: ['sites']
              status: 'Approved' // Front Door侧标记同意
            }
          }
        ]
      }
    ]
  }
}

2. 自动获取专用终结点名称并完成审批

通过引用已创建的Front Door共享专用链接资源,提取专用终结点名称,再在应用服务的专用链接连接资源中完成审批:

// 引用已创建的Front Door共享专用链接资源
resource frontDoorSharedLink 'Microsoft.Network/frontDoors/sharedPrivateLinkResources@2021-06-01' existing = {
  parent: frontDoor
  name: 'appServiceSharedLink'
}

// 从专用终结点ID中提取名称(ID格式为/subscriptions/.../privateEndpoints/{peName},索引8对应名称)
var privateEndpointName = frontDoorSharedLink.properties.privateEndpoint.id.split('/')[8]

// 审批应用服务侧的专用链接请求
resource appServicePrivateEndpointConnection 'Microsoft.Web/sites/privateEndpointConnections@2022-03-01' = {
  name: '${appServiceName}/${privateEndpointName}'
  parent: resourceId(appServiceResourceGroup, 'Microsoft.Web/sites', appServiceName)
  properties: {
    privateLinkServiceConnectionState: {
      status: 'Approved'
      description: 'Auto-approved by Bicep deployment'
    }
  }
  dependsOn: [frontDoor] // 确保先完成Front Door侧资源部署,生成待审批请求
}

关键细节

  • existing关键字用于引用已部署的共享专用链接资源,避免重复创建。
  • 专用终结点ID的结构固定,通过split('/')[8]可精准提取名称,无需手动干预。
  • dependsOn强制部署顺序,确保Front Door先触发专用链接请求,再执行应用服务侧的审批操作。

内容的提问来源于stack exchange,提问作者Don Chambers

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 19:32:20