设置 API
您可以使用 IBM Cloud® Schematics API 来自动执行 IBM Cloud中的 Schematics 功能。 要使用 CLI,请参阅 准备使用 CLI。
要查找受支持的 IBM Cloud® Schematics APIs
,API 端点以及必需的 API 头和主体信息的概述,请参阅 Schematics API 文档。
使用 Schematics API
了解如何使用 IBM Cloud® Schematics API 通过 Identity and Access Management 令牌进行认证。
要使用 IBM Cloud Schematics API,必须提供使用 IBM Cloud 凭证生成的 IBM Cloud® Identity and Access Management (IAM) 令牌。 根据您向 IBM Cloud 进行认证的方式,可以在下列选项之间进行选择,以自动创建 IBM Cloud IAM 令牌。
认证选项 | 描述 |
---|---|
IBM Cloud 用户名和密码 | 您可以按照本主题中的步骤完全自动创建 IBM Cloud IAM 访问令牌。 如果使用 MFA 向 IBM Cloud 进行认证,那么无法完全自动创建 IBM Cloud IAM 令牌,因为 MFA 需要与 Web 浏览器进行手动交互。 要完全自动创建 IBM Cloud IAM 令牌,必须使用 IBM Cloud API 密钥。 |
IBM Cloud API 密钥 | 作为使用 IBM Cloud 用户名和密码的替代方法,您可以 使用 IBM Cloud API 密钥。IBM Cloud API 密钥特定于为其生成的 IBM Cloud 帐户。 要访问在 IBM Cloud API 密钥所基于的帐户以外的其他帐户中创建的工作空间,必须为该帐户生成 API 密钥。 |
- 创建 IBM Cloud IAM 访问令牌。
API 令牌请求的请求主体取决于 IBM Cloud 认证方法。
您可以在 API 输出的 access_token
字段中找到 IBM Cloud IAM 令牌。 请记下 IBM Cloud IAM 令牌以在后续步骤中用于检索更多头信息。
POST `https://iam.cloud.ibm.com/identity/token`
输入参数 | 值 |
---|---|
头 | : Content-Type: application/x-www-form-urlencoded :授权: 基本 [Yng6Yng=^] Yng6Yng= 等于用户名 bx 和密码 bx URL授权。 |
IBM Cloud 用户名和密码的主体 | :grant_type: password :response_type: cloud_iam uaa :username : 您的 IBM Cloud username.:password : 您的 IBM Cloud password.:uaa_client_id: cf :uaa_client_secret: 添加未指定值的 uaa_client_secret 密钥。 |
IBM Cloud API 密钥的主体 | :grant_type: urn:ibm:params:oauth:grant-type:apikey :response_type: cloud_iam uaa :apikey : IBM Cloud API 密钥:uaa_client_id: cf :uaa_client_secret: 添加未指定值的 uaa_client_secret 密钥。 |
IBM Cloud 一次性通行码的主体 | :grant_type:urn:ibm:params:oauth:grant-type:passcode :response_type: cloud_iam uaa :passcode : 您的 IBM Cloud 一次性密码。 运行 ibmcloud login --sso 并遵循 CLI 输出中的指示信息,以使用 Web browser.:uaa_client_id: cf :uaa_client_secret: 添加未指定值的 uaa_client_secret 密钥。 |
示例输出
{
"access_token": "<iam_access_token>",
"refresh_token": "<iam_refresh_token>",
"uaa_token": "<uaa_token>",
"uaa_refresh_token": "<uaa_refresh_token>",
"token_type": "Bearer",
"expires_in": 3600,
"expiration": 1493747503
"scope": "ibm openid"
}
- 检索您正在使用的令牌的帐户标识。
将 <iam_access_token>
替换为上一步中从 API 输出的 access_token
字段中获取的 IAM 令牌。 在 API 输出中,您可以在 resources.metadata.guid 字段中找到 IBM Cloud 账户的 ID。
GET https://accounts.cloud.ibm.com/coe/v2/accounts
输入参数 | 值 |
---|---|
头 | :Content-Type: application/json :Authorization: bearer <iam_access_token> :Accept: application/json |
示例输出
{
"next_url": null,
"total_results": 5,
"resources": [
{
"metadata": {
"guid": "<account_ID>",
"url": "/coe/v2/accounts/<account_ID>",
"created_at": "2020-09-29T02:49:41.842Z",
"updated_at": "2020-08-16T18:56:00.442Z",
"anonymousId": "1111a1aa1a1111a1aa11aa11111a1111"
},
"entity": {
"name": "<account_name>",
}
}
]
}
- 生成新的 IBM Cloud IAM 令牌,该令牌包含您的 IBM Cloud 凭证和要使用的帐户标识。
如果使用的是 IBM Cloud API 密钥,那么必须使用为其创建 API 密钥的 IBM Cloud 帐户标识。 要访问 Schematics 帐户中的工作空间或操作 B
,请登录到帐户 B
并创建基于帐户 B
的 IBM Cloud API 密钥。
POST https://iam.cloud.ibm.com/identity/token
输入参数 | 值 |
---|---|
头 | :Content-Type: application/x-www-form-urlencoded :Authorization: Basic Yng6Yng= [^] Yng6Yng= 等于 -编码的用户名 和密码 的授权。URL bx bx |
IBM Cloud 用户名和密码的主体 | :grant_type: password :response_type: cloud_iam uaa :username : 您的 IBM Cloud 用户名。:password : 您的 IBM Cloud 密码。:uaa_client_ID: cf :uaa_client_secret: 添加未指定任何值的 uaa_client_secret 密钥 specified.:bss_account : 您在上一步中检索到的 IBM Cloud 帐户标识。 |
IBM Cloud API 密钥的主体 | :grant_type: urn:ibm:params:oauth:grant-type:apikey :response_type: cloud_iam uaa :apikey : 您的 IBM Cloud API key.:uaa_client_ID: cf :uaa_client_secret: 添加没有值的 uaa_client_secret 密钥 specified.:bss_account : 您在上一步中检索到的 IBM Cloud 帐户标识。 |
IBM Cloud 一次性通行码的主体 | :grant_type:urn:ibm:params:oauth:grant-type:passcode :response_type: cloud_iam uaa :passcode : 您的 IBM Cloud 密码。:uaa_client_ID: cf :uaa_client_secret: 添加未指定值的 uaa_client_secret 键。:bss_account : 您在上一步中检索到的 IBM Cloud 帐户标识。 |
Example output
{
"access_token": "<iam_token>",
"refresh_token": "<iam_refresh_token>",
"token_type": "Bearer",
"expires_in": 3600,
"expiration": 1493747503
}
您可以在 API 输出的 access_token
中找到 IBM Cloud IAM 令牌,在 refresh_token
字段中找到刷新令牌。
- 使用 Schematics API 列出帐户中的所有工作空间。
用于列出所有工作空间的语法
GET https://schematics.cloud.ibm.com/v1/workspaces/
| Input parameters | Values |
| ----- | --- |
| Header | `Authorization: bearer <iam_token>`|
{: caption="Input parameters to work with the IBM Cloud Schematics API." caption-side="top"}
用于检索有关特定工作空间的信息的语法:
GET https://schematics.cloud.ibm.com/v1/workspaces/{id}
输入参数 | 值 |
---|---|
头 | Authorization: bearer <iam_token> : 您的 IBM Cloud IAM 访问令牌。 |
路径 | id <workspace_ID> :工作区的 ID。 要检索工作空间标识,请运行 ibmcloud schematics workspace list |
- 查看 IBM Cloud Schematics API 文档 以获取受支持
APIs
的列表。
刷新 IBM Cloud IAM 访问令牌并使用 API 获取新令牌
IBM Cloud® Identity and Access Management (IAM) 访问令牌将在 1 小时后到期。 必须定期刷新访问令牌才可确保对 IBM Cloud API 的访问权。 您可以使用相同的步骤获取新的令牌。
在开始之前,请确保您有一个有效的 IBM Cloud IAM 刷新令牌或 IBM Cloud API 密钥,可以用来请求新的访问令牌。
- 刷新令牌: 请按照 IBM Cloud API 自动执行工作区创建和管理流程 中的说明进行操作。
- API 密钥: 获取您的 IBM Cloud API 密钥。
- 在菜单栏中,单击**管理 ** > 访问权 (IAM)。
- 单击用户页面,然后选择您自己。
- 在 API 密钥窗格中,单击创建 IBM Cloud API 密钥。
- 输入 API 密钥的名称和描述,然后单击创建。
- 单击显示以查看生成的 API 密钥。
- 复制 API 密钥,以便可以将其用于检索新的 IBM Cloud IAM 访问令牌。
如果要创建 IBM Cloud IAM 令牌或要获取新的刷新令牌,请执行以下步骤。
- 使用刷新令牌或 IBM Cloud API 密钥来生成新的 IBM Cloud IAM 访问令牌。
POST https://iam.cloud.ibm.com/identity/token
输入参数 | 值 |
---|---|
头 | :Content-Type: application/x-www-form-urlencoded :Authorization: Basic Yng6Yng= Yng6Yng= 等于 -编码的用户名 和密码 的授权。URL bx bx |
使用刷新令牌时的主体 | :grant_type: refresh_token :response_type: cloud_iam uaa :refresh_token: IBM Cloud IAM 刷新令牌。:uaa_client_ID: cf :uaa_client_secret: :bss_account: 您的 IBM Cloud 帐户标识。添加 uaa_client_secret 关键字,但不指定值。 |
使用 IBM Cloud API 密钥时的主体 | :grant_type: urn:ibm:params:oauth:grant-type:apikey :response_type: cloud_iam uaa :apikey: 您的 IBM Cloud API 密钥。:uaa_client_ID: cf :uaa_client_secret: 添加未指定值的 uaa_client_secret 键。 |
示例 API 输出
{
"access_token": "<iam_token>",
"refresh_token": "<iam_refresh_token>",
"uaa_token": "<uaa_token>",
"uaa_refresh_token": "<uaa_refresh_token>",
"token_type": "Bearer",
"expires_in": 3600,
"expiration": 1493747503
}
您可以在 access_token
中找到新的 IBM Cloud IAM 令牌,并在 API 输出的 refresh_token
字段中找到刷新令牌。
- 使用上一步中的令牌继续使用 IBM Cloud Schematics API 文档。