创建组织、环境和虚拟主机

适用于私有云的 Edge v. 4.16.09

创建组织 环境和虚拟主机

在 Apigee Edge 上创建 API 代理之前,您必须创建至少一个组织,并且 一个或多个环境和虚拟主机中。

通常,组织和环境是一起创建的。如需简化流程,请使用 apigee-provision 实用程序。 在边缘管理服务器上的命令行上调用该虚拟机:

> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-provision setup-org -f configFile

配置文件包含:

APIGEE_ADMINPW=adminPword     # If omitted, you are prompted for it.
NEW_USER="y"
USER_NAME=orgAdmin@myCo.com
FIRST_NAME=foo
LAST_NAME=bar
USER_PWD="userPwrod"
ORG_NAME=example  # lowercase only, no spaces, underscores, or periods.
ENV_NAME=prod
VHOST_PORT=9001
VHOST_NAME=default
VHOST_ALIAS="$IP1:9001"
# Optionally configure TLS/SSL for virtual host.
# VHOST_SSL=y     # Set to "y" to enable TLS/SSL on the virtual host.
# KEYSTORE_JAR=   # JAR file containing the cert and private key.
# KEYSTORE_NAME=  # Name of the keystore. 
# KEYSTORE_ALIAS= # The key alias.
# KEY_PASSWORD=   # The key password, if it has one. 
# AXGROUP=axgroup-001 # Default value is axgroup-001 

然后,该命令会:

  • 创建组织
    注意:组织一经创建便无法重命名。
  • 将组织与 pod 相关联,默认情况下会将其与“网关”pod 相关联
  • 将指定的用户添加为组织管理员。如果用户不存在,您可以创建 一个。
  • 创建一个或多个环境
  • 为每个环境创建一个或多个虚拟主机
  • 将环境与所有消息处理器关联
  • 启用分析功能

有关完整的静默配置文件,请参阅启动 组织

默认情况下,组织名称和环境名称的最大长度为 20 个字符 使用 apigee-provision 时 实用程序。如果您直接使用 Edge API 创建组织或 环境

创建组织

使用 create-org 命令创建组织:

> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-provision create-org -f configFile

此脚本会创建组织,但不会添加或配置环境, 组织处理 API 调用所需的虚拟主机。

配置文件包含组织的名称和组织管理员的电子邮件地址。通过 名称属性中可以使用的字符限制为:a-z0-9\-$%。请勿使用空格、 英文句号或大写字母:

APIGEE_ADMINPW=adminPword    # If omitted, you are prompted for it.
ORG_NAME=example  # lowercase only, no spaces, underscores, or periods.
ORG_ADMIN=orgAdmin@myCo.com

该命令会执行以下操作:

  • 创建组织
  • 将组织与 pod 相关联,默认情况下会将其与“网关”pod 相关联
  • 将指定用户添加为组织管理员。用户必须已存在;否则脚本会发出错误。
<Error>
    <Code>organizations.OrganizationAlreadyExists</Code>
    <Message>Organization : test already exists</Message>
    <Contexts/>
</Error>

使用 API 调用次数

或者,您也可以使用以下 API 调用创建组织。第一个调用会创建组织:

curl -H "Content-Type:application/xml" -u <sysAdminEmail>:<adminPasswd> \
-X POST http://<ms-ip>:8080/v1/organizations \
-d '<Organization name="<org-name>" type="paid"/>'

下一次调用会将组织与 Pod 相关联:

curl -H "Content-Type:application/x-www-form-urlencoded" \
-u <sysAdminEmail>:<adminPasswd> -X POST \
http://<ms-ip>:8080/v1/organizations/<org-name>/pods \
-d "region=default&pod=gateway" 

您可以多次进行此调用,以将组织与多个 pod 相关联。

最后一个调用会将现有用户添加为组织的组织管理员:

curl -H "Content-Type:application/xml" -u <sysAdminEmail>:<adminPasswd> \
-X POST \
http://<ms-ip>:8080/v1/organizations/<org-name>/users/<user-email>/userroles/ \
-d '<Roles><Role name="orgadmin"/></Roles>'

如果用户不存在,您可以使用以下调用创建用户,如“添加用户”中所述。

创建环境

使用 add-env 命令 在现有组织中创建环境:

> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-provision add-env -f configFile

此配置文件包含创建环境和虚拟主机所需的信息:

APIGEE_ADMINPW=adminPword    # If omitted, you are prompted for it.
ORG_NAME=example  # lowercase only, no spaces, underscores, or periods.
ENV_NAME=prod
VHOST_PORT=9001
VHOST_NAME=default
VHOST_ALIAS="$IP1:9001"
# Optionally configure TLS/SSL for virtual host.
# VHOST_SSL=y     # Set to "y" to enable TLS/SSL on the virtual host.
# KEYSTORE_JAR=   # JAR file containing the cert and private key.
# KEYSTORE_NAME=  # Name of the keystore. 
# KEYSTORE_ALIAS= # The key alias.
# KEY_PASSWORD=   # The key password, if it has one. 
# AXGROUP=axgroup-001 # Default value is axgroup-001

