对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

创建Atlas临时集群

使用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)。

  • 云提供商和地区:AWS us-east-1。

  • IP访问权限:集群允许来自任何IP解决(0.0.0.0/0) 的连接。

  • 有限的使用寿命:除非您声明集群,否则Atlas会在创建后 2 天将其暂停,并在创建后 7 天将其删除。暂停时,无法访问集群。

由于临时集群属于免费集群,因此所有免费集群限制也应用,包括:

  • 存储:最大 512 MB,包括索引。

  • MongoDB服务器版本:8.0。

  • 吞吐量:每秒最大写入操作总数为 100。

  • 连接数:最大 500 个并发连接数。

有关免费集群限制的完整列表,请参阅Atlas免费集群限制。

使用以下工作流程创建并连接到临时集群。 AI编码代理无需人工干预即可完成此工作流程的每个步骤。

1

向以下端点发送 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}

    要学习;了解更多信息,请参阅返回一个临时Atlas集群。

  • connectionString:使用 mongodb+srv://协议连接到临时集群的连接字符串。包括自动生成的数据库用户的用户名和密码,该用户可以在集群中读取和写入数据。任何使用此连接字符串的客户端都以此数据库用户身份进行身份验证。创建响应是Atlas唯一一次返回未编辑的密码。

  • expiresAt: Atlas在无人认领时暂停集群的日期和时间。在您认领暂停的临时集群之前,您无法访问该集群。时间戳使用 UTC 格式的 ISO 8601。

  • status:临时集群的状态。 PROVISIONING、ACTIVE 或 PAUSED 之一。

  • termsOfService:请注意,使用此API即表示您同意 MongoDB 的云服务条款和隐私政策。包括指向完整条款的链接。

要学习;了解有关创建端点的更多信息,请参阅创建一个临时Atlas集群。

2

在创建响应中,保存 connectionString、claimUrl 和 clusterId。您需要它们来连接到集群、声明集群并检索集群的详细信息。

警告

将 connectionString、claimUrl 和 clusterId 视为密钥。拥有 connectionString 的任何人都可以读取和写入集群数据。拥有 claimUrl 的任何人都可以在自己的Atlas帐户中声明集群,拥有 clusterId 的任何人都可以从获取端点检索claimUrl。 MongoDB支持部门无法恢复这些值或转移已声明集群的所有权。

将所有三个值保存到安全位置,以便声明集群的人可以检索它们。示例,使用共享密钥管理器或忽略 git 的本地 .env文件。不要覆盖该位置的现有密钥。

3

使用创建响应中的 connectionString 值从兼容环境连接到临时集群,例如:

  • 应用程序代码:在初始化连接到集群的客户端对象时,向适用于您的编程语言的MongoDB驾驶员提供连接字符串。这是从应用程序连接时的典型选择。要学习;了解更多信息,请参阅通过客户端库连接到集群。

  • 命令行:将连接字符串作为参数提供给MongoDB Shell (mongosh),以交互方式连接和运行命令:

    命令行连接示例
    mongosh "<connectionString>"

要学习;了解有关可用连接方法的更多信息,请参阅注意事项。

注意

临时集群允许来自任何IP解决(0.0.0.0/0) 的连接。您可以在声明集群时限制IP访问权限。

4

声明临时集群是可选的。如果您未认领集群, Atlas会在创建后 2 天将其暂停,并在创建 7 天后将其删除。当您声明集群时, Atlas会将其转换为没有过期日期的标准免费集群。已声明的集群会保留其所有数据,并且您保存的连接字符串将继续使用相同的凭证。要学习;了解有关声明效果的更多信息,请参阅声明临时集群。

要认领集群,必须在浏览器中登录Atlas 。选择以下选项之一:

  • 立即声明:仅与声明集群的人员共享 claimUrl。他们可以按照声明临时集群中的步骤声明集群。

  • 稍后声明:将 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编码代理无法声明临时集群。要声明集群,必须在网络浏览器中完成以下工作流程:

1
  1. 在网络浏览器中,打开在创建响应中保存的 claimUrl,以访问Atlas登录页面。声明URL采用以下格式,其中 {claimId} 是临时集群的唯一标识符:

    https://account.mongodb.com/account/register?claimId={claimId}

  2. 在登录页面,使用现有帐户登录Atlas ,或创建新帐户。当您在下一步中声明集群时,此帐户将同时获得该集群的数据库和管理访问权限。

    如果您创建新帐户,请先验证您的电子邮件,然后再继续。

注意

声明URL是声明集群的唯一方法。它会在集群创建 7 天后过期。如果您丢失了声明URL,请使用以下方法之一检索:

  • 向以下端点发送 GET请求,将 {clusterId} 替换为创建响应中的 clusterId 值:

    https://cloud.mongodb.com/api/atlas/v2/unauth/ephemeralClusters/{clusterId}

    响应包含 claimUrl。要学习;了解更多信息,请参阅返回一个临时Atlas集群。

  • 如果AI编码代理创建了集群,请检查可能保存 claimUrl 的安全位置,例如项目的本地 .env文件。

2

登录后, Atlas会显示声明页面。在此页面上,执行以下操作:

  1. 从下拉列表中选择一个现有组织,或选择 Create new org for this cluster 创建一个组织。当您认领集群时, Atlas会将其移动到所选组织,并在那里为其创建项目。

  2. 配置IP访问权限。要限制访问权限,删除0.0.0.0/0 并仅允许当前的IP解决(推荐)。要允许来自任何IP解决的连接,请保留 0.0.0.0/0。您可以稍后在项目的 Network Access 设置中限制IP访问权限。

  3. 单击 Claim Cluster。这是一项无法撤消的一次性动作。

