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

使用Azure SDK for .NET创建ACI Container Groups30秒超时,如何配置延长超时?

解决方案

这个异常的原因是Azure .NET Fluent SDK默认对容器组创建这类长时间运行操作(LRO)设置了30秒的超时阈值,当ACI资源调度、大镜像拉取等操作耗时超过阈值时,SDK就会主动取消操作抛出错误,可通过以下两种配置方式解决:

方式1:全局调整Azure客户端超时时间

在初始化Azure客户端时配置HTTP客户端全局超时,代码示例:

var azure = new AsyncLazy<IAzure>(() => Microsoft.Azure.Management.Fluent.Azure
    .Configure()
    .WithLogLevel(HttpLoggingDelegatingHandler.Level.BodyAndHeaders)
    // 新增配置:设置全局HTTP超时为10分钟,可根据实际业务场景调整时长
    .WithHttpClientTimeout(TimeSpan.FromMinutes(10))
    .Authenticate(credentials)
    .WithDefaultSubscriptionAsync());

IAzure az = await azure.GetValueAsync();
await az.ContainerGroups.Define(/*你的容器组配置*/).CreateAsync();

方式2:为创建操作单独传入自定义取消令牌

如果不需要全局修改超时,可只针对容器组创建操作设置独立的超时时间,代码示例:

IAzure az = await azure.GetValueAsync();
// 初始化取消令牌源,设置本次操作超时为10分钟
var cts = new CancellationTokenSource(TimeSpan.FromMinutes(10));

await az.ContainerGroups.Define("your-container-group-name")
    // 你的容器组其他配置:区域、资源组、镜像、端口等
    .WithRegion(Region.ChinaEast2)
    .WithNewResourceGroup("your-resource-group")
    .DefineContainerInstance("your-container-name")
        .WithImage("nginx:latest")
        .WithExternalTcpPort(80)
        .Attach()
    // 传入自定义取消令牌,覆盖默认超时规则
    .CreateAsync(cts.Token);

注意事项

  • 超时时间可根据实际场景调整,普通ACI创建通常5分钟内即可完成,拉取GB级大镜像时可适当延长到15-20分钟
  • 若调整超时后仍频繁报错,建议优先检查镜像是否可正常拉取、对应区域ACI资源是否充足,排除业务侧异常

内容的提问来源于stack exchange,提问作者Jonas Lincoln

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 02:09:05