设置 API 环境
您需要先设置环境,然后才能使用 Transit Gateway API。
常规先决条件
设置帐户以访问 Transit Gateway。 确保您的帐户 已升级到付费帐户。
API 先决条件
必须先获取 IAM 令牌,将端点存储为变量,并验证您是否有权访问 IBM Cloud Transit Gateway API 服务,然后才能使用 API 与 Transit Gateway 进行交互。
以下示例使用 transit.cloud.ibm.com
全局端点。
步骤 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
变量以包含该变量。 这些示例假定 Bearer
中包含 IAM_TOKEN
。
由于 IAM 令牌到期,因此必须重复上述步骤以每小时刷新一次令牌。
步骤 3:将 API 端点存储为变量
运行以下命令以将 API 端点存储在变量中,以便稍后可以在会话中复用该端点。
公共端点:
transit_api_endpoint="https://transit.cloud.ibm.com"
虚拟专用端点:
transit_api_endpoint="https://private.transit.cloud.ibm.com"
要验证变量是否已保存,请运行 echo $transit_api_endpoint
并确保响应不为空。
步骤 4:将 API 版本存储为变量
每个 API 请求都必须包含格式为 YYYY-MM-DD
的 version
参数。 运行以下命令以将版本日期存储在变量中,以便可以在会话中复用该版本日期。 有关设置 version
参数的更多信息,请参阅 Transit Gateway API 中的 版本控制。
api_version="2020-03-31"
要验证此变量是否已保存,请运行 echo $api_version
并确保响应不为空。
步骤 5:验证您是否具有 API 访问权
如果遇到意外结果,请在 --verbose
命令后面添加 curl
(调试)标志,以获取详细的日志记录信息。
-
调用 列表可用位置 API 以查看可用于 JSON 格式的 Transit Gateway 的位置。 至少返回一个对象。
curl -X GET "$transit_api_endpoint/v1/offering_types/dedicated/locations?version=$api_version" -H "Authorization: $IAM_TOKEN"
-
调用 List gateways API 以查看您已在帐户下创建的 JSON 格式的任何网关。
curl -X GET "$transit_api_endpoint/v1/transit_gateways?version=$api_version" -H "Authorization: $IAM_TOKEN"