佈建網路位址轉譯 (NAT) IP

本頁內容適用於 Apigee,但不適用於 Apigee Hybrid

查看 Apigee Edge 說明文件。

本節說明如何管理 Apigee 執行個體的 NAT IP。

Apigee 提供暫時 IP 和專屬 IP。在許多情況下,暫時性 IP 就已足夠。 如果後端不需要 IP 許可清單,您就不必管理 NAT IP,Apigee 會自動為輸出流量分配臨時 IP。

如果您需要 IP 位址許可清單,可以保留及啟用 IP 位址,讓 Apigee 將靜態 IP 位址用於輸出流量。

設定 Apigee NAT IP 佈建

如要為 Apigee 執行個體設定 NAT IP 佈建,請按照下列步驟操作:

  1. 建立並填入下列環境變數:

    變數

    PROJECT_ID=YOUR_PROJECT_ID
    ORG_ID=YOUR_ORG_ID
    INSTANCE_NAME=YOUR_INSTANCE_NAME
    NAT_ID=1st_NAT_IP_ID

    範例

    PROJECT_ID=apigee-saas-prod
    ORG_ID=apigee-saas-prod
    INSTANCE_NAME=prod-us-west1-instance1
    NAT_ID=nat-1

    其中:

    • YOUR_PROJECT_ID 是您在必要條件中建立的 Cloud 專案 ID。如果不確定專案 ID,請使用 Cloud 控制台或 gcloud projects list 指令尋找。
    • YOUR_ORG_ID 是您的 Apigee 機構 ID。
    • YOUR_INSTANCE_NAME 是 Apigee 執行個體的名稱。
    • 1st_NAT_IP_ID 是您要指派給這個 NAT IP 位址的名稱,例如 nat-1。這個參數的值不得超過 20 個字元。
  2. 使用下列指令預留 NAT IP:
    1. 在指令列中取得 gcloud 驗證憑證,如下列範例所示:

      TOKEN=$(gcloud auth print-access-token)

      如要確認權杖是否已填入,請使用 echo,如下列範例所示:

      echo $TOKEN

      這時應該會以編碼字串的形式顯示權杖。

      詳情請參閱 gcloud 指令列工具總覽

    2. 保留 NAT IP 的指令會傳回長時間執行作業。因此,如下所示的指令會將輸出內容指派給變數 operation_name
      operation_name=$(curl -H "Authorization: Bearer $TOKEN" \
        "https://apigee.googleapis.com/v1/organizations/${ORG_ID}/instances/${INSTANCE_NAME}/natAddresses" \
        -X POST -H "content-type:application/json" -d "{\"name\":\"${NAT_ID}\"}" | jq -r '.name')
      
    3. 輪詢長時間執行的作業,直到顯示 done: true 狀態為止,方法是執行下列要求:
      curl -s -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/$operation_name"
  3. 作業完成後,請使用下列指令啟用 NAT IP:
    1. 啟用 IP 並將長時間執行的作業名稱指派給 operation_name
      operation_name=$(curl -H "Authorization: Bearer $TOKEN" \
        "https://apigee.googleapis.com/v1/organizations/${ORG_ID}/instances/${INSTANCE_NAME}/natAddresses/${NAT_ID}:activate" \
        -X POST -H "content-type:application/json" -d "{}" | jq -r '.name')
    2. 輪詢長時間執行的作業,直到顯示 done: true 狀態為止:
      curl -s -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/$operation_name"
  4. 針對需要設定的每個 NAT IP,使用新的 NAT IP 名稱重複執行此程序。

擷取網路位址轉譯 (NAT) IP

使用下列指令列出執行個體的 NAT IP:

curl -H "Authorization: Bearer $TOKEN" \
  "https://apigee.googleapis.com/v1/organizations/${ORG_ID}/instances/${INSTANCE_NAME}/natAddresses"

回應範例如下:

{
  "natAddresses": [
    {
      "name": "nat-1",
      "ipAddress": "35.203.160.18",
      "state": "ACTIVE"
    },
    {
      "name": "nat-2",
      "ipAddress": "35.230.14.174",
      "state": "RESERVED"
    },
    {
      "name": "nat-3",
      "state": "CREATING"
    }
  ]
}

NAT IP 的狀態

  • CREATING :網路位址轉譯 (NAT) IP 正在建立中。尚未準備就緒。
  • RESERVED:已建立 NAT IP,但尚未使用。您可以在啟用 IP 位址前,先將其加入許可清單。
  • ACTIVE:NAT IP 用於傳送輸出流量。
  • DELETING:正在刪除 NAT IP。

刪除 NAT IP

您可以使用下列指令刪除 NAT IP:

  1. 刪除 IP,並將輸出內容指派給「operation_name」。
    operation_name=$(curl -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/${ORG_ID}/instances/${INSTANCE_NAME}/natAddresses/${NAT_ID}" \
      -X DELETE | jq -r '.name')
  2. 輪詢長時間執行的作業,直到狀態顯示為 done: true
    curl -s -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/$operation_name"