조직, 환경, 가상 호스트 만들기

Private Cloud용 Edge v. 4.17.01

조직, 환경, 가상 호스트를 동시에 만들기

Apigee Edge에서 API 프록시를 만들려면 조직을 하나 이상 만들고 각 조직 내에 하나 이상의 환경과 가상 호스트를 만들어야 합니다.

일반적으로 조직과 환경은 함께 생성됩니다. 프로세스를 간소화하려면 apigee-provision 유틸리티를 사용하세요. Edge 관리 서버의 명령줄에서 호출합니다.

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

그런 다음 명령어는 다음을 수행합니다.

  • 조직 만들기
    참고: 조직을 만든 후에는 이름을 변경할 수 없습니다.
  • 조직을 포드와 연결합니다. 기본적으로 '게이트웨이' 포드와 연결됩니다.
  • 지정된 사용자를 조직 관리자로 추가합니다. 사용자가 없으면 새로 만들 수 있습니다.
  • 하나 이상의 환경 만들기
  • 환경마다 하나 이상의 가상 호스트 만들기
  • 환경을 모든 메시지 프로세서와 연결
  • 분석 사용 설정

전체 무음 구성 파일은 조직 온보딩을 참고하세요.

기본적으로 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

그런 다음 명령어는 다음을 수행합니다.

  • 조직을 만듭니다.
  • 조직을 포드와 연결합니다. 기본적으로 '게이트웨이' 포드와 연결됩니다.
  • 지정된 사용자를 조직 관리자로 추가합니다. 사용자가 이미 존재해야 합니다. 그렇지 않으면 스크립트에서 오류가 발생합니다.
<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. 
# 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 호출은 특정 환경에 대해 애널리틱스를 사용 설정합니다. 모든 데이터 센터의 POD에 Qpid 및 Postgres 서버가 있는지 확인합니다. 그런 다음 지정된 조직 및 환경에 대한 애널리틱스 온보딩이 시작됩니다.

> /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를 참고하세요.