设置 API 和 CLI 环境
要能够使用 API 或 CLI 创建 IBM Cloud® Virtual Private Cloud (VPC),请先设置环境。
常规先决条件
CLI 先决条件
必须先安装 IBM Cloud CLI 和 VPC CLI 插件,然后才能使用 CLI 来创建 VPC。
IBM Cloud CLI 在 LinuxONE (s390x 处理器体系结构) 上不受支持。 但是,您可以在另一个受支持的平台上安装 CLI,并将其与 LinuxONE (s390x 处理器体系结构) 虚拟服务器实例配合使用。
-
安装 IBM Cloud CLI。
-
安装 VPC CLI 插件。
ibmcloud plugin install vpc-infrastructure
VPC CLI 操作使用
is
扩展。 要了解如何使用 CLI 命令,可以运行:ibmcloud is help ibmcloud is help vpc-create ibmcloud is help instance-create
要了解如何使用 CLI 创建资源,请参阅创建 VPC 资源。
通过 VPC API 专用端点访问 CLI
要设置 CLI 以使用 VPC API 专用端点,请执行以下步骤:
如果需要下载 IBM Cloud CLI 和关联插件,那么必须能够访问它们所在的公共存储库。
-
确保核心 IBM Cloud CLI 和 VPC 基础架构服务插件更新为最新版本:
ibmcloud update ibmcloud plugin update vpc-infrastructure
-
要切换到 API 专用端点方式,请输入以下命令:
ibmcloud login -a private.cloud.ibm.com
目前,API 专用端点方式仅支持
us-south
和us-east
区域。
API 先决条件
在使用 API 来创建 VPC 之前,必须先获取 IAM 令牌,将端点存储为变量,并验证您是否有权访问 VPC API 服务。
以下示例使用 us-south
区域端点。 要查看其他 API 端点,请参阅 Virtual Private Cloud API。
步骤 1:将 API 密钥存储为变量
运行以下命令将帐户的 API 密钥存储在环境变量中。 如果您没有 API 密钥,请参阅 创建 API 密钥。
apikey="<YOUR_API_KEY>"
步骤 2:获取 IBM Identity and Access Management (IAM) 令牌
运行以下命令,使用 JSON 处理实用程序 jq 获取并解析 IAM 令牌。 可以修改此命令以使用其他解析工具,也可以除去命令的最后一部分(如果希望手动解析令牌)。
iam_token=`curl -k -X POST \
--header "Content-Type: application/x-www-form-urlencoded" \
--header "Accept: application/json" \
--data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey" \
--data-urlencode "apikey=$apikey" \
"https://iam.cloud.ibm.com/identity/token" |jq -r '(.token_type + " " + .access_token)'`
要查看 IAM 令牌,请运行 echo $iam_token
。 结果应该类似于以下内容:
Bearer <your token>
Authorization 头需要令牌以“Bearer”开头。 如果结果不包含“Bearer”,请更新 iam_token
变量以包含该值。 这些示例假定 iam_token
中包含“Bearer”。
必须重复上述步骤以每小时刷新一次 IAM 令牌,因为该令牌会到期。
步骤 3:将 API 端点存储为变量
运行以下命令将 API 端点存储在变量中,以便日后可以在会话中复用。
公共端点:
vpc_api_endpoint="https://us-south.iaas.cloud.ibm.com"
虚拟专用端点:
vpc_api_endpoint="https://us-south.private.iaas.cloud.ibm.com"
要验证该变量是否已保存,请运行 echo $vpc_api_endpoint
并确保响应不为空。
有关受支持的端点区域,请参阅 可用端点。
步骤 4:将 API 版本存储为变量
每个 API 请求都必须包含 version
参数,格式为 YYYY-MM-DD
。 运行以下命令将版本日期存储在变量中,以便可以在会话中复用。 有关设置 version
参数的更多信息,请参阅 虚拟私有云 API 中的版本控制。
api_version="2019-09-30"
要验证该变量是否已保存,请运行 echo $api_version
并确保响应不为空。
步骤 5:验证您是否具有 API 访问权
如果遇到意外结果,请在 --verbose
命令后面添加 curl
(调试)标志,以获取详细的日志记录信息。 有关常见错误的更多信息,请参阅故障诊断。
-
调用 GET Regions API 来查看可用于 VPC 的区域(JSON 格式)。 应该会返回至少一个对象。
必须随每个 API 请求发送
generation
参数,以指定要使用的代。 对于第 2 代虚拟服务器实例,请指定generation=2
。 有关详细信息,请参阅 虚拟私有云 API 中的生成。curl -X GET "$vpc_api_endpoint/v1/regions?version=$api_version&generation=2" \ -H "Authorization: $iam_token"
-
调用 GET Zones API 来查看特定区域中可用于 VPC 的所有专区(JSON 格式),例如
us-south
。curl -X GET "$vpc_api_endpoint/v1/regions/us-south/zones?version=$api_version&generation=2" \ -H "Authorization: $iam_token"
-
调用 GET Profiles API 来查看可用于虚拟服务器实例的概要文件(JSON 格式)。 应该会返回至少一个对象。
在 curl 命令之后添加
| json_pp
可获取可读的 JSON 字符串。json_pp
命令是一个 JSON 预处理器,通常默认安装在大多数 Linux 发行版上。curl -X GET "$vpc_api_endpoint/v1/instance/profiles?version=$api_version&generation=2" \ -H "Authorization: $iam_token"
-
调用 GET Images API 以返回可用于实例的映像(JSON 格式)。 应该会返回至少一个对象。
curl -X GET "$vpc_api_endpoint/v1/images?version=$api_version&generation=2" \ -H "Authorization: $iam_token"
-
调用 GET VPC API 来查看已在帐户下创建的任何 VPC(JSON 格式)。
curl -X GET "$vpc_api_endpoint/v1/vpcs?version=$api_version&generation=2" \ -H "Authorization: $iam_token"
要了解如何使用 API 创建资源,请参阅 使用 CLI 和 API 创建 VPC 资源。