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