预配 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
  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 名称,对您要设置的每个 ANT 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"