Edge for Private Cloud 4.17.01 版
同時建立機構、環境和虛擬主機
在 Apigee Edge 上建立 API 代理程式之前,您必須至少建立一個機構,並在每個機構中建立一或多個環境和虛擬主機。
一般來說,機構和環境會一起建立。為簡化程序,請使用 apigee-provision 公用程式。從 Edge Management Server 的指令列叫用:
> /opt/apigee/apigee-service/bin/apigee-service apigee-provision setup-org -f configFile
設定檔包含:
# Set Edge sys admin credentials. ADMIN_EMAIL=your@email.com 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 建立關聯,預設會與「gateway」Pod 建立關聯
- 將指定的使用者新增為機構管理員。如果使用者不存在,您可以建立一個。
- 建立一或多個環境
- 為每個環境建立一或多個虛擬主機
- 將環境與所有訊息處理工具建立關聯
- 啟用數據分析
如需完整的靜默設定檔,請參閱「機構新手上路」。
根據預設,使用 apigee-provision 公用程式時,機構名稱和環境名稱的長度上限為 20 個半形字元。如果您直接使用 Edge API 建立機構或環境,則不受此限制。
建立機構
使用 create-org 指令建立組織:
> /opt/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 建立關聯,預設會與「gateway」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"
您可以多次呼叫這個 API,將機構與多個 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 指令,在現有機構中建立環境:
> /opt/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 中所有 Message Processor 建立關聯。
- 啟用數據分析
注意:如果您為機構中的單一環境啟用數據分析,就必須為機構中的所有環境啟用數據分析。
使用 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 呼叫會為特定環境啟用 Analytics。並驗證所有資料中心的 POD 中是否存在 Qpid 和 Postgres 伺服器。然後,系統會為指定的機構和環境啟動 Analytics 新手上路程序。
> /opt/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>9002</Port> \ </VirtualHost>'
如需建立虛擬主機的完整說明,包括透過 HTTPS 建立使用 TLS/SSL 的安全虛擬主機,請參閱 http://apigee.com/docs/api-services/content/creating-virtual-host。