GSP906
개요
이 실습에서는 Apigee X 조직에 새 환경 및 환경 그룹을 추가하는 방법을 알아봅니다.
환경은 API 프록시의 런타임 실행 컨텍스트입니다. API 프록시가 노출하는 API를 네트워크를 통해 액세스할 수 있으려면 먼저 API 프록시를 환경에 배포해야 합니다.
환경 그룹은 환경의 논리적 그룹입니다. 호스트 이름은 환경 그룹에 대해 정의되며, Apigee는 호스트 이름을 기반으로 요청을 그룹 내에 있는 환경으로 라우팅합니다. 그런 다음 환경 그룹 내에 있는 환경 중 하나에 배포되어 있으며 일치하는 기본 경로를 갖는 API 프록시에 의해 요청이 처리됩니다.
이 실습의 지침은 유료 조직에 환경 및 환경 그룹을 추가하는 데도 적용할 수 있습니다.
목표
이 실습에서는 다음 작업을 수행하는 방법을 알아봅니다.
- Apigee X 조직에 두 번째 환경 추가하기
- Apigee X 조직에 두 번째 환경 그룹을 추가하고 환경과 호스트 이름 할당하기
- 환경을 런타임 인스턴스에 배포하기
- 각 환경에서 API 프록시를 배포하고 호출하기
설정 및 요건
실습 시작 버튼을 클릭하기 전에
다음 안내를 확인하세요. 실습에는 시간 제한이 있으며 일시중지할 수 없습니다. 실습 시작을 클릭하면 타이머가 시작됩니다. 이 타이머는 Google Cloud 리소스를 사용할 수 있는 시간이 얼마나 남았는지를 표시합니다.
실무형 실습을 통해 시뮬레이션이나 데모 환경이 아닌 실제 클라우드 환경에서 실습 활동을 진행할 수 있습니다. 실습 시간 동안 Google Cloud에 로그인하고 액세스하는 데 사용할 수 있는 새로운 임시 사용자 인증 정보가 제공됩니다.
이 실습을 완료하려면 다음을 준비해야 합니다.
- 표준 인터넷 브라우저 액세스 권한(Chrome 브라우저 권장)
참고: 이 실습을 실행하려면 시크릿 모드(권장) 또는 시크릿 브라우저 창을 사용하세요. 개인 계정과 학습자 계정 간의 충돌로 개인 계정에 추가 요금이 발생하는 일을 방지해 줍니다.
- 실습을 완료하기에 충분한 시간(실습을 시작하고 나면 일시중지할 수 없음)
참고: 이 실습에는 학습자 계정만 사용하세요. 다른 Google Cloud 계정을 사용하는 경우 해당 계정에 비용이 청구될 수 있습니다.
실습을 시작하고 Google Cloud 콘솔에 로그인하는 방법
-
실습 시작 버튼을 클릭합니다. 실습 비용을 결제해야 하는 경우 결제 수단을 선택할 수 있는 대화상자가 열립니다.
왼쪽에는 다음과 같은 항목이 포함된 실습 세부정보 창이 있습니다.
- Google Cloud 콘솔 열기 버튼
- 남은 시간
- 이 실습에 사용해야 하는 임시 사용자 인증 정보
- 필요한 경우 실습 진행을 위한 기타 정보
-
Google Cloud 콘솔 열기를 클릭합니다(Chrome 브라우저를 실행 중인 경우 마우스 오른쪽 버튼으로 클릭하고 시크릿 창에서 링크 열기를 선택합니다).
실습에서 리소스가 가동되면 다른 탭이 열리고 로그인 페이지가 표시됩니다.
팁: 두 개의 탭을 각각 별도의 창으로 나란히 정렬하세요.
참고: 계정 선택 대화상자가 표시되면 다른 계정 사용을 클릭합니다.
-
필요한 경우 아래의 사용자 이름을 복사하여 로그인 대화상자에 붙여넣습니다.
{{{user_0.username | "Username"}}}
실습 세부정보 창에서도 사용자 이름을 확인할 수 있습니다.
-
다음을 클릭합니다.
-
아래의 비밀번호를 복사하여 시작하기 대화상자에 붙여넣습니다.
{{{user_0.password | "Password"}}}
실습 세부정보 창에서도 비밀번호를 확인할 수 있습니다.
-
다음을 클릭합니다.
중요: 실습에서 제공하는 사용자 인증 정보를 사용해야 합니다. Google Cloud 계정 사용자 인증 정보를 사용하지 마세요.
참고: 이 실습에 자신의 Google Cloud 계정을 사용하면 추가 요금이 발생할 수 있습니다.
-
이후에 표시되는 페이지를 클릭하여 넘깁니다.
- 이용약관에 동의합니다.
- 임시 계정이므로 복구 옵션이나 2단계 인증을 추가하지 않습니다.
- 무료 체험판을 신청하지 않습니다.
잠시 후 Google Cloud 콘솔이 이 탭에서 열립니다.
참고: Google Cloud 제품 및 서비스에 액세스하려면 탐색 메뉴를 클릭하거나 검색창에 제품 또는 서비스 이름을 입력합니다.
Cloud Shell 활성화
Cloud Shell은 다양한 개발 도구가 탑재된 가상 머신으로, 5GB의 영구 홈 디렉터리를 제공하며 Google Cloud에서 실행됩니다. Cloud Shell을 사용하면 명령줄을 통해 Google Cloud 리소스에 액세스할 수 있습니다.
-
Google Cloud 콘솔 상단에서 Cloud Shell 활성화
를 클릭합니다.
-
다음 창을 클릭합니다.
- Cloud Shell 정보 창을 통해 계속 진행합니다.
- 사용자 인증 정보를 사용하여 Google Cloud API를 호출할 수 있도록 Cloud Shell을 승인합니다.
연결되면 사용자 인증이 이미 처리된 것이며 프로젝트가 학습자의 PROJECT_ID, (으)로 설정됩니다. 출력에 이 세션의 PROJECT_ID를 선언하는 줄이 포함됩니다.
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud는 Google Cloud의 명령줄 도구입니다. Cloud Shell에 사전 설치되어 있으며 명령줄 자동 완성을 지원합니다.
- (선택사항) 다음 명령어를 사용하여 활성 계정 이름 목록을 표시할 수 있습니다.
gcloud auth list
-
승인을 클릭합니다.
출력:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (선택사항) 다음 명령어를 사용하여 프로젝트 ID 목록을 표시할 수 있습니다.
gcloud config list project
출력:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
참고: gcloud 전체 문서는 Google Cloud에서 gcloud CLI 개요 가이드를 참고하세요.
Apigee 콘솔 열기
Apigee 콘솔을 열려면 다음 단계를 따르세요.
- Google Cloud 콘솔의 검색 창에
Apigee를 입력한 다음 검색 결과에서 Apigee API 관리를 클릭합니다.
Apigee 콘솔이 열리고 자주 사용되는 위치로 연결되는 빠른 링크가 방문 페이지에 표시됩니다.
-
탐색 메뉴(
)에서 Apigee 옆에 있는 즐겨찾기(
)를 클릭합니다.
이제 Apigee가 탐색 메뉴에 즐겨찾기로 추가됩니다.
작업 1. eval 환경 및 환경 그룹 살펴보기
이 작업에서는 Apigee 콘솔을 사용하여 환경과 환경 그룹을 살펴봅니다.
Apigee X의 평가 조직에는 eval이라는 하나의 환경과 eval-group이라는 하나의 환경 그룹이 있습니다. eval 환경은 eval-group 환경 그룹의 멤버입니다.
- Cloud 콘솔에서 Apigee UI로 이동합니다.
-
관리 > 환경으로 이동합니다.
-
환경 탭에서 eval 환경을 클릭합니다.
eval 환경은 eval-group 환경 그룹의 멤버로 구성되어 있습니다.
eval 환경이 'Ready for deployment'로 표시되어 있습니다. 이는 이 환경에 API 프록시를 배포할 수 있음을 나타냅니다.
-
관리 > 환경 > 환경 그룹으로 이동합니다.
-
eval-group 환경에서 점 3개 아이콘을 클릭한 다음 수정을 클릭합니다.
현재 eval-group 환경 그룹에는 하나의 호스트 이름(eval.example.com)이 표시되어 있으나, 둘 이상의 호스트 이름을 사용할 수 있습니다.
eval-group 환경 그룹에는 현재 eval 환경만 멤버로 포함되어 있으나, 하나의 환경 그룹이 둘 이상의 환경을 포함할 수 있습니다.
-
취소를 클릭합니다.
작업 2. prod 환경 만들기
이 작업에서는 새 환경을 만듭니다.
-
관리 > 환경으로 이동합니다.
-
환경 탭에서 + 환경 만들기를 클릭합니다.
-
표시 이름과 이름으로 prod를 지정합니다. 다른 필드는 변경하지 않고 그대로 둡니다.
-
만들기를 클릭합니다.
환경이 정의되었다는 메시지가 표시됩니다. 새 prod 환경은 프로비저닝 대기중으로 표시됩니다.
잠시 기다리면 환경을 사용할 준비가 되었다는 메시지가 표시되고, 환경이 더 이상 프로비저닝 대기중으로 표시되지 않습니다.
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
prod 환경 만들기
작업 3. prod-group 환경 그룹 만들기
이 작업에서는 새 환경 그룹을 만듭니다.
- 왼쪽 탐색창에서 관리 > 환경을 선택합니다.
- 환경 창에서 환경 그룹을 선택하고 + 환경 그룹 만들기를 클릭합니다.
- 환경 그룹의 이름을 prod-group으로 지정합니다.
-
호스트 이름으로 다음 링크를 사용합니다.
prod.example.com
-
환경(선택 사항)에서 prod를 선택하고 확인을 클릭합니다.
-
만들기를 클릭합니다.
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
prod-group 환경 그룹 만들기
작업 4. 인스턴스 프로비저닝이 완료될 때까지 기다리기
이 작업에서는 Apigee 평가 조직 프로비저닝이 완료될 때까지 기다립니다.
Apigee 조직 프로비저닝이 완료되기까지 시간이 꽤 걸립니다. 조직 프로비저닝 진행 상황은 Apigee API를 사용하여 모니터링할 수 있습니다.
모니터링 스크립트 시작하기
- 오른쪽 상단 툴바에서 Cloud Shell 활성화(
)를 클릭합니다.
- 메시지가 표시되면 계속을 클릭합니다.
Cloud Shell을 프로비저닝하고 연결하는 데 몇 분 정도 소요됩니다. 연결되면 사용자가 미리 인증되어 있고 프로젝트가 PROJECT_ID로 설정되어 있습니다.
- Cloud Shell에서 Apigee 조직 이름을 사용하여 변수를 확인합니다.
echo ${GOOGLE_CLOUD_PROJECT}
GOOGLE_CLOUD_PROJECT 변수에 (Apigee 조직 이름과 동일한) 프로젝트 이름이 들어 있을 것입니다.
-
GOOGLE_CLOUD_PROJECT 변수가 설정되어 있지 않다면 다음 명령어를 사용하여 변수를 수동으로 설정합니다.
export GOOGLE_CLOUD_PROJECT={{{project_0.project_id |Project ID}}}
- Cloud Shell에서 다음 명령어를 실행합니다.
export INSTANCE_NAME=eval-instance; export ENV_NAME=eval; if [ -z "${GOOGLE_CLOUD_PROJECT}" ]; then echo "Error: GOOGLE_CLOUD_PROJECT environment variable is not set. Please set it to your project ID."; else export PREV_INSTANCE_STATE=; echo "waiting for runtime instance ${INSTANCE_NAME} to be active"; while : ; do export INSTANCE_STATE=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${GOOGLE_CLOUD_PROJECT}/instances/${INSTANCE_NAME}" | jq "select(.state != null) | .state" --raw-output); [[ "${INSTANCE_STATE}" == "${PREV_INSTANCE_STATE}" ]] || (echo; echo "INSTANCE_STATE=${INSTANCE_STATE}"); export PREV_INSTANCE_STATE=${INSTANCE_STATE}; [[ "${INSTANCE_STATE}" != "ACTIVE" ]] || break; echo -n "."; sleep 5; done; echo; echo "instance created, waiting for environment ${ENV_NAME} to be attached to instance"; while : ; do export ATTACHMENT_DONE=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${GOOGLE_CLOUD_PROJECT}/instances/${INSTANCE_NAME}/attachments" | jq "select(.attachments != null) | .attachments[] | select(.environment == \"${ENV_NAME}\" or (.environment | endswith(\"/${ENV_NAME}\"))) | .environment" --raw-output); [[ -n "${ATTACHMENT_DONE}" ]] && break; echo -n "."; sleep 5; done; echo; echo "${ENV_NAME} environment attached"; echo "***ORG IS READY TO USE***"; fi
위 명령어는 Apigee API를 사용하여 런타임 인스턴스가 생성되었는지 확인하고 eval 환경이 인스턴스에 연결되기를 기다립니다.
- 메시지가 표시되면 승인을 클릭합니다.
***ORG IS READY TO USE*** 텍스트가 출력되면 eval 환경에 배포된 프록시가 트래픽을 수신할 수 있는 것입니다.
참고: 인스턴스와 환경이 생성되기를 기다리는 동안 Apigee X 사용자 및 역할에 대해 알아보세요. 실습의 남은 시간을 확인하고, Cloud Shell 출력을 주기적으로 확인하여 조직을 테스트할 수 있는지 알아보세요.
사용자 및 역할
Apigee에 대한 액세스 권한은 사용자 및 역할을 사용하여 부여됩니다. 사용자는 Apigee 조직과 조직의 항목(환경, API 프록시 등)에 액세스할 수 있는 인증된 계정을 나타냅니다. 사용자에게 부여되는 권한은 사용자에게 할당된 *역할* 유형에 따라 달라집니다.
Apigee 조직에 새 사용자를 추가하려면 먼저 Cloud 프로젝트에서, 그런 다음 선택적으로 Apigee UI에서 사용자의 계정에 액세스 권한을 부여합니다. Google Cloud 리소스 계층 구조에 속한 리소스에 부여된 권한은 해당 리소스가 포함하는 리소스로 상속됩니다.
Cloud 프로젝트에서 사용자에게 Apigee 역할이 할당되면 사용자는 조직에서 해당 역할에 속하는 모든 Apigee 리소스(모든 환경 포함)에 액세스할 수 있습니다. Apigee UI에서는 사용자에게 특정 환경에 대한 Apigee 역할을 할당할 수도 있습니다. 이 권한은 프로젝트 수준에서 설정된 역할에 더해 추가로 부여됩니다.
최소 권한의 원칙을 준수하려면 프로젝트 수준에서 사용자에 대한 최소 권한을 지정하고 환경 수준에서 확장된 권한을 부여해야 합니다.
이 이미지는 이 액세스 모델에서 상속이 작동하는 방식을 보여 줍니다.

