Edge для частного облака v. 4.17.09
Одновременное создание организации, среды и виртуального хоста
Прежде чем создавать прокси-сервер API в Apigee Edge, вы должны создать хотя бы одну организацию и внутри каждой организации одну или несколько сред и виртуальных хостов.
Обычно организации и среда создаются вместе. Чтобы упростить процесс, используйте утилиту 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. # 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
Затем команда:
- Создать организацию
Примечание . Вы не можете переименовать организацию после ее создания. - Свяжите организацию с модулем. По умолчанию она связывается с модулем «шлюз».
- Добавьте указанного пользователя в качестве администратора организации. Если пользователь не существует, вы можете его создать.
- Создайте одну или несколько сред
- Создайте один или несколько виртуальных хостов для каждой среды.
- Свяжите среду со всеми процессорами сообщений.
- Включить аналитику
Полный файл конфигурации в автоматическом режиме см. в разделе Адаптация организации .
По умолчанию максимальная длина имени организации и имени среды составляет 20 символов при использовании утилиты apigee-provision . Это ограничение не применяется, если вы используете 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
Затем команда:
- Создает организацию
- Связывает организацию с модулем, по умолчанию связывает ее с модулем «шлюз».
- Добавляет указанного пользователя в качестве администратора организации. Пользователь должен уже существовать; в противном случае скрипт выдает ошибку.
<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"/>'
Следующий вызов связывает организацию с модулем:
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"
Вы можете сделать этот вызов несколько раз, чтобы связать организацию с несколькими модулями.
Последний вызов добавляет существующего пользователя в качестве администратора организации:
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. # 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
Команда:
- Создает среду
- Создает один виртуальный хост для среды.
- Связывает среду со всеми процессорами сообщений в модуле, связанном с организацией, содержащей среду.
- Включает аналитику
Примечание . Если вы включаете аналитику для одной среды в организации, вы должны включить аналитику для всех сред в организации.
Создайте среду с помощью вызовов 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 включает аналитику для данной среды. Он проверяет наличие серверов Qpid и Postgres в POD всех центров обработки данных. Затем начинается внедрение аналитики для данной организации и среды.
> /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 содержит разделенный запятыми список UUID Postgres, а свойство qpid-server содержит UUID Qpid. Если вам нужно получить эти 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>443</Port> \ </VirtualHost>'
Полное описание создания виртуального хоста, включая создание безопасного виртуального хоста, использующего TLS/SSL через HTTPS, см. в разделе Настройка доступа TLS к API для частного облака .