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

如何在Java Spring Boot应用中设置Azure Cosmos DB容器级TTL为‘开启(无默认值)’

配置Azure Cosmos DB容器级TTL(开启无默认值)

一、是否支持YAML配置?

可以通过YAML配置实现,无需额外编写代码(动态配置场景除外)。

二、配置文件选哪个?

优先放在application.yaml里就行。bootstrap.yaml主要用于Spring Cloud上下文初始化阶段的特殊配置(比如配置中心、加密解密),Cosmos DB的容器配置属于应用常规配置,放application.yaml更合适。

三、正确的YAML配置格式

你之前写的配置有缩进错误,而且containers的结构不对。另外,设置“开启(无默认值)”时,TTL要设为-1(Azure Cosmos DB中,-1代表启用TTL但不设置默认过期时间,文档需单独指定TTL才会过期),不是on。

正确配置示例:

spring:
  cloud:
    azure:
      cosmos:
        database: someName
        containers:
          - name: someName
            ttl: -1

说明:

  • YAML缩进必须严格对齐,containers是数组结构,每个元素对应一个容器的配置,包含name(容器名)和ttl两个属性。
  • ttl: -1完全对应你要的“开启(无默认值)”模式。

四、验证配置是否生效

你可以通过两个方式验证:

  1. 登录Azure Portal,找到对应的Cosmos DB容器,查看TTL设置是否为“开启(无默认值)”。
  2. 在代码里获取容器配置确认:
@Autowired
private CosmosContainer cosmosContainer;

public void verifyContainerTTL() {
    Integer ttlValue = cosmosContainer.readContainer().getProperties().getTimeToLive();
    System.out.println("当前容器TTL值:" + ttlValue); // 输出-1则配置生效
}

内容的提问来源于stack exchange,提问作者Evgen Kr

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 01:42:11