命令:

  • 创建环境
  • 为环境创建单个虚拟主机
  • 将环境与 Pod 中与 包含环境的组织。
  • 启用分析
    注意:如果您为组织中的一个环境启用分析功能,则必须 为组织中的所有环境启用 Google Analytics。

使用 API 调用创建环境

或者,您也可以使用以下 API 调用来创建环境。第一个调用会创建环境:

curl -H "Content-Type:application/xml" -u <sysAdminEmail>:<adminPasswd> \
-X POST http://<ms-ip>:8080/v1/organizations/<org-name>/environments \
-d  '<Environment name="<env-name>"/>' 

下一个调用会将环境与消息处理器相关联。针对每个 要与环境关联的消息处理器:

curl -H "Content-Type:application/x-www-form-urlencoded" \
-u <sysAdminEmail>:<adminPasswd> -X POST \
http://<ms-ip>:8080/v1/organizations/<org-name>/environments/<env-name>/servers \
-d "action=add&uuid=<uuid>"

其中“<uuid>”是消息处理器的 UUID。您可以使用以下命令获取 UUID:

> curl http://<mp-ip>:8082/v1/servers/self

其中,“<mp-ip>”是消息处理器的 IP 地址。

下一个 API 调用会为给定环境启用 Google Analytics。它可验证是否存在 所有数据中心的 Pod 中的 Qpid 和 Postgres 服务器。然后,会启动 Google Analytics 新手入门流程 特定组织和环境

> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-provision enable-ax -f configFile

此配置文件包含:

ORG_NAME=orgName  # lowercase only, no spaces, underscores, or periods.
ENV_NAME=envName
curl -H "Content-Type:application/json" -u <sysAdminEmail>:<adminPasswd> 
-X POST http://<ms-ip>:8080/v1/organizations/<org-name>/environments/<env-name>/analytics/admin -d "@sample.json"

其中,sample.json 包含以下内容:

{
  "properties" : {
    "samplingAlgo" : "reservoir_sampler",
    "samplingTables" : "10=ten;1=one;",
    "aggregationinterval" : "300000",
    "samplingInterval" : "300000",
    "useSampling" : "100",
    "samplingThreshold" : "100000"
  },
  "servers" : {
    "postgres-server" : [ "1acff3a5-8a6a-4097-8d26-d0886853239c", "f93367f7-edc8-4d55-92c1-2fba61ccc4ab" ],  
    "qpid-server" : [ "d3c5acf0-f88a-478e-948d-6f3094f12e3b", "74f67bf2-86b2-44b7-a3d9-41ff117475dd"] 
  }
}

postgres-servers 属性包含以英文逗号分隔的 Postgres UUID 列表,而 qpid-server 属性包含 Qpid UUID。如果您需要获取这些 UUID,请使用以下命令。

对于 Qpid,请运行以下命令:

curl -u <sysAdminEmail>:<passwd> http://<ms-ip>/v1/servers?pod=central

此命令的输出是一个 JSON 对象。对于每个 Qpid 服务器,您会看到以下格式的输出:

"type" : [ "qpid-server" ],
"uUID" : "d3c5acf0-f88a-478e-948d-6f3094f12e3b"

对于 Postgres,请运行以下命令:

curl -u <sysAdminEmail>:<passwd> http://<ms-ip>/v1/servers?pod=analytics

对于每个 Postgres 服务器,您将看到以下形式的输出:

"type" : [ "postgres-server" ],
"uUID" : "d3c5acf0-f88a-478e-948d-6f3094f12e3b"

创建虚拟主机

您可以在组织中现有环境中创建虚拟主机。通常,一个环境支持多个虚拟主机。例如,一个虚拟主机可能支持 HTTP 协议,而同一环境中的另一个虚拟主机支持加密的 HTTPS 协议。

使用以下 API 调用创建其他虚拟主机,或为 环境:

curl -H "Content-Type:application/xml" -u <sysAdminEmail>:<adminPasswd> \
-X POST \
http://<ms-ip>:8080/v1/organizations/<org-name>/environments/<env-name>/virtualhosts \
-d '<VirtualHost name="default"> \
    <HostAliases> \
      <HostAlias>myorg-test.apigee.net</HostAlias> \ 
    </HostAliases> \
    <Interfaces/> \
    <Port>9443</Port> \
  </VirtualHost>' 

如需详细了解如何创建虚拟主机(包括创建通过 HTTPS 使用 TLS/SSL 的安全虚拟主机),请参阅 http://apigee.com/docs/api-services/content/creating-virtual-host