Como criar uma organização, um ambiente e um host virtual

Edge para nuvem privada v. 4.17.05

Como criar uma organização, um ambiente e um host virtual ao mesmo tempo

Antes de criar um proxy de API no Apigee Edge, é necessário criar pelo menos uma organização e, dentro de cada organização, um ou mais ambientes e hosts virtuais.

Normalmente, as organizações e os ambientes são criados juntos. Para simplificar o processo, use o utilitário apigee-provision. Invoque-o na linha de comando do servidor de gerenciamento de borda:

> /opt/apigee/apigee-service/bin/apigee-service apigee-provision setup-org -f configFile

O arquivo de configuração contém:

# 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 

O comando então:

  • Crie a organização
    Observação: não é possível renomear uma organização depois de criá-la.
  • Associar a organização a um pod, por padrão, é associado ao pod "gateway"
  • Adicione o usuário especificado como administrador da organização. Se o usuário não existir, você poderá criar um.
  • Criar um ou mais ambientes
  • Crie um ou mais hosts virtuais para cada ambiente
  • Associar o ambiente a todos os processadores de mensagens
  • Ativar a análise

Para um arquivo de configuração silenciosa completo, consulte Integrar uma organização.

Por padrão, o comprimento máximo do nome da organização e do ambiente é de 20 caracteres ao usar o utilitário apigee-provision. Esse limite não se aplica se você usar a API Edge diretamente para criar a organização ou o ambiente.

Criar uma organização

Use o comando create-org para criar uma organização:

> /opt/apigee/apigee-service/bin/apigee-service apigee-provision create-org -f configFile

Ele cria a organização, mas não adiciona nem configura os ambientes e hosts virtuais exigidos pela organização para lidar com as chamadas de API.

O arquivo de configuração contém o nome da organização e o endereço de e-mail do administrador. Os caracteres que podem ser usados no atributo de nome são restritos a: a-z0-9\-$%. Não use espaços, pontos ou letras maiúsculas no nome:

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

O comando então:

  • Cria a organização
  • Associa a organização a um pod, por padrão, ao pod "gateway"
  • Adiciona o usuário especificado como administrador da organização. É necessário que o usuário já exista. Caso contrário, o script emitirá um erro.
<Error>
    <Code>organizations.OrganizationAlreadyExists</Code>
    <Message>Organization : test already exists</Message>
    <Contexts/>
</Error>

Criar uma organização usando chamadas de API

Como alternativa, use as seguintes chamadas de API para criar uma organização. A primeira chamada cria a organização:

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

A próxima chamada associa a organização a um 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" 

É possível fazer essa chamada várias vezes para associar a organização a vários pods.

A chamada final adiciona um usuário como administrador da organização:

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>'

Se o usuário não existir, use a chamada abaixo para criar o usuário, conforme descrito em Como adicionar um usuário.

Criar um ambiente

Use o comando add-env para criar um ambiente em uma organização:

> /opt/apigee/apigee-service/bin/apigee-service apigee-provision add-env -f configFile

Esse arquivo de configuração contém as informações necessárias para criar o ambiente e o host virtual:

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

O comando:

  • Cria o ambiente
  • Cria um host virtual único para o ambiente
  • Associa o ambiente a todos os processadores de mensagens no pod associado à organização que contém o ambiente.
  • Ativa a análise
    Observação: se você ativar as análises para um ambiente em uma organização, precisará ativar as análises para todos os ambientes dela.

Criar um ambiente usando chamadas de API

Como alternativa, use as seguintes chamadas de API para criar um ambiente. A primeira chamada cria o ambiente:

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>"/>' 

A próxima chamada associa o ambiente a um processador de mensagens. Faça esta chamada para cada processador de mensagens que você quer associar ao ambiente:

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>"

Em que <uuid>" é o UUID do processador de mensagens. Para conferir o UUID, use o comando:

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

Em que <mp-ip> é o endereço IP do processador de mensagens.

A próxima chamada de API ativa o Google Analytics para um determinado ambiente. Ele valida a existência dos servidores Qpid e Postgres nos PODs de todos os data centers. Em seguida, ele inicia a integração do Google Analytics para a organização e o ambiente.

> /opt/apigee/apigee-service/bin/apigee-service apigee-provision enable-ax -f configFile

Esse arquivo de configuração contém:

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"

Em que sample.json contém o seguinte:

{
  "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"] 
  }
}

A propriedade postgres-servers contém uma lista separada por vírgulas dos UUIDs do Postgres, e a propriedade qpid-server contém os UUIDs do Qpid. Se você precisar obter esses UUIDs, use os seguintes comandos.

Para Qpid, execute o comando:

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

A saída desse comando é um objeto JSON. Para cada servidor Qpid, você verá a saída no formato:

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

Para Postgres, execute o comando:

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

Para cada servidor Postgres, você vai encontrar a saída no formato:

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

Criar um host virtual

É possível criar um host virtual em um ambiente existente em uma organização. Muitas vezes, um ambiente oferece suporte a vários hosts virtuais. Por exemplo, um host virtual pode oferecer suporte ao protocolo HTTP, enquanto outro host virtual no mesmo ambiente oferece suporte ao protocolo HTTPS criptografado.

Use a seguinte chamada de API para criar hosts virtuais adicionais ou para criar um host virtual para um ambiente sem host virtual:

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>' 

Para uma descrição completa de como criar um host virtual, incluindo a criação de um host virtual seguro que usa TLS/SSL sobre HTTPS, consulte Como configurar o acesso TLS a uma API para a nuvem particular.