Apigee 역할
이 표에는 사전 정의된 Apigee 역할이 요약되어 있습니다.
| Apigee 역할 |
설명 |
| Apigee 조직 관리자 |
Apigee 조직의 모든 Apigee 리소스에 대한 전체 액세스 권한을 갖습니다. |
| Apigee 읽기 전용 관리자 |
Apigee 조직의 모든 Apigee 리소스에 대한 읽기 전용 액세스 권한을 갖습니다. |
| Apigee 애널리틱스 편집자 |
Apigee 조직의 API 프록시 트래픽에 관한 보고서를 만들고 분석합니다. 쿼리 및 보고서를 수정할 수 있습니다. |
| Apigee 애널리틱스 뷰어 |
Apigee 애널리틱스의 사용자입니다. 쿼리 또는 보고서를 수정할 수 없습니다. |
| Apigee API 관리자 |
API 프록시를 만들고 테스트하는 개발자입니다. |
| Apigee 환경 관리자 |
환경에서 API 프록시를 배포 및 배포 취소합니다. |
| Apigee 개발자 관리자 |
API에 대한 개발자 액세스를 관리합니다. |
각 Apigee 역할의 API 권한에 대해 자세히 알아보려면 Apigee 역할 가이드를 참고하세요.
작업 5. prod 환경을 런타임 인스턴스에 추가하기
이 작업에서는 prod에 배포된 프록시가 실행될 수 있도록 prod 환경을 런타임 인스턴스에 추가합니다.
prod 환경을 인스턴스에 연결하기
- Cloud Shell에서 실행한 명령어가
***ORG IS READY TO USE***를 반환했는지 확인합니다.
- prod 환경을 런타임에 연결하는 프로세스를 시작하려면 다음 명령어를 실행합니다.
export INSTANCE_NAME=eval-instance; curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -X POST "https://apigee.googleapis.com/v1/organizations/${GOOGLE_CLOUD_PROJECT}/instances/${INSTANCE_NAME}/attachments" -d '{ "environment": "prod" }' | jq
오류 메시지가 표시된다면 메시지의 세부정보를 살펴보세요.
-
NOT_FOUND 오류는 prod 환경이 성공적으로 생성되지 않았음을 나타낼 수 있습니다.
-
FAILED_PRECONDITION 오류와 "the resource is locked by another operation" 메시지는 eval 환경의 완전한 프로비저닝이 완료되지 않았음을 나타낼 수 있습니다.
prod 환경을 런타임에 연결하는 프로세스를 성공적으로 시작하면 다음과 같이 상태가 IN_PROGRESS인 반환 메시지가 표시됩니다.
{
"name": "organizations/qwiklabs-gcp-01-e12f9fd402f4/operations/c4e1a09f-05d2-4c46-95ed-559457507379",
"metadata": {
"@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
"operationType": "INSERT",
"targetResourceName": "organizations/qwiklabs-gcp-01-e12f9fd402f4/instances/eval-instance/attachments/c2e04a79-15e6-4656-9d25-f618080b57fb",
"state": "IN_PROGRESS"
}
}
- 다음 명령어를 사용하여 prod 연결의 상태를 확인합니다.
export ATTACHING_ENV=prod; export INSTANCE_NAME=eval-instance; echo "waiting for ${ATTACHING_ENV} attachment"; while : ; do export ATTACHMENT_DONE=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${GOOGLE_CLOUD_PROJECT}/instances/${INSTANCE_NAME}/attachments" | jq "select(.attachments != null) | .attachments[] | select(.environment == \"${ATTACHING_ENV}\") | .environment" --join-output); [[ "${ATTACHMENT_DONE}" != "${ATTACHING_ENV}" ]] || break; echo -n "."; sleep 5; done; echo; echo "***${ATTACHING_ENV} ENVIRONMENT ATTACHED***";
위 명령어는 Apigee API를 사용하여 prod 환경이 인스턴스에 연결되고 prod에 배포된 프록시가 트래픽을 수신할 준비가 되었는지 확인합니다.
***prod ENVIRONMENT ATTACHED*** 텍스트가 출력되면 prod 환경에 배포된 프록시가 트래픽을 수신할 수 있는 것입니다.
명령어가 실행되도록 두고 다음 작업을 진행하세요.
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
prod 환경을 인스턴스에 연결하기
작업 6. API 프록시 만들기
이 작업에서는 흐름 변수를 사용하여 API 호출에 대해 호스트 이름과 환경을 반환하는 API 프록시를 만듭니다.
- Cloud 콘솔에서 Apigee UI로 이동합니다.
- 왼쪽 탐색 메뉴에서 프록시 개발 > API 프록시를 선택합니다.
-
프록시 마법사를 시작하려면 + 만들기를 클릭합니다.
-
프록시 템플릿으로 대상 없음을 선택합니다.
참고: OpenAPI 사양 템플릿 섹션에 있는 '대상 없음'을 선택하면 안 됩니다.
-
다음 속성을 지정합니다.
| 속성 |
값 |
| 프록시 이름 |
test-env |
| 기본 경로 |
/test-env |
-
다음을 클릭합니다.
-
다른 설정은 기본값으로 두고 만들기를 클릭합니다.
API 프록시가 생성됩니다. 생성된 프록시는 뒤에서 배포할 것입니다.
-
개발 탭을 클릭합니다.
이 탭은 API 프록시를 수정하는 데 사용됩니다. 프록시 엔드포인트 PreFlow가 선택되어 있습니다.
-
탐색 메뉴에서 프록시 엔드포인트 > Preflow를 클릭합니다.
-
Flow 창의 응답 섹션에서 PreFlow 옆의 + 아이콘을 클릭합니다.

