﻿# 如何強制刪除含有自訂域名的 Azure Front Door 服務資源

最近幫客戶導入 Azure Front Door 負載平衡器與 WAF 服務，在進行一連串的測試之後，發現想刪除測試用的 Front Door 服務卻無法刪除。原因是 Azure Front Door 當有設定 **自訂域名** (Custom Domain) 的時候，預設會需要事先設定自訂域名的 DNS `CNAME` 紀錄，然而在刪除 Front Door 資源的時候，卻需要先刪除該 `CNAME` 紀錄才能刪除該資源，有點不太方便。因為 DNS 註冊在客戶端，且申請刪除 `CNAME` 紀錄需要好幾天時間，所以便研究了一下如何在不解除 `CNAME` 記錄的情況下刪除 Azure Front Door 資源。

![Azure Front Door](https://stwillblogassets.blob.core.windows.net/files/images/external/user-images.githubusercontent.com/d6687534d666dd54265a-209164080-ea4e477a-0df8-4666-b502-76d55bd6ffe8.png)

要順利刪除 Front Door 資源，大致步驟如下：

1.  先透過 Azure CLI 註冊 `BypassCnameCheckForCustomDomainDeletion` 功能
    
    ```bash
    az feature register --namespace Microsoft.Network --name BypassCnameCheckForCustomDomainDeletion
    ```
    
2.  檢查功能是否註冊成功 (可能要等十幾分鐘才會註冊好)
    
    ```bash
    az feature list -o table --query "[?contains(name, 'Microsoft.Network/BypassCnameCheckForCustomDomainDeletion')].{Name:name,State:properties.state}"
    ```
    
3.  刪除 Azure Front Door 資源
    
    ```bash
    az network front-door delete -n 'fd-emeeting-t' -g 'tdcc-emeeting'
    ```
    
4.  取消註冊 `BypassCnameCheckForCustomDomainDeletion` 功能
    
    ```bash
    az feature unregister --namespace Microsoft.Network --name BypassCnameCheckForCustomDomainDeletion
    ```
    

### 相關連結

-   [Azure Front Door documentation](https://learn.microsoft.com/en-us/azure/frontdoor/)
-   [Cannot delete custom domain CDN - Microsoft Q&A](https://learn.microsoft.com/en-us/answers/questions/580020/cannot-delete-custom-domain-cdn.html?childToView=1138067&WT.mc_id=DT-MVP-4015686#answer-692364)
-   [Upcoming Breaking Changes to Front Door / CDN's #11231](https://github.com/hashicorp/terraform-provider-azurerm/issues/11231)
