設定 API 和 CLI 環境

要能夠使用 API 或 CLI 建立 IBM Cloud® Virtual Private Cloud (VPC),請先設定環境。

一般必要條件

  1. 設定您的帳戶以存取 VPC。 請確認您的帳戶已 升級為付費帳戶

  2. 確保您有公用 SSH 金鑰,該金鑰將用於連接至虛擬伺服器實例。 例如,藉由執行下列指令,在 Linux 伺服器上產生 SSH 金鑰:

    ssh-keygen -t rsa
    

    這個指令會產生兩個檔案。 生成的公鑰位於您的家目錄下 .ssh 目錄中的 id_rsa.pub 檔案內,例如: .../.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: 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 資源