PreFlow 응답에 정책 단계를 추가할 것입니다. 정책은 특정적이고 제한적인 관리 기능을 구현합니다.
-
새 정책 생성을 선택한 다음
Mediation 섹션에서 메시지 할당을 클릭한 후 이름과 표시 이름으로 AM-SetResponse를 지정하고 추가를 클릭합니다.

-
정책 섹션에서 AM-SetResponse를 선택합니다. 그러면 새 AssignMessage 정책이 API 프록시에 연결됩니다. Flow 창 아래에 AssignMessage 코드가 표시됩니다.

- AssignMessage 코드를 다음 코드로 바꿉니다.
<AssignMessage continueOnError="false" enabled="true" name="AM-SetResponse">
<Set>
<Payload contentType="application/json">{
"environment": "{environment.name}",
"hostname": "{request.header.Host}"
}
</Payload>
</Set>
<IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
<AssignTo createNew="true" transport="http" type="response"/>
</AssignMessage>
이 정책은 환경 이름과 호스트 이름을 반환하는 응답을 생성합니다. 프록시 흐름 변수 environment.name에는 트래픽을 수신한 배포된 프록시의 환경이 들어 있고, 변수 request.header.Host에는 API 호출에 사용된 호스트 이름을 나타내는 Host 헤더가 들어 있습니다.
-
저장을 클릭합니다.
-
배포를 클릭한 후 환경에서 eval을 선택하고 배포와 확인을 클릭합니다.
이렇게 하면 프록시가 eval 환경에 배포됩니다.
-
배포를 다시 클릭한 다음 환경에서 prod를 선택하고 배포와 확인을 클릭합니다.

