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

Private Cloud용 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 스크립트는 다음을 실행합니다.

  • 조직을 만듭니다.
  • 조직을 '게이트웨이' 팟과 연결합니다. 이 값은 변경할 수 없습니다.
  • 지정된 사용자를 조직 관리자로 추가합니다. 사용자가 없는 경우 사용자를 만들 수 있습니다.
  • 하나 이상의 환경을 만듭니다.
  • 각 환경에 하나 이상의 가상 호스트를 만듭니다.
  • 환경을 모든 메시지 프로세서와 연결합니다.
  • 분석을 사용 설정합니다.

기본적으로 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 스크립트:

  • 조직을 만듭니다.
  • 조직을 '게이트웨이' 팟과 연결합니다.
  • 지정된 사용자를 조직 관리자로 추가합니다. 사용자는 이미 존재해야 합니다. 그렇지 않으면 스크립트에서 오류가 발생합니다.

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

다음 호출은 조직을 포드와 연결합니다.

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 명령어:

  • 환경을 만듭니다.
  • 환경에 단일 가상 호스트를 만듭니다.
  • 환경을 포함하는 조직과 연결된 포드의 모든 메시지 프로세서와 환경을 연결합니다.
  • 분석을 사용 설정합니다.

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 호출은 특정 환경에 대해 애널리틱스를 사용 설정합니다. 모든 데이터 센터의 POD에 Qpid 및 Postgres 서버가 있는지 확인합니다. 그런 다음 지정된 조직 및 환경에 대한 애널리틱스 온보딩이 시작됩니다.

이 구성 파일에는 다음이 포함됩니다.

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 액세스 구성을 참고하세요.