使用Atlas临时集群,通过MongoDB进行构建和测试。临时集群是一个临时的免费集群(M0),无需Atlas帐户或API密钥即可创建和连接。当AI编码代理或与之合作的开发者需要按需使用数据库来启动新项目、构建应用程序原型或测试想法时,临时集群非常适合。
要创建临时集群并在一分钟内获得随时可用的连接字符串,请向以下端点发送 POST请求:
https://cloud.mongodb.com/api/atlas/v2/unauth/ephemeralClusters:create
有关完整的工作流程、所需标头和响应详细信息,请参阅快速入门。
除非您声明临时集群,否则Atlas会在创建后 2 天将其暂停,并在创建 7 天后将其删除。要声明集群,请从创建响应中打开 claimUrl 并登录到Atlas。声明会将临时集群转换为没有过期日期的标准免费集群。代理可以自主创建并连接到集群,但只有人类可以声明它。
临时集群规范和限制
临时集群是寿命有限的Atlas免费集群(M0)。要读取和写入其数据,您可以使用创建响应返回的连接字符串连接到集群。在您声明集群之前,您无法扩展集群层、添加数据库用户、限制IP访问权限或执行其他管理操作。
无人认领的临时集群具有以下固定规格:
集群层级:免费 (
M0)。云提供商和地区:
AWSus-east-1。IP访问权限:集群允许来自任何IP解决(
0.0.0.0/0) 的连接。有限的使用寿命:除非您声明集群,否则Atlas会在创建后 2 天将其暂停,并在创建后 7 天将其删除。暂停时,无法访问集群。
由于临时集群属于免费集群,因此所有免费集群限制也应用,包括:
存储:最大 512 MB,包括索引。
MongoDB服务器版本:8.0。
吞吐量:每秒最大写入操作总数为 100。
连接数:最大 500 个并发连接数。
快速入门:创建并连接到临时集群
使用以下工作流程创建并连接到临时集群。 AI编码代理无需人工干预即可完成此工作流程的每个步骤。
创建临时集群。
向以下端点发送 POST请求:
https://cloud.mongodb.com/api/atlas/v2/unauth/ephemeralClusters:create
该请求需要以下 Accept 标头:
'接受:应用程序/vnd.atlas.preview+json'
以下示例请求将创建一个名为 Cluster0 的临时集群:
curl -sS -X POST 'https://cloud.mongodb.com/api/atlas/v2/unauth/ephemeralClusters:create' \ -H 'Accept: application/vnd.atlas.preview+json' \ -H 'Content-Type: application/json' \ -d '{"clusterName": "Cluster0"}'
创建端点返回以下格式的响应:
{ "claimUrl": "https://account.mongodb.com/account/register?claimId={claimId}", "clusterId": "{clusterId}", "connectionString": "mongodb+srv://{username}:{password}@{host}/", "expiresAt": "{timestamp}", "status": "PROVISIONING", "termsOfService": "By using this API and any resources provisioned through it, you agree to be bound by MongoDB's Cloud Terms of Service at https://www.mongodb.com/legal/terms-and-conditions/cloud; and Privacy Policy at https://www.mongodb.com/legal/privacy/privacy-policy." }
响应包括以下字段:
claimUrl:用于声明此临时集群的唯一URL 。人员必须在浏览器中打开此URL 。集群创建后 7 天内有效。clusterId:临时集群的唯一标识符。要检索集群的status、claimUrl和其他详细信息,请向以下端点发送GET请求,并将{clusterId}替换为此值:https://cloud.mongodb.com/api/atlas/v2/unauth/ephemeralClusters/{clusterId}connectionString:使用mongodb+srv://协议连接到临时集群的连接字符串。包括自动生成的数据库用户的用户名和密码,该用户可以在集群中读取和写入数据。任何使用此连接字符串的客户端都以此数据库用户身份进行身份验证。创建响应是Atlas唯一一次返回未编辑的密码。expiresAt: Atlas在无人认领时暂停集群的日期和时间。在您认领暂停的临时集群之前,您无法访问该集群。时间戳使用 UTC 格式的 ISO 8601。status:临时集群的状态。PROVISIONING、ACTIVE或PAUSED之一。
保存连接字符串和声明值。
在创建响应中,保存 connectionString、claimUrl 和 clusterId。您需要它们来连接到集群、声明集群并检索集群的详细信息。
警告
将 connectionString、claimUrl 和 clusterId 视为密钥。拥有 connectionString 的任何人都可以读取和写入集群数据。拥有 claimUrl 的任何人都可以在自己的Atlas帐户中声明集群,拥有 clusterId 的任何人都可以从获取端点检索claimUrl。 MongoDB支持部门无法恢复这些值或转移已声明集群的所有权。
将所有三个值保存到安全位置,以便声明集群的人可以检索它们。示例,使用共享密钥管理器或忽略 git 的本地 .env文件。不要覆盖该位置的现有密钥。
连接到临时集群。
使用创建响应中的 connectionString 值从兼容环境连接到临时集群,例如:
命令行:将连接字符串作为参数提供给MongoDB Shell (
mongosh),以交互方式连接和运行命令:命令行连接示例mongosh "<connectionString>"
注意
临时集群允许来自任何IP解决(0.0.0.0/0) 的连接。您可以在声明集群时限制IP访问权限。
(可选)声明临时集群。
声明临时集群是可选的。如果您未认领集群, Atlas会在创建后 2 天将其暂停,并在创建 7 天后将其删除。当您声明集群时, Atlas会将其转换为没有过期日期的标准免费集群。已声明的集群会保留其所有数据,并且您保存的连接字符串将继续使用相同的凭证。要学习;了解有关声明效果的更多信息,请参阅声明临时集群。
要认领集群,必须在浏览器中登录Atlas 。选择以下选项之一:
稍后声明:将
claimUrl保存在安全位置,以供声明集群的人员使用。此人可在创建后 7 天内随时认领集群。Claim never: Take no action. Atlas deletes the cluster 7 days after creation.
声明临时集群
声明临时集群是可选的。如果您未认领集群, Atlas会在创建后 2 天将其暂停,并在创建 7 天后将其删除。
当您声明临时集群时, Atlas会进行以下更改:
延长集群的使用寿命: Atlas将临时集群转换为没有过期日期的标准免费集群。已声明的集群将保持可用状态,直到您将其删除,或直到Atlas由于 30 天不活动而将其暂停。
保留集群的数据和连接字符串:声明的集群保留其所有数据,并且创建响应中的连接字符串继续使用相同的凭证。
将集群添加到项目和组织:在Atlas中,每个集群都属于一个项目,每个项目都属于一个组织。 Atlas将已认领的集群放入认领该集群的账户所拥有的新组织或现有组织内的新项目中。
授予完整的集群访问权限权限:声明集群的帐户是集群组织的
Organization Owner,这也会授予该组织中每个项目的Project Owner角色。作为项目所有者,您拥有读取和写入集群数据的数据库访问权限,以及使用Atlas 用户界面、 Atlas CLI或Atlas Administration API管理集群及其项目的管理访问权限。
AI编码代理无法声明临时集群。要声明集群,必须在网络浏览器中完成以下工作流程:
配置并声明临时集群。
登录后, Atlas会显示声明页面。在此页面上,执行以下操作:
从下拉列表中选择一个现有组织,或选择 Create new org for this cluster 创建一个组织。当您认领集群时, Atlas会将其移动到所选组织,并在那里为其创建项目。
重要
该下拉列表仅列出您的Atlas账户具有
Organization Owner角色的组织。当您声明集群时,所选组织中的每个组织所有者都可以管理集群及其数据。配置IP访问权限。要限制访问权限,删除
0.0.0.0/0并仅允许当前的IP解决(推荐)。要允许来自任何IP解决的连接,请保留0.0.0.0/0。您可以稍后在项目的 Network Access 设置中限制IP访问权限。单击 Claim Cluster。这是一项无法撤消的一次性动作。
临时集群API参考文档
使用以下Atlas Administration API端点创建临时集群并检索其状态、连接和声明详细信息。要学习;了解更多信息,请参阅Atlas Administration API规范中的创建一个临时Atlas集群和返回一个临时Atlas集群。
注意
您只能通过Atlas Administration API创建临时集群,而不能通过Atlas CLI、HashiCorp Terraform MongoDB Atlas Provider 或任何其他界面。
创建一个临时Atlas集群
创建临时集群并返回其连接和声明详细信息。
方法:POST
终结点:https://cloud.mongodb.com/api/atlas/v2/unauth/ephemeralClusters:create
路径参数:无。
查询参数:无。
请求标头:
标头 | 必需 | 值 |
|---|---|---|
| 是 | '接受:应用程序/vnd.atlas.preview+json' |
| 仅适用于请求正文 |
|
请求正文:
请求正文是可选的。如果发送正文,请包含以下字段:
字段 | 类型 | 必需 | 说明 |
|---|---|---|---|
| 字符串 | No | 用于标识临时集群的人类可读标签。默认为 |
例如请求 :
curl -sS -X POST 'https://cloud.mongodb.com/api/atlas/v2/unauth/ephemeralClusters:create' \ -H 'Accept: application/vnd.atlas.preview+json' \ -H 'Content-Type: application/json' \ -d '{ "clusterName": "my-ephemeral-cluster" }'
成功状态代码:201 Created
成功响应字段:
在以下字段中返回新集群的详细信息:
字段 | 类型 | 说明 |
|---|---|---|
| 字符串 (URI) | 用于声明此临时集群的唯一URL 。重定向到Atlas登录或注册页面,用户在此登录或创建帐户以声明集群。集群创建后 7 天内有效。 |
| 字符串 | 临时集群的唯一标识符。使用此ID在 |
| 字符串 | 使用 |
| 字符串(ISO 8601,UTC) | 集群暂停且在声明所有权之前无法再访问的日期和时间。此参数以 UTC 格式的 ISO 8601 时间戳表示其值。 |
| 字符串(枚举) | 临时集群的状态。 |
| 字符串 |
响应标头:
标头 | 返回方式为 | 说明 |
|---|---|---|
|
| 用户在特定时间窗口内可以发出的最大请求数。 |
|
| 在达到限制之前,当前速率限制窗口中剩余的请求数。 |
|
| 重试API请求之前应等待的最短时间(以秒为单位)。 |
错误状态代码:
状态 | 说明 |
|---|---|
| 错误请求。 |
| 请求过多。 |
| 内部服务器错误。 |
返回一个临时Atlas集群
返回一个临时集群的详细信息。
方法:GET
终结点:https://cloud.mongodb.com/api/atlas/v2/unauth/ephemeralClusters/{clusterId}
路径参数:
Parameter | 类型 | 必需 | 说明 |
|---|---|---|---|
| 字符串 | 是 | 要查找的临时集群的唯一ID 。 |
查询参数:无。
请求标头:
标头 | 必需 | 值 |
|---|---|---|
| 是 |
|
请求正文:无。
例如请求 :
curl -sS -X GET 'https://cloud.mongodb.com/api/atlas/v2/unauth/ephemeralClusters/{clusterId}' \ -H 'Accept: application/vnd.atlas.preview+json'
成功状态代码:200 OK
成功响应字段:
在以下字段中返回集群的当前状态和详细信息:
字段 | 类型 | 说明 |
|---|---|---|
| 字符串 (URI) | 用于声明此临时集群的唯一URL 。重定向到Atlas登录或注册页面,用户在此登录或创建帐户以声明集群。集群创建后 7 天内有效。 |
| 字符串 | 临时集群的唯一标识符。使用此ID在 |
| 字符串 | 使用 |
| 字符串(ISO 8601,UTC) | 集群暂停且在声明所有权之前无法再访问的日期和时间。此参数以 UTC 格式的 ISO 8601 时间戳表示其值。 |
| 字符串(枚举) | 临时集群的状态。 |
| 字符串 |
响应标头:
标头 | 返回方式为 | 说明 |
|---|---|---|
|
| 用户在特定时间窗口内可以发出的最大请求数。 |
|
| 在达到限制之前,当前速率限制窗口中剩余的请求数。 |
|
| 重试API请求之前应等待的最短时间(以秒为单位)。 |
错误状态代码:
状态 | 说明 |
|---|---|
| 错误请求。 |
| 未找到。 |
| 请求过多。 |
| 内部服务器错误。 |