이렇게 하면 프록시가 prod 환경에 배포됩니다.
-
개요 탭을 클릭합니다.
- 두 배포가 완료될 때까지 기다립니다.
프록시가 두 환경에 배포되면 개요 탭의 배포 섹션이 다음과 같이 표시됩니다.

참고: 몇 분 후에도 프록시가 prod 환경에 배포되지 않는다면 prod 환경이 런타임 인스턴스에 아직 연결되지 않은 것일 수 있습니다. Cloud Shell로 돌아가서 명령어가 '***prod ENVIRONMENT ATTACHED***'를 반환할 때까지 기다리세요.
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
API 프록시 만들기
작업 7. prod 및 eval 환경 테스트하기
이 작업에서는 eval 환경과 prod 환경에 대해 호출을 수행합니다.
apigeex-test-vm이라는 가상 머신이 자동으로 생성되었습니다. 이 가상 머신을 사용하여 비공개 IP 주소를 통해 Apigee 런타임을 호출합니다.
Apigee 런타임 호출하기
- Cloud Shell에서 다음을 실행하여 VM에 대한 SSH 연결을 엽니다.
TEST_VM_ZONE=$(gcloud compute instances list --filter="name=('apigeex-test-vm')" --format "value(zone)")
gcloud compute ssh apigeex-test-vm --zone=${TEST_VM_ZONE} --force-key-file-overwrite
- 각 질문에 대해 Enter 키 또는 Return 키를 입력하여 기본 입력값을 지정합니다.
로그인되어 있는 ID가 프로젝트 소유자이므로 이 머신에 대한 SSH가 허용됩니다.
이제 Cloud Shell 세션이 VM 내에서 실행됩니다.
- VM의 셸에서 필요한 셸 변수를 설정합니다.
export PROJECT_NAME=$(gcloud config get-value project)
export ORG=${PROJECT_NAME}
export INSTANCE_NAME=eval-instance
export INTERNAL_LB_IP=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${ORG}/instances/${INSTANCE_NAME}" | jq ".host" --raw-output)
export EVAL_ENVGROUP_HOSTNAME=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${ORG}/envgroups/eval-group" | jq ".hostnames[0]" --raw-output)
export PROD_ENVGROUP_HOSTNAME=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${ORG}/envgroups/prod-group" | jq ".hostnames[0]" --raw-output)
echo "INTERNAL_LB_IP=${INTERNAL_LB_IP}"
echo "EVAL_ENVGROUP_HOSTNAME=${EVAL_ENVGROUP_HOSTNAME}"
echo "PROD_ENVGROUP_HOSTNAME=${PROD_ENVGROUP_HOSTNAME}"
PROD_ENVGROUP_HOSTNAME은 이전 작업에서 만든 prod-group 환경 그룹에서 가져왔습니다.
-
eval 환경에 배포된 test-env API 프록시를 호출합니다.
curl -i -k --resolve "${EVAL_ENVGROUP_HOSTNAME}:443:${INTERNAL_LB_IP}" \
"https://${EVAL_ENVGROUP_HOSTNAME}/test-env"
--resolve 설정은 환경 그룹 호스트 이름으로 전송된 명령어가 DNS를 사용하여 IP 주소를 확인하는 대신 내부 부하 분산기 IP 주소로 확인되도록 합니다. -k 옵션은 내부 부하 분산기의 TLS 인증서 확인을 건너뜁니다. 내부 부하 분산기는 현재 사용 중인 호스트 이름을 갖는 TLS 인증서를 호스팅하지 않습니다.
curl 명령어가 test-env 프록시에서 생성된 응답을 반환합니다. 응답은 다음과 같을 것입니다.
HTTP/2 200
content-type: application/json
content-length: 66
date: Tue, 10 Aug 2021 17:02:53 GMT
server: apigee
{
"environment": "eval",
"hostname": "eval.example.com"
}
-
prod 환경에 배포된 test-env API 프록시를 호출합니다.
curl -i -k --resolve "${PROD_ENVGROUP_HOSTNAME}:443:${INTERNAL_LB_IP}" \
"https://${PROD_ENVGROUP_HOSTNAME}/test-env"
이번에는 환경과 호스트 이름이 eval 대신 prod를 반환할 것입니다.
수고하셨습니다
이 실습에서는 조직의 새 환경과 환경 그룹을 만들고 환경을 런타임 인스턴스에 연결했습니다. 그런 다음 API 프록시를 만들고 배포했습니다. 마지막으로, eval 및 prod 호스트 이름을 사용하여 프록시를 호출했습니다. API 프록시는 호출되는 환경을 감지할 수 있었습니다.
다음 단계/더 학습하기
Google Cloud 교육 및 자격증
Google Cloud 기술을 최대한 활용하는 데 도움이 됩니다. Google 강의에는 빠른 습득과 지속적인 학습을 지원하는 기술적인 지식과 권장사항이 포함되어 있습니다. 기초에서 고급까지 수준별 학습을 제공하며 바쁜 일정에 알맞은 주문형, 실시간, 가상 옵션이 포함되어 있습니다. 인증은 Google Cloud 기술에 대한 역량과 전문성을 검증하고 입증하는 데 도움이 됩니다.
설명서 최종 업데이트: 2025년 9월 23일
실습 최종 테스트: 2025년 9월 23일
Copyright 2026 Google LLC. All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.