Azure 部署 EventHub 期间出现 429 错误

429 Errors during Azure Deployment for EventHub

我正在部署包含大量 IPFilterRules 和其他网络资源的 Bicep 模板。

在部署期间,每个单独的资源都会收到 429 错误,然后在一分钟后重试,一些成功,一些失败,最终在 5-10 分钟后它们都成功。

这是我如何创建 ip 过滤规则的示例:

resource EventHubNamespace 'Microsoft.EventHub/namespaces@2021-06-01-preview' = {
  // ...
  resource IpFilterRules 'ipfilterrules@2018-01-01-preview' = [for ip in companyIps: {
    name: uniqueString(resourceGroup().name, ip)
    properties: {
      action: 'Accept'
      ipMask: ip
    }
  }]
}

这是错误时部署面板的样子:

如何防止这些 429 错误的发生?我可以增加一些限制以允许更多资源吗?或者有没有办法改变我的二头肌模板,以便一次创建 1 个而不是一次创建所有这些资源?或者我可以使用任何其他技术来加快此过程吗?

您可以 运行 使用 batchSize decorator:

按顺序获取 ip 规则资源
resource EventHubNamespace 'Microsoft.EventHub/namespaces@2021-06-01-preview' = {
  ...
}

@batchSize(1)
resource IpFilterRules 'Microsoft.EventHub/namespaces/ipfilterrules@2018-01-01-preview' = [for ip in companyIps: {
  name: uniqueString(resourceGroup().name, ip)
  parent: EventHubNamespace
  properties: {
    action: 'Accept'
    ipMask: ip
  }
}]

要立即应用配置,您可以使用 networkRuleSets:

resource NetworkRuleSet 'Microsoft.EventHub/namespaces/networkRuleSets@2021-06-01-preview' = {
  name: 'default'
  parent: EventHubNamespace
  properties: {
    defaultAction: 'Allow'
    ipRules: [for ip in companyIps: {
      action: 'Allow'
      ipMask: ip
    }]
    publicNetworkAccess: 'Enabled'
    trustedServiceAccessEnabled: true
    virtualNetworkRules: []
  }
}