# 轮换 Secret
<subtitle>更新 Secret 的值，运行中的沙箱会在后续请求中使用新值。</subtitle>

使用 `Secret.update()` 更新 Secret 的值。每次更新成功都会生成一个新版本，并成为当前版本。

```python
from ucloud_sandbox import Secret

secret = Secret.update("modelverse_api_key", "your-new-modelverse-api-key")
print(secret.version)  # 2
```

## 生效方式

- 更新成功后，后续匹配规则的 HTTPS 请求会使用新值。已经解析了旧值的请求可能仍会使用旧值。
- 无需重启沙箱，也无需修改沙箱的网络规则。

## 版本

- Secret 引用始终解析为**当前版本**，SDK 不支持固定到某个历史版本，也不支持读取旧值或回滚。
- 如需恢复到之前的凭证，请再次调用 `Secret.update()` 写入旧值。

## 元数据

`Secret.update()` 的 `metadata` 参数是可选的：

- 不传 `metadata` 时，保留原有元数据。
- 传入 `metadata` 时，整体替换原有元数据；传入空字典 `{}` 会清空元数据。

```python
from ucloud_sandbox import Secret

Secret.update(
    "modelverse_api_key",
    "your-new-modelverse-api-key",
    metadata={"environment": "production", "owner": "ai-team"},
)
```
