์ด ๋จ๊ณ์์๋ ํ๊ฒฝ ๋ฐ ํ๊ฒฝ ๊ทธ๋ฃน์ ๋ง๋ญ๋๋ค.
Apigee์์ API ํ๋ก์๋ ํ๋ก์์ ๋ํด ๊ฒฉ๋ฆฌ๋ ์ปจํ ์คํธ๋ฅผ ์ ๊ณตํ๋ ํ๊ฒฝ์ ๋ฐฐํฌ๋ฉ๋๋ค. ํ๊ฒฝ์ ๊ทธ๋ฃน ๋ด ํ๊ฒฝ์ ๋ฐฐํฌ๋๋ ๋ชจ๋ ํ๋ก์์ ํธ์คํธ ์ด๋ฆ์ ์ ๊ณตํ๋ ํ๊ฒฝ ๊ทธ๋ฃน์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. 1๊ฐ ์ด์์ ํ๊ฒฝ๊ณผ 1๊ฐ ์ด์์ ํ๊ฒฝ ๊ทธ๋ฃน์ด ์์ด์ผ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ํ๊ฒฝ ๋ฐ ํ๊ฒฝ ๊ทธ๋ฃน ์ ๋ณด๋ฅผ ์ฐธ์กฐํ์ธ์.
ํ๊ฒฝ ๋ง๋ค๊ธฐ
ํ๊ฒฝ ๊ทธ๋ฃน์ ๋ง๋ค๊ธฐ ์ ์ ๋จผ์ ํ๊ฒฝ์ ๋ง๋ญ๋๋ค. Apigee UI๋ API๋ฅผ ์ฌ์ฉํ์ฌ ํ๊ฒฝ์ ๋ง๋ค ์ ์์ต๋๋ค. ์ด ๋จ๊ณ์ ์ต์ํด์ง๊ธฐ ์ํด์๋ UI๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
Apigee UI
UI์ ์ก์ธ์คํ๊ณ ํ๊ฒฝ์ ์ถ๊ฐํ๊ธฐ ์ํด ๋ค์ ๋จ๊ณ๋ฅผ ์ํํฉ๋๋ค.
- Apigee UI๋ฅผ ์ฝ๋๋ค. ์ฒ์ ๋ก๊ทธ์ธํ๋ ๊ฒฝ์ฐ Hybrid์ ๋์ ๋ํ์์๊ฐ ํ์๋ฉ๋๋ค. 2๊ฐ ์ด์์ ๊ณ์ ์์ ์ ํํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋๋ฉด Apigee Hybrid๋ฅผ ์ค์นํ๋ ๋ฐ ์ฌ์ฉํ๋ Google Cloud ํ๋ก์ ํธ๋ฅผ ์์ ํ ๊ณ์ ์ ์ ํํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ํ์ฉ์ ํด๋ฆญํฉ๋๋ค.
-
์กฐ์ง ๋๋กญ๋ค์ด ๋ชฉ๋ก์์ ์กฐ์ง์ด ์ ํ๋์ด ์๋์ง ํ์ธํฉ๋๋ค. ์ ํ๋์ด ์์ง ์์ ๊ฒฝ์ฐ ๋ค์ ์์์ ๊ฐ์ด ๋๋กญ๋ค์ด ๋ชฉ๋ก์์ ์ ํํฉ๋๋ค.
- ๊ด๋ฆฌ > ํ๊ฒฝ > ๊ฐ์๋ฅผ ํด๋ฆญํฉ๋๋ค.
ํ๊ฒฝ ๋ทฐ๊ฐ ํ์๋ฉ๋๋ค(์์ง ํ๊ฒฝ ์์).
- +ํ๊ฒฝ์ ํด๋ฆญํฉ๋๋ค.
์ ํ๊ฒฝ ๋ํ์์๊ฐ ํ์๋ฉ๋๋ค.
- ์ ํ๊ฒฝ ๋ํ์์์ ๋ค์ ์ ๋ณด๋ฅผ ์
๋ ฅํฉ๋๋ค.
- ํ์ ์ด๋ฆ(ํ์): UI์ ์ฌ์ฉ๋๋ ํ๊ฒฝ์ ๋ณ์นญ์ ๋๋ค. ์๋ฅผ ๋ค๋ฉด 'My First Environment' ๋๋ 'test'์ ๋๋ค. ํ๊ฒฝ ์ด๋ฆ๊ณผ ๋ฌ๋ฆฌ ํ์ ์ด๋ฆ์ ๋๋ฌธ์์ ๊ธฐํ ํน์๋ฌธ์๋ฅผ ํฌํจํ ์ ์์ต๋๋ค.
- ํ๊ฒฝ ์ด๋ฆ(ํ์): ํ๊ฒฝ์ ํ๋ก๊ทธ๋๋งคํฑ ์ด๋ฆ์ด๋ฉฐ ํ๊ฒฝ ID๋ผ๊ณ ๋ ํฉ๋๋ค.
์๋ฅผ ๋ค๋ฉด 'my-environment' ๋๋ 'test'์ ๋๋ค.
ํ์ ์ด๋ฆ๊ณผ ํ๊ฒฝ ์ด๋ฆ์ ๋ค๋ฅผ ์ ์์ต๋๋ค.
- ์ค๋ช (์ ํ์ฌํญ): ํ๊ฒฝ์ ๋ชฉ์ ์ ๋ํ ์๋ฆผ์ผ๋ก ์ถ๊ฐํ ํ๊ฒฝ์ ๋ํ ์ถ๊ฐ ์ ๋ณด์ ๋๋ค. ์๋ฅผ ๋ค๋ฉด '์ด๊ธฐ ์ค์น ์ค์ ์์ฑ๋จ'์ ๋๋ค.
- ๋ค๋ฅธ ๊ธฐ๋ณธ๊ฐ์ ์ ์งํ๊ณ ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
Apigee๋ ์ ํ๊ฒฝ์ ๋ง๋ญ๋๋ค.
์ด์ ํ๊ฒฝ ๊ทธ๋ฃน์ ๋ง๋ค๊ณ ์ ํ๊ฒฝ์ ๊ทธ๋ฃน์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
๋ธ๋ผ์ฐ์ ๋ UI ๊ธฐ๋ณธ ๋ฐฉ๋ฌธ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
Apigee API
ํ๊ฒฝ ๋ง๋ค๊ธฐ API๋ก ํ๊ฒฝ์ ๋ง๋ค๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ์ํํฉ๋๋ค.
- Apigee๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ์ฌ์ฉํ๋ ๊ธฐ๊ธฐ์์ ํฐ๋ฏธ๋์ ์ฝ๋๋ค.
-
๋ช ๋ น์ค์์ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ
gcloud
์ธ์ฆ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ต๋๋ค.Linux/MacOS
export TOKEN=$(gcloud auth print-access-token)
ํ ํฐ์ด ์ ๋ ฅ๋์๋์ง ํ์ธํ๋ ค๋ฉด ๋ค์ ์์์ ๊ฐ์ด
echo
๋ฅผ ์ฌ์ฉํฉ๋๋ค.echo $TOKEN
๊ทธ๋ฌ๋ฉด ํ ํฐ์ด ์ธ์ฝ๋ฉ๋ ๋ฌธ์์ด๋ก ํ์๋ฉ๋๋ค.
Windows
for /f "tokens=*" %a in ('gcloud auth print-access-token') do set TOKEN=%a
ํ ํฐ์ด ์ ๋ ฅ๋์๋์ง ํ์ธํ๋ ค๋ฉด ๋ค์ ์์์ ๊ฐ์ด
echo
๋ฅผ ์ฌ์ฉํฉ๋๋ค.echo %TOKEN%
๊ทธ๋ฌ๋ฉด ํ ํฐ์ด ์ธ์ฝ๋ฉ๋ ๋ฌธ์์ด๋ก ํ์๋ฉ๋๋ค.
- ๋ค์์ ํ๊ฒฝ ๋ณ์๋ฅผ ๋ง๋ญ๋๋ค.
Linux/macOS
export ENV_NAME="YOUR_ENV_NAME"
Windows
set ENV_NAME="YOUR_ENV_NAME"
๊ฐ ํญ๋ชฉ์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
-
ENV_NAME
(ํ์) ํ๊ฒฝ ์ด๋ฆ์ ์๋ฌธ์, ๋์, ์ซ์๋ฅผ ํฌํจํ ์ ์์ผ๋ฉฐ ์๋ฌธ์๋ก ์์ํด์ผ ํฉ๋๋ค. ์ด ์ด๋ฆ์ ์๋ณ์๋ก ์ฌ์ฉ๋๋ฉฐ ํ๊ฒฝ์ ๋ง๋ ํ์๋ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
-
- ๋ค์ Apigee API๋ฅผ ํธ์ถํฉ๋๋ค.
curl -H "Authorization: Bearer $TOKEN" -X POST -H "content-type:application/json" -d '{ "name": "'"$ENV_NAME"'" }' "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/environments"
์ฑ๊ณต์ ์ธ ์์ฑ ์์ฒญ์๋ Environments API๊ฐ ๋ค์๊ณผ ์ ์ฌํ ๋ฉ์์ง๋ก ์๋ตํด์ผ ํฉ๋๋ค.
{ "name": "organizations/hybrid-example/operations/c2aee040-7e79-4fd4-b0cf-79ca1b7098a8", "metadata": { "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata", "operationType": "INSERT", "targetResourceName": "organizations/hybrid-example/environments/example-env", "state": "IN_PROGRESS" } }
์๋ต์
state
์์ฑ์ด ๋ํ๋ด๋ ๊ฒ์ฒ๋ผ Apigee๋ ์ ํ๊ฒฝ์ ๋ง๋ค๊ธฐ ์์ํ์์ผ๋ฏ๋ก ์ํ๋IN_PROGRESS
์ ๋๋ค. - ํ๊ฒฝ์ด ์ฑ๊ณต์ ์ผ๋ก ์์ฑ๋์๋์ง ํ์ธํฉ๋๋ค.
curl -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/environments"
์์ฑ ์์ฒญ์ ์ฑ๊ณตํ๋ฉด Environments API๊ฐ ๋ค์๊ณผ ์ ์ฌํ ๋ฉ์์ง๋ก ์๋ตํฉ๋๋ค.
[ "your-environment-name" ]
ํ๊ฒฝ ๊ทธ๋ฃน ๋ง๋ค๊ธฐ
์ด์ ํ๊ฒฝ ๊ทธ๋ฃน์ ๋ง๋ค๊ณ ๋ฐ๋ก ์ ์ ๋ง๋ ํ๊ฒฝ์ ์ฌ๊ธฐ์ ํ ๋นํฉ๋๋ค.
Apigee UI
Apigee UI๋ฅผ ์ฌ์ฉํ์ฌ ํ๊ฒฝ ๊ทธ๋ฃน์ ๋ง๋ค๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ์ํํฉ๋๋ค.
- Apigee UI๋ฅผ ์ฝ๋๋ค.
- ์กฐ์ง ๋๋กญ๋ค์ด ๋ชฉ๋ก์์ ์กฐ์ง์ด ์ ํ๋์ด ์๋์ง ํ์ธํฉ๋๋ค. ์ ํํ์ง ์์์ผ๋ฉด ๋๋กญ๋ค์ด ๋ชฉ๋ก์์ ์ ํํฉ๋๋ค.
- ๊ด๋ฆฌ > ํ๊ฒฝ > ๊ทธ๋ฃน์ ํด๋ฆญํฉ๋๋ค.
ํ๊ฒฝ ๊ทธ๋ฃน ๊ฐ์ ๋ทฐ๊ฐ ํ์๋ฉ๋๋ค.
- +ํ๊ฒฝ ๊ทธ๋ฃน์ ํด๋ฆญํฉ๋๋ค.
ํ๊ฒฝ ๊ทธ๋ฃน ์ถ๊ฐ ๋ํ์์๊ฐ ํ์๋ฉ๋๋ค.
- ์ด๋ฆ์ ์ ๋ ฅํ ๋ค์ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
-
์๋ก ๋ง๋ ํ๊ฒฝ ๊ทธ๋ฃน ์์ ๋ง์ฐ์ค ํฌ์ธํฐ๋ฅผ ์ฌ๋ ค๋๊ณ ์์
์ ํด๋ฆญํฉ๋๋ค.์ด ๊ทธ๋ฃน ๋ด ํ๊ฒฝ์ ๋ฐฐํฌ๋๋ ๋ชจ๋ ํ๋ก์์ ์ฌ์ฉ๋ ํธ์คํธ ์ด๋ฆ์ ์ถ๊ฐํฉ๋๋ค. ์ด ์ด๋ฆ์ ๊ด๋ฆฌ ์ก์ธ์ค ๊ถํ์ด ์๋ ๋๋ฉ์ธ์ด์ด์ผ ํฉ๋๋ค. ํธ์คํธ ์ด๋ฆ์
example.com
๊ณผ ๊ฐ์ด ๋๋ฉ์ธ ์์ฒด์ด๊ฑฐ๋my-proxies.example.com
๊ณผ ๊ฐ์ด ํ์ ๋๋ฉ์ธ์ ํฌํจํ ์ ์์ต๋๋ค.๋๋ฉ์ธ์ ๋ฑ๋กํด์ผ ํ๋ ๊ฒฝ์ฐ Google Domains์ ๊ฐ์ ๋๋ฉ์ธ ๋ฑ๋ก๊ธฐ๊ด์ ์ฐธ์กฐํ์ธ์.
- ํ๊ฒฝ ์์์์ ์ถ๊ฐ(+)๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ํ๊ฒฝ ์ถ๊ฐ ๋ํ์์๊ฐ ํ์๋ฉ๋๋ค.
- ๋ชฉ๋ก์์ ํ๊ฒฝ์ ์ ํํ ๋ค์ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
๋ธ๋ผ์ฐ์ ๋ Apigee UI ๊ธฐ๋ณธ ๋ฐฉ๋ฌธ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
Apigee API
Apigee API๋ฅผ ์ฌ์ฉํ์ฌ ํ๊ฒฝ ๊ทธ๋ฃน์ ๋ง๋ค๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
-
๋ช ๋ น์ค์์ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ
gcloud
์ธ์ฆ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ต๋๋ค.Linux/MacOS
TOKEN=$(gcloud auth print-access-token)
Windows
for /f "tokens=*" %a in ('gcloud auth print-access-token') do set TOKEN=%a
- ๋ค์์ ํ๊ฒฝ ๋ณ์๋ฅผ ๋ง๋ญ๋๋ค.
Linux/macOS
export DOMAIN="YOUR_DOMAIN"
export ENV_GROUP="YOUR_ENVIRONMENT_GROUP"
Windows
data-terminal-prefix=">">set ENV_GROUP="YOUR_ENVIRONMENT_GROUP"
data-terminal-prefix=">">set DOMAIN="YOUR_DOMAIN"
๊ฐ ํญ๋ชฉ์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
DOMAIN
(ํ์) ์ด ๊ทธ๋ฃน ๋ด ํ๊ฒฝ์ ๋ฐฐํฌ๋๋ ๋ชจ๋ ํ๋ก์์์ ์ฌ์ฉํ ํธ์คํธ ์ด๋ฆ์ ๋๋ค. ๊ด๋ฆฌํ๋ ๋๋ฉ์ธ์ด์ด์ผ ํฉ๋๋ค. ์ฃผ์๋example.com
๊ณผ ๊ฐ์ ๋๋ฉ์ธ ์์ฒด์ด๊ฑฐ๋my-proxies.example.com
๊ณผ ๊ฐ์ ํ์ ๋๋ฉ์ธ์ ํฌํจํ ์ ์์ต๋๋ค. ๊ด๋ฆฌํ ๋๋ฉ์ธ์ด ์์ผ๋ฉด ์ง๊ธ์ ์๋ฆฌํ์์๋ฅผ ์ ๋ ฅํ ์ ์์ต๋๋ค. ๋์ค์ ๋๋ฉ์ธ ์ฃผ์๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.-
ENV_GROUP
(ํ์) ํ๊ฒฝ ์ด๋ฆ์ ์๋ฌธ์, ๋์, ์ซ์๋ฅผ ํฌํจํ ์ ์์ผ๋ฉฐ ์๋ฌธ์๋ก ์์ํด์ผ ํฉ๋๋ค. ์ด ์ด๋ฆ์ ์๋ณ์๋ก ์ฌ์ฉ๋๋ฉฐ ์์ฑ ํ์๋ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
- ํ๊ฒฝ ๊ทธ๋ฃน์ ๋ง๋ญ๋๋ค.
curl -H "Authorization: Bearer $TOKEN" -X POST -H "content-type:application/json" \ -d '{ "name": "'"$ENV_GROUP"'", "hostnames":["'"$DOMAIN"'"] }' \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/envgroups"
- ์ ๊ทธ๋ฃน์ ํ๊ฒฝ์ ํ ๋นํฉ๋๋ค.
curl -H "Authorization: Bearer $TOKEN" -X POST -H "content-type:application/json" \ -d '{ "environment": "'"$ENV_NAME"'", }' \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/envgroups/$ENV_GROUP/attachments"
- ๋ค์ CURL ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ํ๊ฒฝ ๊ทธ๋ฃน์ด ์ฑ๊ณต์ ์ผ๋ก ์์ฑ๋์๋์ง ํ์ธํฉ๋๋ค.
curl -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/envgroups"
์์ฑ ์์ฒญ์ ์ฑ๊ณตํ๋ฉด Environments Group API๊ฐ ๋ค์๊ณผ ์ ์ฌํ ๋ฉ์์ง๋ก ์๋ตํฉ๋๋ค.
{ "environmentGroups": [ { "name": "your_envgroup_hybrid", "hostnames": [ "apigee.hybrid.com" ], "createdAt": "1677826235324", "lastModifiedAt": "1677826235324", "state": "ACTIVE" } ] }
- ๋ค์ CURL ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์๋ก ๋ง๋ ํ๊ฒฝ ๊ทธ๋ฃน์ ์ต์ ์ฐ๊ฒฐ์ ๊ฐ์ ธ์ต๋๋ค.
curl -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/envgroups/$ENV_GROUP/attachments"
์๋ ์ํ ์๋ต ์ถ๋ ฅ์ ํ์๋ ๊ฒ์ฒ๋ผ ๊ฒฐ๊ณผ์ ๊ณ ์ ํ ํด์ ๊ฐ์ด ํ์๋๋ฉด ํ๊ฒฝ ๊ทธ๋ฃน ์์ฑ ๋ฐ ์ฐ๊ฒฐ์ด ์ฑ๊ณตํ ๊ฒ์ ๋๋ค.
{ "environmentGroupAttachments": [ { "name": "c27046d1-b83e-4cba-xxxx-caaa660b2bd6", "environment": "your_envtest_hybrid", "createdAt": "1677826263567", "environmentGroupId": "your_envgroup_hybrid" } ] }
๋ค์ ๋จ๊ณ
2๋ถ: ํ์ด๋ธ๋ฆฌ๋ ๋ฐํ์ ์ค์ ์ผ๋ก ์ด๋ํ์ฌ ์ค์น ๊ณ์ํ๊ธฐ