适用于私有云的 Edge v4.18.05
您可以在命令行中通过单个命令创建组织、环境和虚拟主机,也可以分别创建它们。此外,您还可以使用 Management API 执行其中的许多操作。
视频 :观看一段简短视频,简要了解 Apigee 组织设置和配置。
同时创建组织、环境和虚拟主机
在 Apigee Edge 上创建 API 代理之前,您必须至少创建一个组织,并在每个组织中创建一个或多个环境和虚拟主机。
通常,组织和环境是一起创建的。如需简化此过程,请使用 apigee-provision
实用程序。在 Edge 管理服务器上的命令行中调用它:
/opt/apigee/apigee-service/bin/apigee-service apigee-provision setup-org -f configFile
其中,configFile 是配置文件的路径,该配置文件类似于以下内容:
# Set Edge sys admin credentials. ADMIN_EMAIL=your@email.com APIGEE_ADMINPW=admin_password # If omitted, you are prompted for it. NEW_USER="y" USER_NAME=orgAdmin@myCo.com FIRST_NAME=foo LAST_NAME=bar USER_PWD="userPword" ORG_NAME=example # lowercase only, no spaces, underscores, or periods. ENV_NAME=prod # lowercase only 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. # Optionally set the base URL displayed by the Edge UI for an # API proxy deployed to the virtual host. # VHOST_BASEURL="http://myCo.com" # AXGROUP=axgroup-001 # Default value is axgroup-001
设置组织时,setup-org
脚本会执行以下操作:
- 创建组织。
- 将组织与“网关”Pod 相关联。您无法更改此设置。
- 将指定用户添加为组织管理员。如果用户不存在,您可以创建一个。
- 创建一个或多个环境。
- 为每个环境创建一个或多个虚拟主机。
- 将环境与所有消息处理器相关联。
- 启用分析。
默认情况下,使用 apigee-provision
实用程序时,组织名称和环境名称的长度上限为 20 个字符。如果您直接使用 Edge API 创建组织或环境,则不受此限制。
创建组织
使用 create-org
命令创建组织,如以下示例所示:
/opt/apigee/apigee-service/bin/apigee-service apigee-provision create-org -f configFile
此脚本会创建组织,但不会添加或配置组织处理 API 调用所需的环境和虚拟主机。
配置文件包含组织的名称和组织管理员的电子邮件地址。您可以在 name
属性中使用的字符仅限于 a-z0-9\-$%
。请勿在名称中使用空格、英文句点或大写字母:
APIGEE_ADMINPW=admin_password # If omitted, you are prompted for it. ORG_NAME=example # lowercase only, no spaces, underscores, or periods. ORG_ADMIN=orgAdmin@myCo.com
create-org
脚本:
- 创建组织。
- 将组织与“网关”Pod 相关联。
- 将指定用户添加为组织管理员。用户必须已存在;否则脚本会发出错误。
使用 API 调用创建组织
您可以使用以下 API 调用创建组织。第一个调用会创建组织:
curl -H "Content-Type:application/xml" -u sysAdminEmail:adminPasswd \ -X POST http://management_server_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://management_server_IP:8080/v1/organizations/org_name/pods \ -d "region=default&pod=gateway"
最后一个调用会将现有用户添加为组织的组织管理员:
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
脚本在现有组织中创建环境:
/opt/apigee/apigee-service/bin/apigee-service apigee-provision add-env -f configFile
此配置文件包含创建环境和虚拟主机所需的信息:
APIGEE_ADMINPW=admin_password # If omitted, you are prompted for it. ORG_NAME=example # lowercase only, no spaces, underscores, or periods. ENV_NAME=prod # lowercase only 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. # Optionally set the base URL displayed by the Edge UI for an # API proxy deployed to the virtual host. # VHOST_BASEURL="http://myCo.com" # AXGROUP=axgroup-001 # Default value is axgroup-001
add-env
命令:
- 创建环境。
- 为环境创建单个虚拟主机。
- 将环境与与包含该环境的组织关联的 pod 中的所有消息处理器相关联。
- 启用分析功能
使用 API 调用创建环境
或者,您也可以使用以下 API 调用来创建环境。第一个调用会创建环境:
curl -H "Content-Type:application/xml" -u sysAdminEmail:adminPasswd \ -X POST http://management_server_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://management_server_IP:8080/v1/organizations/org_name/environments/env_name/servers \ -d "action=add&uuid=uuid"
其中,uuid 是消息处理器的 UUID。您可以使用以下命令获取 UUID:
curl http://Message_Processor_IP:8082/v1/servers/self
其中,Message_Processor_IP 是消息处理器的 IP 地址。
下一个 API 调用会为给定环境启用 Google Analytics。它会验证所有数据中心的 POD 中是否存在 Qpid 和 Postgres 服务器。然后,它会为给定的组织和环境启动 Google Analytics 初始配置。
此配置文件包含:
ORG_NAME=orgName # lowercase only, no spaces, underscores, or periods. ENV_NAME=envName # lowercase only
其中,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:password http://management_server_IP/v1/servers?pod=central
此命令的输出是一个 JSON 对象。对于每个 Qpid 服务器,您会看到以下格式的输出:
"type" : [ "qpid-server" ], "uUID" : "d3c5acf0-f88a-478e-948d-6f3094f12e3b"
对于 Postgres,请运行以下命令:
curl -u sysAdminEmail:passwor http://management_server_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://management_server_IP:8080/v1/organizations/org_name/environments/env_name/virtualhosts \ -d '<VirtualHost name="default"> \ <HostAliases> \ <HostAlias>myorg-test.apigee.net</HostAlias> \ </HostAliases> \ <Interfaces/> \ <Port>443</Port> \ </VirtualHost>'
如需详细了解如何创建虚拟主机(包括创建通过 HTTPS 使用 TLS/SSL 的安全虚拟主机),请参阅配置对私有云 API 的 TLS 访问权限。