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

Azure Front Door标准版:自定义域再生TXT记录遇速率限制错误

Azure Front Door自定义域配置脚本遇速率限制错误的排查与解决

问题描述

编写Bash脚本配置Azure Front Door自定义域时,执行生成DNS验证TXT记录的步骤时,每次都会抛出速率限制错误:

ERROR: (Conflict) Rate limit exceeded. Please try again in 59 minutes.

首次运行脚本就触发该错误,并非多次调用导致的超限。

问题脚本片段

...

# 确保前端端点存在
EXISTING_ENDPOINT=$(az afd endpoint list \
    --resource-group "$RESOURCE_GROUP" \
    --profile-name "$AZURE_FRONTDOOR_PROFILE_NAME" \
    --query "[?name=='$ENDPOINT_NAME'].name" -o tsv)

if [[ -z "$EXISTING_ENDPOINT" ]]; then
    echo "创建端点 $ENDPOINT_NAME..."
    az afd endpoint create \
        --resource-group "$RESOURCE_GROUP" \
        --profile-name "$AZURE_FRONTDOOR_PROFILE_NAME" \
        --endpoint-name "$ENDPOINT_NAME"
fi

# 确保自定义域存在
DOMAIN_NAME="${SUBDOMAIN}-${CUSTOM_DOMAIN_NAME//./-}"
EXISTING_DOMAIN=$(az afd custom-domain list \
    --resource-group "$RESOURCE_GROUP" \
    --profile-name "$AZURE_FRONTDOOR_PROFILE_NAME" \
    --query "[?hostName=='$FULL_DOMAIN'].hostName" -o tsv)

if [[ -z "$EXISTING_DOMAIN" ]]; then
    echo "创建自定义域 $FULL_DOMAIN..."
    az afd custom-domain create \
        --resource-group "$RESOURCE_GROUP" \
        --profile-name "$AZURE_FRONTDOOR_PROFILE_NAME" \
        --custom-domain-name "$DOMAIN_NAME" \
        --host-name "$FULL_DOMAIN"
fi

# 生成验证令牌并设置TXT记录
echo "为 $FULL_DOMAIN 生成验证令牌..."
VALIDATION_TOKEN=$(az afd custom-domain regenerate-validation-token \
    --resource-group "$RESOURCE_GROUP" \
    --profile-name "$AZURE_FRONTDOOR_PROFILE_NAME" \
    --custom-domain-name "$DOMAIN_NAME" \
    --query "validationToken" -o tsv)

echo "添加域名验证的TXT记录..."
az network dns record-set txt add-record \
    --resource-group "$RESOURCE_GROUP" \
    --zone-name "$DNS_ZONE_NAME" \
    --record-set-name "_dnsauth.${SUBDOMAIN}" \
    --value "$VALIDATION_TOKEN"

# 为每个子域名创建路由
echo "为 $FULL_DOMAIN 创建路由..."
az afd route create \
    --resource-group "$RESOURCE_GROUP" \
    --profile-name "$AZURE_FRONTDOOR_PROFILE_NAME" \
    --endpoint-name "$ENDPOINT_NAME" \
    --route-name "$SUBDOMAIN-route" \
    --origin-group "$ORIGIN_GROUP_NAME" \
    --patterns-to-match "/*" \
    --origin-path "/" \
    --https-redirect Enabled \
    --forwarding-protocol MatchRequest

排查方向与解决方法

1. 等待自定义域资源同步

创建自定义域后,Azure内部需要时间完成资源状态同步,立即调用令牌生成接口可能触发内部限制。在域创建后添加延迟:

if [[ -z "$EXISTING_DOMAIN" ]]; then
    echo "创建自定义域 $FULL_DOMAIN..."
    az afd custom-domain create \
        --resource-group "$RESOURCE_GROUP" \
        --profile-name "$AZURE_FRONTDOOR_PROFILE_NAME" \
        --custom-domain-name "$DOMAIN_NAME" \
        --host-name "$FULL_DOMAIN"
    # 添加30秒延迟,等待资源同步完成
    sleep 30
fi

2. 避免重复生成令牌

如果自定义域已存在,优先读取现有验证令牌,无需重复调用生成接口:

# 先尝试获取已存在的验证令牌
VALIDATION_TOKEN=$(az afd custom-domain show \
    --resource-group "$RESOURCE_GROUP" \
    --profile-name "$AZURE_FRONTDOOR_PROFILE_NAME" \
    --custom-domain-name "$DOMAIN_NAME" \
    --query "properties.validationProperties.validationToken" -o tsv)

# 仅在无令牌时调用生成接口
if [[ -z "$VALIDATION_TOKEN" ]]; then
    echo "为 $FULL_DOMAIN 生成验证令牌..."
    VALIDATION_TOKEN=$(az afd custom-domain regenerate-validation-token \
        --resource-group "$RESOURCE_GROUP" \
        --profile-name "$AZURE_FRONTDOOR_PROFILE_NAME" \
        --custom-domain-name "$DOMAIN_NAME" \
        --query "validationToken" -o tsv)
fi

3. 更新Azure CLI版本

旧版本CLI可能存在接口调用逻辑缺陷,更新到最新版本:

az upgrade

4. 确认权限配置

确保执行脚本的账号对Front Door Profile和DNS Zone拥有完整操作权限,权限不足可能被误判为速率限制。

内容的提问来源于stack exchange,提问作者Herald Gjura

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 03:15:54