設定 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-infrastructureVPC 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: Bearer $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: Bearer $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: Bearer $iam_token" -
呼叫 GET Images API 以傳回可用於實例的映像檔(JSON 格式)。 應該傳回至少一個物件。
curl -X GET "$vpc_api_endpoint/v1/images?version=$api_version&generation=2" \ -H "Authorization: Bearer $iam_token" -
呼叫 GET VPC API 來查看已在帳戶下建立的任何 VPC(JSON 格式)。
curl -X GET "$vpc_api_endpoint/v1/vpcs?version=$api_version&generation=2" \ -H "Authorization: Bearer $iam_token"
若要瞭解如何使用 API 來建立資源,請參閱 使用 CLI 和 API 來建立 VPC 資源。