3

声明集群后, Atlas会显示确认页面,其中包含组织和项目名称、集群详细信息以及您选择的IP访问权限配置。

单击 Go To Project Overview 可在Atlas用户界面中查看已声明的集群。

4

您可以使用Atlas用户界面、 Atlas CLI或Atlas Administration API重新配置声明的集群及其项目。在集群级别,您可以将集群扩展到更高层级以增加存储。在项目级别,您可以管理数据库用户并限制IP访问权限以提高安全性。要学习;了解更多信息,请参阅管理集群。

使用以下Atlas Administration API端点创建临时集群并检索其状态、连接和声明详细信息。要学习;了解更多信息,请参阅Atlas Administration API规范中的创建一个临时Atlas集群和返回一个临时Atlas集群。

注意

您只能通过Atlas Administration API创建临时集群,而不能通过Atlas CLI、HashiCorp Terraform MongoDB Atlas Provider 或任何其他界面。

创建临时集群并返回其连接和声明详细信息。

方法:POST

终结点:https://cloud.mongodb.com/api/atlas/v2/unauth/ephemeralClusters:create

路径参数:无。

查询参数:无。

请求标头:

标头
必需
值

Accept

是

'接受:应用程序/vnd.atlas.preview+json'

Content-Type

仅适用于请求正文

application/json

请求正文:

请求正文是可选的。如果发送正文,请包含以下字段:

字段
类型
必需
说明

clusterName

字符串

No

用于标识临时集群的人类可读标签。默认为 Cluster0。必须与模式^[a-zA-Z0-9][a-zA-Z0-9-]*$ 匹配。

例如请求 :

创建请求示例
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

成功响应字段:

在以下字段中返回新集群的详细信息:

字段
类型
说明

claimUrl

字符串 (URI)

用于声明此临时集群的唯一URL 。重定向到Atlas登录或注册页面,用户在此登录或创建帐户以声明集群。集群创建后 7 天内有效。

clusterId

字符串

临时集群的唯一标识符。使用此ID在 GET请求中检索集群的状态和详细信息。

connectionString

字符串

使用 mongodb+srv://协议连接到临时集群的连接字符串。此字符串包含自动生成的数据库用户的未编辑的SCRAM凭证(用户名和密码), Atlas会向该用户授予内置readWriteAnyDatabase角色。

expiresAt

字符串(ISO 8601,UTC)

集群暂停且在声明所有权之前无法再访问的日期和时间。此参数以 UTC 格式的 ISO 8601 时间戳表示其值。

status

字符串(枚举)

临时集群的状态。 PROVISIONING、ACTIVE 或 PAUSED 之一。

termsOfService

字符串

请注意,使用此API即表示您同意 MongoDB 的云服务条款和隐私政策。包括指向完整条款的链接。

响应标头:

标头
返回方式为
说明

RateLimit-Limit

201, 429

用户在特定时间窗口内可以发出的最大请求数。

RateLimit-Remaining

201, 429

在达到限制之前,当前速率限制窗口中剩余的请求数。

Retry-After

429

重试API请求之前应等待的最短时间(以秒为单位)。

错误状态代码:

注意

如果收到 429 错误,则已达到创建临时集群的共享限制。您可以改为部署标准 免费集群,它提供相同的集群层而没有过期日期。要学习;了解如何通过Atlas CLI创建和连接免费集群,请参阅入门。

状态
说明

400

错误请求。

429

请求过多。

500

内部服务器错误。

返回一个临时集群的详细信息。

方法:GET

终结点:https://cloud.mongodb.com/api/atlas/v2/unauth/ephemeralClusters/{clusterId}

路径参数:

Parameter
类型
必需
说明

clusterId

字符串

是

要查找的临时集群的唯一ID 。

查询参数:无。

请求标头:

标头
必需
值

Accept

是

application/vnd.atlas.2025-03-12+json

请求正文:无。

例如请求 :

获取请求示例
curl -sS -X GET 'https://cloud.mongodb.com/api/atlas/v2/unauth/ephemeralClusters/{clusterId}' \
-H 'Accept: application/vnd.atlas.preview+json'

成功状态代码:200 OK

成功响应字段:

在以下字段中返回集群的当前状态和详细信息:

字段
类型
说明

claimUrl

字符串 (URI)

用于声明此临时集群的唯一URL 。重定向到Atlas登录或注册页面,用户在此登录或创建帐户以声明集群。集群创建后 7 天内有效。

clusterId

字符串

临时集群的唯一标识符。使用此ID在 GET请求中检索集群的状态和详细信息。

connectionString

字符串

使用 mongodb+srv://协议连接到临时集群的连接字符串。此字符串包括自动生成的数据库用户的SCRAM用户名,但用占位符替换密码。 Atlas仅在创建响应中返回密码。

expiresAt

字符串(ISO 8601,UTC)

集群暂停且在声明所有权之前无法再访问的日期和时间。此参数以 UTC 格式的 ISO 8601 时间戳表示其值。

status

字符串(枚举)

临时集群的状态。 PROVISIONING、ACTIVE 或 PAUSED 之一。

termsOfService

字符串

请注意,使用此API即表示您同意 MongoDB 的云服务条款和隐私政策。包括指向完整条款的链接。

响应标头:

标头
返回方式为
说明

RateLimit-Limit

200, 429

用户在特定时间窗口内可以发出的最大请求数。

RateLimit-Remaining

200, 429

在达到限制之前,当前速率限制窗口中剩余的请求数。

Retry-After

429

重试API请求之前应等待的最短时间(以秒为单位)。

错误状态代码:

状态
说明

400

错误请求。

404

未找到。

429

请求过多。

500

内部服务器错误。