์ด ๋จ๊ณ์์๋ ํ๊ฒฝ ๋ฐ ํ๊ฒฝ ๊ทธ๋ฃน์ ๋ง๋ญ๋๋ค.
Apigee์์ API ํ๋ก์๋ ํ๋ก์์ ๋ํด ๊ฒฉ๋ฆฌ๋ ์ปจํ ์คํธ๋ฅผ ์ ๊ณตํ๋ ํ๊ฒฝ์ ๋ฐฐํฌ๋ฉ๋๋ค. ํ๊ฒฝ์ ๊ทธ๋ฃน ๋ด ํ๊ฒฝ์ ๋ฐฐํฌ๋๋ ๋ชจ๋ ํ๋ก์์ ํธ์คํธ ์ด๋ฆ์ ์ ๊ณตํ๋ ํ๊ฒฝ ๊ทธ๋ฃน์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. 1๊ฐ ์ด์์ ํ๊ฒฝ๊ณผ 1๊ฐ ์ด์์ ํ๊ฒฝ ๊ทธ๋ฃน์ด ์์ด์ผ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ํ๊ฒฝ ๋ฐ ํ๊ฒฝ ๊ทธ๋ฃน ์ ๋ณด๋ฅผ ์ฐธ์กฐํ์ธ์.
ํ๊ฒฝ ๋ง๋ค๊ธฐ
ํ๊ฒฝ ๊ทธ๋ฃน์ ๋ง๋ค๊ธฐ ์ ์ ๋จผ์ ํ๊ฒฝ์ ๋ง๋ญ๋๋ค. Apigee Hybrid UI ๋๋ CLI๋ฅผ ์ฌ์ฉํ์ฌ ํ๊ฒฝ์ ๋ง๋ค ์ ์์ต๋๋ค. ์ด ๋จ๊ณ์ ์ต์ํด์ง๊ธฐ ์ํด์๋ UI๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
Apigee Hybrid UI
ํ์ด๋ธ๋ฆฌ๋ UI์ ์ก์ธ์คํ๊ณ ํ๊ฒฝ์ ์ถ๊ฐํ๊ธฐ ์ํด ๋ค์ ๋จ๊ณ๋ฅผ ์ํํฉ๋๋ค.
- Apigee UI๋ฅผ ์ฝ๋๋ค. ์ฒ์ ๋ก๊ทธ์ธํ๋ ๊ฒฝ์ฐ ํ์ด๋ธ๋ฆฌ๋์ ๋์ ๋ํ์์๊ฐ ํ์๋ฉ๋๋ค. 2๊ฐ ์ด์์ ๊ณ์ ์์ ์ ํํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋๋ฉด 2๋จ๊ณ: Google Cloud ํ๋ก์ ํธ ๋ง๋ค๊ธฐ์์ ๋ง๋ ํ๋ก์ ํธ๋ฅผ ์์ ํ ๊ณ์ ์ ์ ํํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ํ์ฉ์ ํด๋ฆญํฉ๋๋ค.
-
์กฐ์ง ๋๋กญ๋ค์ด ๋ชฉ๋ก์์ ํ์ด๋ธ๋ฆฌ๋ ์ง์ ์กฐ์ง์ด ์ ํ๋์ด ์๋์ง ํ์ธํฉ๋๋ค. ์ ํ๋์ด ์์ง ์์ ๊ฒฝ์ฐ ๋ค์ ์์์ ๊ฐ์ด ๋๋กญ๋ค์ด ๋ชฉ๋ก์์ ์ ํํฉ๋๋ค.
- ๊ด๋ฆฌ > ํ๊ฒฝ > ๊ฐ์๋ฅผ ํด๋ฆญํฉ๋๋ค.
ํ๊ฒฝ ๋ทฐ๊ฐ ํ์๋ฉ๋๋ค(์์ง ํ๊ฒฝ ์์).
- +ํ๊ฒฝ์ ํด๋ฆญํฉ๋๋ค.
์ ํ๊ฒฝ ๋ํ์์๊ฐ ํ์๋ฉ๋๋ค.
- ์ ํ๊ฒฝ ๋ํ์์์ ๋ค์ ์ ๋ณด๋ฅผ ์
๋ ฅํฉ๋๋ค.
- ํ์ ์ด๋ฆ(ํ์): UI์ ์ฌ์ฉ๋๋ ํ๊ฒฝ์ ๋ณ์นญ์ ๋๋ค. ์๋ฅผ ๋ค๋ฉด 'My First Environment' ๋๋ 'test'์ ๋๋ค. ํ๊ฒฝ ์ด๋ฆ๊ณผ ๋ฌ๋ฆฌ ํ์ ์ด๋ฆ์ ๋๋ฌธ์์ ๊ธฐํ ํน์๋ฌธ์๋ฅผ ํฌํจํ ์ ์์ต๋๋ค.
- ํ๊ฒฝ ์ด๋ฆ(ํ์): ํ๊ฒฝ์ ํ๋ก๊ทธ๋๋งคํฑ ์ด๋ฆ์ด๋ฉฐ ํ๊ฒฝ ID๋ผ๊ณ ๋ ํฉ๋๋ค.
์๋ฅผ ๋ค๋ฉด 'my-environment' ๋๋ 'test'์ ๋๋ค.
ํ์ ์ด๋ฆ๊ณผ ํ๊ฒฝ ์ด๋ฆ์ ๋ค๋ฅผ ์ ์์ต๋๋ค.
- ์ค๋ช (์ ํ์ฌํญ): ํ๊ฒฝ์ ๋ชฉ์ ์ ๋ํ ์๋ฆผ์ผ๋ก ์ถ๊ฐํ ํ๊ฒฝ์ ๋ํ ์ถ๊ฐ ์ ๋ณด์ ๋๋ค. ์๋ฅผ ๋ค๋ฉด '์ด๊ธฐ ์ค์น ์ค์ ์์ฑ๋จ'์ ๋๋ค.
- ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
Apigee์์ ์ ํ๊ฒฝ์ ๋ง๋ค๊ณ ํ๋ก๋น์ ๋ ๋๊ธฐ์ค์์ ๋ํ๋ ๋๋ค.
์ ์ ํ ํ๋ก๋น์ ๋๋จ์ผ๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค.
ํ์ง๋ง ์์ง ์๋ฃ๋์ง ์์์ต๋๋ค. ๋ํ ์ ํ๊ฒฝ์ ๋ฐํ์์
overrides.yaml
ํ์ผ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค. ํ์ง๋ง ๊ทธ ์ ์ ๋จผ์ ๋ฐํ์์ ์ค์นํด์ผ ํฉ๋๋ค.
๋ธ๋ผ์ฐ์ ๋ ํ์ด๋ธ๋ฆฌ๋ UI ๊ธฐ๋ณธ ๋ฐฉ๋ฌธ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
gcloud CLI
ํ๊ฒฝ ๋ง๋ค๊ธฐ API๋ก ํ๊ฒฝ์ ๋ง๋ค๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ์ํํฉ๋๋ค.
- Apigee๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ์ฌ์ฉํ๋ ๊ธฐ๊ธฐ์์ ํฐ๋ฏธ๋์ ์ฝ๋๋ค.
-
๋ค์ ์์์ ๊ฐ์ด ๋ช ๋ น์ค์์
gcloud
์ธ์ฆ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ต๋๋ค.TOKEN=$(gcloud auth print-access-token)
ํ ํฐ์ด ์ ๋ ฅ๋์๋์ง ํ์ธํ๋ ค๋ฉด ๋ค์ ์์์ ๊ฐ์ด
echo
๋ฅผ ์ฌ์ฉํฉ๋๋ค.echo $TOKEN
๊ทธ๋ฌ๋ฉด ํ ํฐ์ด ์ธ์ฝ๋ฉ๋ ๋ฌธ์์ด๋ก ํ์๋ฉ๋๋ค.
์์ธํ ๋ด์ฉ์ gcloud ๋ช ๋ น์ค ๋๊ตฌ ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ธ์.
- ํ๊ฒฝ ์์์ ๋ํ ํ๊ฒฝ ๋ณ์๋ฅผ ๋ง๋ญ๋๋ค. ๋ช
๋ น์ด์์ ๋ค์ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ํ๊ฒฝ ๋ณ์๋ฅผ ๋ง๋ญ๋๋ค.
ENV_NAME
(ํ์)์ ํ๊ฒฝ์ ํ๋ก๊ทธ๋๋งคํฑ ID์ ๋๋ค. ํ๊ฒฝ ์ด๋ฆ์ ์๋ฌธ์, ๋์, ์ซ์๋ฅผ ํฌํจํ ์ ์์ผ๋ฉฐ ์๋ฌธ์๋ก ์์ํด์ผ ํฉ๋๋ค. ์ด ์ด๋ฆ์ ์๋ณ์๋ก ์ฌ์ฉ๋๋ฉฐ ์์ฑ ํ์๋ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.export ENV_NAME=environment_name
ENV_DISPLAY_NAME
(ํ์)์ ํ๊ฒฝ์ ์ฌ์ฉ์ ์นํ์ ์ธ ์ด๋ฆ์ ๋๋ค. ์ด ๊ฐ์ ๊ณ ์ ํ ํ์๊ฐ ์์ผ๋ฉฐ ๊ณต๋ฐฑ๊ณผ ํน์๋ฌธ์๋ฅผ ํฌํจํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค๋ฉด 'My Example Environment'์ ๋๋ค.ENV_DISPLAY_NAME=friendly_name
ORG_NAME
(ํ์)์ ์กฐ์ง ID์ ๋๋ค. 4๋จ๊ณ: ์กฐ์ง ๋ง๋ค๊ธฐ์์ORG_NAME
ํ๊ฒฝ ๋ณ์๋ฅผ ์ ์ํ๋์ง ํ์ธํฉ๋๋ค.echo $ORG_NAME
ENV_DESCRIPTION
(์ ํ์ฌํญ)์ ๋ชฉ์ ์ ๋ง๊ฒ ์๋ฆผ์ผ๋ก ์ฌ์ฉํ๋ ค๋ ํ๊ฒฝ์ ๋ํ ์ ๋ณด์ ๋๋ค. ์๋ฅผ ๋ค๋ฉด 'Apigee Hybrid ์๋ด์ฉ ์์ ํ๊ฒฝ'์ ๋๋ค.ENV_DESCRIPTION=description_text
- ์ธ์ฆ๋
POST
์์ฒญ์ Create Environments API์ ๋ณด๋ ๋๋ค.๋ค์ ์์์์๋ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ํ๊ฒฝ์ ๋ง๋๋ ์์ฒญ ๊ตฌ์กฐ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
curl -H "Authorization: Bearer $TOKEN" -X POST -H "content-type:application/json" -d '{ "name": "'"$ENV_NAME"'", "displayName": "'"$ENV_DISPLAY_NAME"'", "description": "'"$ENV_DESCRIPTION"'" }' "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
์ ๋๋ค. ์ด ํ๋ก์ธ์ค๋ ๋ช ๋ถ์ด ์์๋ ์ ์์ต๋๋ค.
ํ๊ฒฝ ๊ทธ๋ฃน ๋ง๋ค๊ธฐ
์ด์ ํ๊ฒฝ ๊ทธ๋ฃน์ ๋ง๋ค๊ณ ๋ฐ๋ก ์ ์ ๋ง๋ ํ๊ฒฝ์ ์ฌ๊ธฐ์ ํ ๋นํฉ๋๋ค. ํ๊ฒฝ ๊ทธ๋ฃน์ ์ฌ์ฉํ๋ฉด ํ๊ฒฝ์ ํ๋๋ก ๋ฌถ๊ณ , ๊ทธ๋ฃน ๋ด ํ๊ฒฝ์ ๋ฐฐํฌ๋ ํ๋ก์๋ฅผ ๋ผ์ฐํ ํ๊ธฐ ์ํ ํธ์คํธ ์ด๋ฆ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ํ๊ฒฝ ๊ทธ๋ฃน์ ํ๋ ์ด์ ๋ง๋ค๊ณ ๊ทธ๋ฃน์ ํธ์คํธ ์ด๋ฆ์ ํ๋ ์ด์ ํ ๋นํด์ผ ํฉ๋๋ค. ํ๊ฒฝ ๊ทธ๋ฃน ๊ฐ์๋ ํ๊ฒฝ ๋ฐ ํ๊ฒฝ ๊ทธ๋ฃน ์ ๋ณด๋ฅผ ์ฐธ์กฐํ์ธ์.
Apigee Hybrid UI
Apigee UI๋ฅผ ์ฌ์ฉํ์ฌ ํ๊ฒฝ ๊ทธ๋ฃน์ ๋ง๋ค๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ์ํํฉ๋๋ค.
- Apigee UI๋ฅผ ์ฝ๋๋ค.
- ์กฐ์ง ๋๋กญ๋ค์ด ๋ชฉ๋ก์์ ํ์ด๋ธ๋ฆฌ๋ ์ง์ ์กฐ์ง์ด ์ ํ๋์ด ์๋์ง ํ์ธํฉ๋๋ค. ์ ํํ์ง ์์์ผ๋ฉด ๋๋กญ๋ค์ด ๋ชฉ๋ก์์ ์ ํํฉ๋๋ค.
- ๊ด๋ฆฌ > ํ๊ฒฝ > ๊ทธ๋ฃน์ ํด๋ฆญํฉ๋๋ค.
์์ฑ๋ ํ๊ฒฝ ๊ทธ๋ฃน๊ณผ ํจ๊ป ํ๊ฒฝ ๊ทธ๋ฃน ๊ฐ์ ๋ทฐ๊ฐ ํ์๋ฉ๋๋ค.
- +ํ๊ฒฝ ๊ทธ๋ฃน์ ํด๋ฆญํฉ๋๋ค.
ํ๊ฒฝ ๊ทธ๋ฃน ์ถ๊ฐ ๋ํ์์๊ฐ ํ์๋ฉ๋๋ค.
- ์ด๋ฆ์ ์ ๋ ฅํ ๋ค์ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
-
์๋ก ๋ง๋ ํ๊ฒฝ ๊ทธ๋ฃน ์์ ๋ง์ฐ์ค ํฌ์ธํฐ๋ฅผ ์ฌ๋ ค๋๊ณ ์์
์ ํด๋ฆญํฉ๋๋ค.์ด ๊ทธ๋ฃน ๋ด ํ๊ฒฝ์ ๋ฐฐํฌ๋๋ ๋ชจ๋ ํ๋ก์์ ์ฌ์ฉ๋ ํธ์คํธ ์ด๋ฆ์ ์ถ๊ฐํฉ๋๋ค. ์ด ์ด๋ฆ์ ๊ด๋ฆฌ ์ก์ธ์ค ๊ถํ์ด ์๋ ๋๋ฉ์ธ์ด์ด์ผ ํฉ๋๋ค. ๋๋ฉ์ธ์ ๋ฑ๋กํด์ผ ํ๋ ๊ฒฝ์ฐ Google Domains์ ๊ฐ์ ๋๋ฉ์ธ ๋ฑ๋ก๊ธฐ๊ด์ ์ฐธ์กฐํ์ธ์.
- ์ถ๊ฐ(+)๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ํ๊ฒฝ ์ถ๊ฐ ๋ํ์์๊ฐ ํ์๋ฉ๋๋ค.
- ๋ชฉ๋ก์์ ํ๊ฒฝ์ ์ ํํ ๋ค์ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
๋ธ๋ผ์ฐ์ ๋ ํ์ด๋ธ๋ฆฌ๋ UI ๊ธฐ๋ณธ ๋ฐฉ๋ฌธ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
gcloud CLI
๋ช ๋ น์ค์ ์ฌ์ฉํ์ฌ ํ๊ฒฝ ๊ทธ๋ฃน์ ๋ง๋ค๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ์ํํฉ๋๋ค.
-
๋ค์ ์์์ ๊ฐ์ด ๋ช ๋ น์ค์์
gcloud
์ธ์ฆ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ต๋๋ค.TOKEN=$(gcloud auth print-access-token)
ํ ํฐ์ด ์ ๋ ฅ๋์๋์ง ํ์ธํ๋ ค๋ฉด ๋ค์ ์์์ ๊ฐ์ด
echo
๋ฅผ ์ฌ์ฉํฉ๋๋ค.echo $TOKEN
๊ทธ๋ฌ๋ฉด ํ ํฐ์ด ์ธ์ฝ๋ฉ๋ ๋ฌธ์์ด๋ก ํ์๋ฉ๋๋ค.
์์ธํ ๋ด์ฉ์ gcloud ๋ช ๋ น์ค ๋๊ตฌ ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ธ์.
- ๋ค์ ์์์ ๊ฐ์ด ๋๋ฉ์ธ ํ๊ฒฝ ๋ณ์๊ฐ ์ค์ ๋์ด ์๋์ง ํ์ธํฉ๋๋ค.
echo $DOMAIN
์ด ๊ทธ๋ฃน ๋ด์ ํ๊ฒฝ์ ๋ฐฐํฌ๋๋ ๋ชจ๋ ํ๋ก์์ ์ฌ์ฉ๋ ํธ์คํธ ์ด๋ฆ์ ๋๋ค. ์ด ์ด๋ฆ์ ๊ด๋ฆฌ ์ก์ธ์ค ๊ถํ์ด ์๋ ๋๋ฉ์ธ์ด์ด์ผ ํฉ๋๋ค.
์ค์ ๋์ด ์์ง ์๋ค๋ฉด Apigee Hybrid ์ค์น์ฉ์ผ๋ก ์ฌ์ฉํ ๋๋ฉ์ธ์ผ๋ก ๋๋ฉ์ธ ์ด๋ฆ์ ๋ง๋ญ๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
export DOMAIN=domain-name.com
- ENV_NAME ํ๊ฒฝ ๋ณ์๊ฐ ์ด์ ๋จ๊ณ์์ ๋ง๋ ํ๊ฒฝ์ผ๋ก ์ค์ ๋์๋์ง ํ์ธํฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
echo $ENV_NAME
- ์ํ๋ ํ๊ฒฝ ๊ทธ๋ฃน ์ด๋ฆ์ ์ํ ํ๊ฒฝ ๋ณ์๋ฅผ ๋ง๋ญ๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
export ENV_GROUP=environment-group-name
- ๋ค์ ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ํ๊ฒฝ ๊ทธ๋ฃน์ ๋ง๋ญ๋๋ค.
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"
๋ค์ ๋จ๊ณ
์ค์น๋ฅผ ๊ณ์ํ๋ ค๋ฉด ๋ฐํ์ ์ค์น: ์์ํ๊ธฐ ์ ์๋ฅผ ์ฐธ์กฐํ์ธ์.