为 Private Cloud 连接器配置 Apigee API Hub

本部分详细介绍了 Apigee API Hub for Private Cloud 连接器的配置步骤,包括网络、身份验证和组织专用设置。

网络和身份验证设置

  1. 将端口列入许可名单:Apigee API Hub for Private Cloud 连接器需要连接到管理服务器才能获取所需的 API 元数据,因此连接器需要能够访问管理服务器端口 8080 和 443。
  2. 基于密钥的 Google Cloud Platform 服务身份验证:Apigee API Hub for Private Cloud 连接器与 Google Cloud 服务通信,需要使用令牌进行身份验证。这是通过使用服务账号密钥创建模拟令牌来实现的。

    • 用于生成令牌的服务账号:创建一个专门用于生成令牌的新服务账号。此服务账号必须具有 Token Creator 角色。
    • 生成并下载服务账号密钥
      • 按照创建服务账号密钥中的步骤为令牌生成服务账号生成 JSON 密钥。
      • 下载此密钥文件(例如,下载到适用于私有云的 Apigee API Hub 连接器虚拟机的 /opt/apigee/keys/uapim.key 中)。
    • 设置 GOOGLE_APPLICATION_CREDENTIALS:启动适用于私有云的 Apigee API Hub 连接器时,您需要通过环境变量提供此文件的路径:
      export $GOOGLE_APPLICATION_CREDENTIALS=/opt/apigee/keys/uapim.key
  3. 管理 API 身份验证 (UAPIM_MGMT_AUTH):Apigee API Hub for Private Cloud 连接器需要凭据才能调用 Apigee Management API。为了安全起见,并实现自动化,请在 Apigee 中使用机器用户,而不是人工用户。

    在 Apigee 中创建机器用户:

    1. 创建用户
      • 在 Apigee 控制台中,创建机器用户(或系统用户)。如需详细了解用户和角色,请参阅自动执行令牌生成流程
      • 分配电子邮件地址(用于标识)和描述性名称(例如,uapim-connector-user)。
    2. 分配角色:向机器用户分配以下角色:
      • Apigee API 管理员:此角色提供对 Management API 的访问权限,允许 Apigee API Hub for Private Cloud 连接器与 Apigee 的管理系统进行交互(例如,提取元数据或管理 API 配置)。

生成采用 Base64 编码的凭据:

  1. 为机器用户生成“用户名:密码”对。
  2. 对凭据进行 Base64 编码:echo -n 'username:password' | base64
  3. 使用 base64 编码的值设置环境变量 $UAPIM_MGMT_AUTH:
    export UAPIM_MGMT_AUTH=USERNAME_PASSWORD

    其中,USERNAME_PASSWORD 是用户名和密码对的 base64 编码值。

    请确保在启动 Apigee API Hub for Private Cloud 连接器之前设置此环境变量。

为 Private Cloud 连接器配置 Apigee API Hub

打开配置文件 /opt/apigee/customer/application/uapim-connector.properties,指定需要将数据上传到 API Hub 的 Apigee 组织。您可能拥有多个插件实例或多个 API Hub 实例。

  conf_uapim.settings.json={\
    "connectorConfig" : { \
      "org1" : { \
        "runtimeDataPubsub" : "", \
        "metadataPubsub":"", \
        "serviceAccount": "mysa1@in.myfirstProject",\
        "pluginInstanceId":"aaaa" \
      },\
      "org2" : { \
        "runtimeDataPubsub" : "", \
        "metadataPubsub":"",\
        "serviceAccount": "mysa2@in.mySecondProject",\
        "pluginInstanceId":"bbbbb", \
      } 
    },
    "runtimeDataPath":"/the/nfs/mounted/path", \    
    "managementServer": "hostname"
  } 

设置 JSON 的说明

  • connectorConfig 部分
    • 这是一个映射,其中每个键都是一个 Apigee 组织名称(例如,org1、org2)。
    • 每个组织条目都包含以下字段,这些字段是在插件创建步骤中收到的:
      • runtimeDataPubsub:相应组织的运行时(分析)数据的 Pub/Sub 主题。
      • metadataPubsub:相应组织的 API 元数据的 Pub/Sub 主题。
      • serviceAccount:用于对向此组织的 Pub/Sub 写入数据进行身份验证的服务账号(例如 mysa1@in.myfirstProject.iam.gserviceaccount.com)。
      • pluginInstanceId:与相应组织关联的插件的唯一实例 ID。
  • runtimeDataPath 部分:提供 NFS 装载的路径,消息处理器会将 Analytics (AX) 数据写入该路径。此路径必须与消息处理器上配置的路径相同。
  • managementServer 部分:Apigee 管理服务器网址的主机名或 IP 地址。
  • 环境变量 UAPIM_MGMT_AUTH:此环境变量在外部设置,包含用于访问管理服务器的 base64 编码的 username:password

添加转发代理配置

在同一文件 /opt/apigee/customer/application/uapim-connector.properties 中添加转发代理配置

  1. conf_http_client_service_jetty.proxy.enabled=true
  2. conf_http_client_service_jetty.proxy.host=
  3. conf_http_client_service_jetty.proxy.port=
  4. conf_http_client_service_jetty.proxy.user=
  5. conf_http_client_service_jetty.proxy.password=

为了使连接器正常工作,它需要连接到以下外部来源:

  • pubsub.googleapis.com:443
  • oauth2.googleapis.com:443
  • iamcredentials.googleapis.com:443

如果连接器不允许直接连接到外部来源,但允许通过正向代理连接,则用户需要通过以下配置提供正向代理配置,并确保上述外部来源已列入许可名单。

启动适用于私有云的 Apigee API Hub 连接器

设置完所有配置后,使用 Apigee 服务命令启动 Apigee API Hub for Private Cloud 连接器:

apigee-service edge-uapim-connector start