前提条件
要使用CockroachDB Cloud API,你需要建立一个CockroachDB的云账户。如果你还没有,你可以在这里注册一个--它是免费的,如果你不想记住另一个用户名和密码,你可以使用Github来注册。
获取你的密匙
CockroachDB云计算API使用不记名令牌认证,这意味着你发送的每个请求都必须包括一个秘密密钥,以确定你的账户访问和权限。
要获得秘钥,请登录你的CockroachDB云账户并访问集群页面--别担心,我保证这是我们最后一次使用网页用户界面了
点击左侧导航中的 "访问"。

然后在加载的访问页面上点击服务账户标签。

然后点击 "创建服务账户"。

这将打开一个窗口,提示你命名你的服务账户,并设置其权限级别。请注意,你能够使用的API功能将受到这个权限级别的限制,所以(例如)一个具有 "阅读 "权限的服务账户将不能通过API创建、删除或编辑集群。

你还会被提示给你的API密钥一个名字。

当你点击 "创建 "时,最后一个窗口将出现你的秘密密钥。把它记在安全的地方--它只会被提供一次--并且不要与任何人分享,因为这将允许API访问和管理我们的集群。
一旦我们得到了我们的秘钥,我们就可以关闭浏览器。从现在开始,我们就不需要任何网络用户界面来管理我们的集群了
列出所有群集
下面是使用CockroachDB云计算API的基本API调用的情况。
curl --request GET \
--url 'https://cockroachlabs.cloud/api/v1/clusters' \
--header 'Authorization: Bearer {secret_key}'
请注意,在上述内容中,{secret_key} 应该用你的秘密密钥来代替。
如果你提交这个请求并返回错误,但你确定你已经正确地设置了你的服务账户,你可能不小心包含了{ } 的括号,或者忘记在字符串的最后包含' 。头部的正确格式应该是这样的(尽管这不是一个真正的秘钥)。
--header 'Authorization: Bearer B81649_8F7D11A_92BCE13_56782D_C53'
当我们提交这个请求时,API将返回与我们账户相关的每个集群的信息。这包括每个集群的唯一的集群ID,我们将需要它来对特定的集群进行请求。
现在让我们开始使用云计算API进行实际操作
创建一个新的集群
要创建一个新的集群,我们所要做的就是提交一个请求,其中包括我们想要创建的集群的参数。
curl --request POST \
--url https://cockroachlabs.cloud/api/v1/clusters \
--header 'Authorization: Bearer {secret_key}' \
--data '{"name":"notorious-moose","provider":"GCP","spec":{"serverless":{"regions":["us-central1"],"spendLimit":0}}}'
在上面的例子中,我们要在GCP上创建一个名为notorious-moose 的集群。这是一个位于GCP的us-central1 区域的无服务器集群,我们将支出限额设置为0.00美元。当这个请求被提交时,API将创建新的集群并返回关于它的信息,包括它唯一的集群ID(然后我们可以在其他API请求中使用它来执行专门针对这个集群的操作)。
这里要注意的是,spend_limit 是你想在这个集群上花费的最大金额,每月,单位是美分。因此,举例来说,在你的请求中输入spendLimit":100 ,就可以把这个集群的月消费限额设为1美元。
(要创建一个有消费限额的集群,你需要有信用卡信息与你的CockroachDB云账户相关联。然而,你可以创建永远免费的无服务器集群,而不需要输入任何信用卡信息)。
获取集群及其节点的信息
有了集群的ID,我们可以使用API来返回特定集群的信息,就像这样。
curl --request GET \
--url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id} \
--header 'Authorization: Bearer {secret_key}'
在上述请求中,{cluster_id} 和{secret_key} 必须用我们想要的特定集群ID和我们的秘钥来代替。
这个请求将返回与我们的集群有关的各种元数据,包括创建日期、云提供商和地区、无服务器支出限制(如适用)等。
我们还可以在该请求中的{cluster_id} 后面添加/nodes ,以便像这样获得一个集群的节点信息。
curl --request GET \
--url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/nodes \
--header 'Authorization: Bearer {secret_key}'
在其他方面,这将返回一个LIVE 或NOT READY 的status ,让我们可以看到一个节点是可用的还是已经停机了。
改变无服务器花费的限制
改变一个集群的花费限额的工作方式与此类似。我们只需要提交一个请求,指定集群和新的支出限额。
curl --request PUT \
--url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/spend-limit \
--header 'Authorization: Bearer {secret_key}' \
--data '{"spendLimit": {spend_limit}}'
在上面的例子中,我们要用我们想要的最大月消费额(以美分为单位)来代替{spend_limit} ,因此,例如要设置10美元/月的消费额度,我们可以使用1000 。
删除一个集群
删除一个集群与创建一个集群非常相似,只是我们不需要在集群ID之外指定任何集群参数。
curl --request DELETE \
--url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id} \
--header 'Authorization: Bearer {secret_key}'
创建和删除SQL用户
要创建一个SQL用户,我们可以提交一个API请求,指定新用户的用户名和密码。
curl --request POST \
--url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/sql-users \
--header 'Authorization: Bearer {secret_key}' \
--header 'content-type: application/json' \
--data '{"name":"{example_username{","password":"{example_password}"}'
和前面的例子一样,{cluster_id},{secret_key},{example_username}, 和{example_password} 必须用所需的值替换,这个请求才能生效。
我们还可以使用API来删除现有的SQL用户。
curl --request DELETE \
--url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/sql-users/{username} \
--header 'Authorization: Bearer {secret_key}'