IBM Cloud Docs
设置 API 和 CLI 环境

设置 API 和 CLI 环境

要能够使用 API 或 CLI 创建 IBM Cloud® Virtual Private Cloud (VPC),请先设置环境。

常规先决条件

  1. 设置帐户以访问 VPC。 确保您的账户已 升级为付费账户

  2. 确保您有公用 SSH 密钥,该密钥将用于连接到虚拟服务器实例。 例如,在 Linux 服务器上,通过运行以下命令来生成 SSH 密钥:

    ssh-keygen -t rsa
    

    此命令会生成两个文件。 生成的公钥在 id_rsa.pub 文件中,该文件位于你的主目录下的 .ssh 目录中,例如 .../.ssh/id_rsa.pub

    有关更多信息,请参阅 SSH 密钥

CLI 先决条件

必须先安装 IBM Cloud CLI 和 VPC CLI 插件,然后才能使用 CLI 来创建 VPC。

IBM Cloud CLI 在 LinuxONE (s390x 处理器体系结构) 上不受支持。 但是,您可以在另一个受支持的平台上安装 CLI,并将其与 LinuxONE (s390x 处理器体系结构) 虚拟服务器实例配合使用。

  1. 安装 IBM Cloud CLI

  2. 安装 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 和关联插件,那么必须能够访问它们所在的公共存储库。

  1. 确保核心 IBM Cloud CLI 和 VPC 基础架构服务插件更新为最新版本:

    ibmcloud update
    ibmcloud plugin update vpc-infrastructure
    
  2. 要切换到 API 专用端点方式,请输入以下命令:

    ibmcloud login -a private.cloud.ibm.com
    

    目前,API 专用端点方式仅支持 us-southus-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 资源