์ด ํ์ด์ง๋ Apigee ๋ฐ Apigee Hybrid์ ์ ์ฉ๋ฉ๋๋ค.
Apigee Edge ๋ฌธ์ ๋ณด๊ธฐ
apigee-remote-service-cli
๋ช
๋ น์ค ์ธํฐํ์ด์ค(CLI)๋ Envoy์ฉ Apigee ์ด๋ํฐ๋ฅผ ํ๋ก๋น์ ๋ํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
binding ๋ช ๋ น์ด
binding์ Istio ๋ฉ์์ ๋ฐฐํฌ๋ ์๋น์ค๋ฅผ Apigee API ์ ํ๊ณผ ์ฐ๊ฒฐํฉ๋๋ค. CLI๋ฅผ ํตํด binding์ ์์ฑ, ์ญ์ , ๋์ด, ํ์ธํ ์ ์์ต๋๋ค.
๊ฒฐํฉ ๋์ด
์๊ฒฉ ์๋น์ค์ binding๋๋ ๋ชจ๋ API ์ ํ์ ๋์ดํฉ๋๋ค.
์ฌ์ฉ
Apigee Hybrid์ ๊ฒฝ์ฐ:
apigee-remote-service-cli bindings list -o [organization] -e [environment] -t [token] -r [runtime]
๋งค๊ฐ๋ณ์
๋งค๊ฐ๋ณ์ | ์ ํ | ์ค๋ช |
---|---|---|
-c, --config
|
๋ฌธ์์ด | (ํ์) Apigee ์๊ฒฉ ์๋น์ค ๊ตฌ์ฑ ํ์ผ์ ๊ฒฝ๋ก์
๋๋ค. ํ: ์ด ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด CLI๊ฐ ๊ตฌ์ฑ ํ์ผ์์ ๋ช ๋ น์ด ๋งค๊ฐ๋ณ์๋ฅผ ์ง์ ๊ฐ์ ธ์ฌ ์ ์์ผ๋ฏ๋ก ๋๋ถ๋ถ์ ๋ค๋ฅธ ๋ช ๋ น์ด ๋งค๊ฐ๋ณ์๋ฅผ ์๋ตํ ์ ์์ต๋๋ค. --config ์ต์
์ฌ์ฉ์ ์ฐธ์กฐํ์ธ์.
|
-e, --env
|
๋ฌธ์์ด | (ํ์) ์กฐ์ง์ ํ๊ฒฝ์ ๋๋ค. |
-h, --help
|
๋ช ๋ น์ด ๋งค๊ฐ๋ณ์์ ๊ดํ ๋์๋ง์ ํ์ํฉ๋๋ค. | |
--insecure
|
SSL ์ฌ์ฉ ์ ์์ ํ์ง ์์ ์๋ฒ ์ฐ๊ฒฐ์ ํ์ฉํฉ๋๋ค. | |
--legacy
|
Apigee Cloud๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด ํ๋๊ทธ๋ฅผ ์ค์ ํฉ๋๋ค. Edge Cloud์ ๊ด๋ฆฌ ๋ฐ ๋ฐํ์ URL์ ์ค์ ํฉ๋๋ค. | |
--opdk
|
ํ๋ผ์ด๋น ํด๋ผ์ฐ๋์ฉ Apigee๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด ํ๋๊ทธ๋ฅผ ์ค์ ํฉ๋๋ค. | |
-o, --org
|
๋ฌธ์์ด | (ํ์) Apigee ์กฐ์ง์ ๋๋ค. ์ฌ์ฉํ๋ ค๋ฉด ์กฐ์ง ๊ด๋ฆฌ์์ฌ์ผ ํฉ๋๋ค. |
-p, --password
|
๋ฌธ์์ด | (๊ธฐ๋ณธ ์ธ์ฆ์๋ง ํ์ - ํ์ด๋ธ๋ฆฌ๋์์๋ ์ฌ์ฉํ ์ ์์) Apigee ๋น๋ฐ๋ฒํธ์
๋๋ค. ์ ํ์ ์ผ๋ก .netrc ํ์ผ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๋ช
๋ น์ค์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๊ณตํ ํ์๊ฐ ์์ต๋๋ค. ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด์ .netrc ์ฌ์ฉ๋ ์ฐธ์กฐํ์ธ์.
|
-r, --runtime
|
๋ฌธ์์ด | ํ์ด๋ธ๋ฆฌ๋ ๊ตฌ์ฑ์์ ์ ์๋ ๊ฐ์ ํธ์คํธ์ hostAlias ๊ฐ ํฌํจ๋ URL์
๋๋ค. URL์ https:// ์ผ๋ก ์์ํด์ผ ํฉ๋๋ค.
์๋ฅผ ๋ค๋ฉด https://apitest.apigee-hybrid-docs.net ์
๋๋ค.
|
-t, --token
|
๋ฌธ์์ด | (ํ์)์ก์ธ์ค ํ ํฐ์ ๋๋ค. |
-u, --username
|
๋ฌธ์์ด | (๊ธฐ๋ณธ ์ธ์ฆ์๋ง ํ์ - ํ์ด๋ธ๋ฆฌ๋์์๋ ์ฌ์ฉํ ์ ์์) Apigee ์ฌ์ฉ์ ์ด๋ฆ(์ผ๋ฐ์ ์ผ๋ก ์ด๋ฉ์ผ ์ฃผ์)์
๋๋ค.
์ ํ์ ์ผ๋ก .netrc ํ์ผ์ ์ฌ์ฉ์ ์ด๋ฆ์ ์ง์ ํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๋ช
๋ น์ค์ ์ฌ์ฉ์ ์ด๋ฆ์ ์ ๊ณตํ ํ์๊ฐ ์์ต๋๋ค. ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด์ .netrc ์ฌ์ฉ๋ ์ฐธ์กฐํ์ธ์.
|
-v, --verbose
|
(์ ํ์ฌํญ) ์์ธ ์ถ๋ ฅ์ ์์ฑํฉ๋๋ค. |
์
apigee-remote-service-cli bindings list -o myorg -e test -c config.yaml \ -r $RUNTIME -t $TOKEN PI Products ============ Bound ----- envoy-test: Quota: 5 requests every 1 minute Target bindings: httpbin.org Paths: httpbin: Quota: 5 requests every 1 minute Target bindings: httpbin.org Paths: /httpbin / Unbound ------- product-1: Quota: 100 requests every 1 hour product-2: Quota: 1000 requests every 1 month product-3: product-4:
binding ํ์ธ
์ด ๋ช ๋ น์ด๋ ์ง์ ์ค๋จ๋์์ต๋๋ค. ๋ฒ์ 1.4์์ ๊ฐ๋ฐ์ ์ฑ์ ์๊ฒฉ ์๋น์ค ๋์๊ณผ ํจ๊ป ์ฌ์ฉ๋๋ API ์ ํ๊ณผ์ ์ฐ๊ฒฐ์ด ๋ ์ด์ ํ์ํ์ง ์์ต๋๋ค.
๋์๋ง ๋ช ๋ น์ด
๋ชจ๋ apigee-remote-service-cli
๋ช
๋ น์ด์ ์จ๋ผ์ธ ๋์๋ง์ด ์ ๊ณต๋ฉ๋๋ค. ๋ค์์ ์
๋ ฅํ์ธ์.
apigee-remote-service-cli help
๋ชจ๋ ๋ช ๋ น์ด์ ๋ํ ๋์๋ง์ ๋ณด๋ ค๋ฉด ๋ค์์ ์ ๋ ฅํฉ๋๋ค.
apigee-remote-service-cli [command] help
์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
apigee-remote-service-cli provision help
ํ๋ก๋น์ ๋ ๋ช ๋ น์ด
apigee-remote-service-cli provision
๋ช
๋ น์ด๋ Apigee ์กฐ์ง์ ํ๋ก์๋ฅผ ์ค์นํ๊ณ , ์ธ์ฆ์๋ฅผ ์ค์ ํ๊ณ , Envoy์ฉ Apigee ์ด๋ํฐ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐ ํ์ํ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์์ฑํฉ๋๋ค.
์ฌ์ฉ
Apigee Hybrid์ ๊ฒฝ์ฐ:
apigee-remote-service-cli provision -o $ORG -e $ENV -r $RUNTIME -t $TOKEN
๋งค๊ฐ๋ณ์
๋งค๊ฐ๋ณ์ | ์ ํ | ์ค๋ช |
---|---|---|
--analytics-sa
|
๋ฌธ์์ด | ์ด ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์๋น์ค ๊ณ์ ์ Apigee Analytics Agent ์ญํ ์ด ์๋ Google Cloud ์๋น์ค ๊ณ์ ํค ํ์ผ์ ๋ํ ๊ฒฝ๋ก๋ฅผ ์ง์ ํฉ๋๋ค. ์ด SA๋ ์ด๋ํฐ๊ฐ Apigee์ ๋ถ์ ๋ฐ์ดํฐ๋ฅผ ์ง์ ์
๋ก๋ํ๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค. Apigee Hybrid๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด ์ต์
์ ํตํด ํ ํด๋ฌ์คํฐ์ ํ์ด๋ธ๋ฆฌ๋ ๋ฐํ์์ ์ค์นํ๊ณ ๋ค๋ฅธ ํด๋ฌ์คํฐ์ ์ด๋ํฐ๋ฅผ ์ค์นํ ์ ์์ต๋๋ค. ์ด ํ๋๊ทธ๋ Google Cloud ์ค์น ์ Apigee Hybrid ๋ฐ Apigee์์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
|
-c, --config
|
๋ฌธ์์ด | Apigee ์๊ฒฉ ์๋น์ค ๊ตฌ์ฑ ํ์ผ์ ๊ฒฝ๋ก์
๋๋ค. --config ์ต์
์ฌ์ฉ๋ ์ฐธ์กฐํ์ธ์.
|
-e, --environment
|
๋ฌธ์์ด | (ํ์) ์กฐ์ง์ ํ๊ฒฝ์ ๋๋ค. |
-f, --force-proxy-install
|
(์ ํ์ฌํญ) ์กฐ์ง์ remote-service ํ๋ก์๊ฐ ์ด๋ฏธ ์ค์น๋ ๊ฒฝ์ฐ ๊ฐ์ ๋ก ์ด๋ฅผ ๋ค์ ์ค์นํฉ๋๋ค.
|
|
-h, --help
|
๋ช ๋ น์ด ๋งค๊ฐ๋ณ์์ ๊ดํ ๋์๋ง์ ํ์ํฉ๋๋ค. | |
-k, --key
|
๋ฌธ์์ด | apigee-remote-service-cli provision ๋ช
๋ น์ด์์ ๋ฐํ๋ ํค๋ฅผ ์ง์ ํฉ๋๋ค. |
--legacy
|
Apigee Edge(๊ด๋ฆฌ ๋ฐ ๋ฐํ์ URL ์ค์ )์ ๋๋ค. | |
-m, --management
|
๋ฌธ์์ด | (Apigee Private Cloud๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ํ์) Apigee ๊ด๋ฆฌ ๊ธฐ์ค URL์
๋๋ค.
๊ธฐ๋ณธ๊ฐ: https://api.enterprise.apigee.com
|
-n, --namespace
|
๋ฌธ์์ด | ์ง์ ๋ ๋ค์์คํ์ด์ค์์ Envoy ConfigMap์ผ๋ก ๊ตฌ์ฑ์ ๋ด๋ณด๋ ๋๋ค. ๊ธฐ๋ณธ๊ฐ: apigee |
--opdk
|
๋ฌธ์์ด | ํ๋ผ์ด๋น ํด๋ผ์ฐ๋์ฉ Apigee๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด ํ๋๊ทธ๋ฅผ ์ค์ ํฉ๋๋ค. |
-o, --organization
|
๋ฌธ์์ด | (ํ์) Apigee ์กฐ์ง์ ๋๋ค. |
-p, --password
|
๋ฌธ์์ด | (๊ธฐ๋ณธ ์ธ์ฆ์๋ง ํ์ - ํ์ด๋ธ๋ฆฌ๋์์๋ ์ฌ์ฉํ ์ ์์) Apigee ๋น๋ฐ๋ฒํธ์
๋๋ค. ์ ํ์ ์ผ๋ก .netrc ํ์ผ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๋ช
๋ น์ค์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๊ณตํ ํ์๊ฐ ์์ต๋๋ค. ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด์ .netrc ์ฌ์ฉ๋ ์ฐธ์กฐํ์ธ์.
|
--rotate-int
|
์ ์ | n > 0์ธ ๊ฒฝ์ฐ ์ ๋น๊ณต๊ฐ ํค๋ฅผ ์์ฑํ๊ณ n๊ฐ์ ๊ณต๊ฐ ํค๋ฅผ ๋ณด๊ดํฉ๋๋ค(ํ์ด๋ธ๋ฆฌ๋๋ง ํด๋น). |
-r, --runtime
|
๋ฌธ์์ด | ํ์ด๋ธ๋ฆฌ๋ ๊ตฌ์ฑ์์ ์ ์๋ ๊ฐ์ ํธ์คํธ์ hostAlias ๊ฐ ํฌํจ๋ URL์
๋๋ค. URL์ https:// ์ผ๋ก ์์ํด์ผ ํฉ๋๋ค.
์๋ฅผ ๋ค๋ฉด https://apitest.apigee-hybrid-docs.net ์
๋๋ค.
|
-s, --secret
|
๋ฌธ์์ด | apigee-remote-service-cli provision ๋ช
๋ น์ด์์ ๋ฐํ๋ ๋ณด์ ๋น๋ฐ์ ์ง์ ํฉ๋๋ค. |
--strength
|
์ ์ | (์ ํ์ฌํญ) ์ด๋ํฐ ํ๋ก๋น์ ๋์ ์ฌ์ฉ๋ SSL ์ธ์ฆ์์ ์ํธํ ๊ฐ๋๋ฅผ ์ง์ ํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ: 2048. |
-t, --token
|
๋ฌธ์์ด | Apigee OAuth ๋๋ SAML ํ ํฐ์ ๋๋ค. |
-u, --username
|
๋ฌธ์์ด | (๊ธฐ๋ณธ ์ธ์ฆ์๋ง ํ์ - ํ์ด๋ธ๋ฆฌ๋์์๋ ์ฌ์ฉํ ์ ์์) Apigee ์ฌ์ฉ์ ์ด๋ฆ(์ผ๋ฐ์ ์ผ๋ก ์ด๋ฉ์ผ ์ฃผ์)์
๋๋ค.
์ ํ์ ์ผ๋ก .netrc ํ์ผ์ ์ฌ์ฉ์ ์ด๋ฆ์ ์ง์ ํ ์ ์์ต๋๋ค.
์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด์ .netrc ์ฌ์ฉ๋ ์ฐธ์กฐํ์ธ์.
|
-v, --verbose
|
(์ ํ์ฌํญ) ์์ธ ์ถ๋ ฅ์ ์์ฑํฉ๋๋ค. | |
--virtual-hosts
|
๋ฌธ์์ด | ๊ธฐ๋ณธ ๊ฐ์ ํธ์คํธ๋ฅผ ์ฌ์ ์ํฉ๋๋ค. |
--years
|
์ ์ | (์ ํ์ฌํญ) ํ๋ก๋น์ ๋์ ์ฌ์ฉ๋ SSL ์ธ์ฆ์๊ฐ ๋ง๋ฃ๋๊ธฐ ์ ์ ์ฐ์์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ: 1 |
์์
๋ค๋ฅธ Envoy์ฉ Apigee ์ด๋ํฐ ์์
์ ์
๋ ฅ์ผ๋ก ์ฌ์ฉ๋๋ ํ์ผ์ provision
๋ช
๋ น์ด ์ถ๋ ฅ์ ์บก์ฒํด์ผ ํฉ๋๋ค.
๋ค์์ Apigee Hybrid ์์์ ๋๋ค.
apigee-remote-service-cli provision --organization $ORG --environment $ENV --runtime $RUNTIME \ --namespace $NAMESPACE --token $TOKEN > config.yaml
์ํ ๋ช ๋ น์ด
์ํ ๊ตฌ์ฑ ํ์ผ ๋ง๋ค๊ธฐ
๊ธฐ๋ณธ Envoy ๋๋ Istio ๋ฐฐํฌ๋ฅผ ์ํ ์ํ ๊ตฌ์ฑ ํ์ผ์ ๋ง๋ญ๋๋ค.
์ฌ์ฉ
apigee-remote-service-cli samples create [flags]
์ค๋ช
์ด ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ํ๋ก๋น์ ๋์ ํตํด ์์ฑ๋๋ ์ ํจํ config.yaml
ํ์ผ์ด ํ์ํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ์ํ ํ์ผ์ ./samples
๋ผ๋ ๋๋ ํฐ๋ฆฌ์ ์ถ๋ ฅ๋ฉ๋๋ค. ์ด ๋๋ ํฐ๋ฆฌ๋ ์ด ๋ช
๋ น์ด๋ก ์๋์ผ๋ก ์์ฑ๋ฉ๋๋ค.
๊ธฐ๋ณธ Envoy๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ช
๋ น์ด์ ๋์ ์๋น์ค ํธ์คํธ ๋ฐ ์ํ๋ ํด๋ฌ์คํฐ ์ด๋ฆ์ด ์ฌ์ฉ๋ฉ๋๋ค. ๋ํ tls.key
๋ฐ tls.crt
๊ฐ ํฌํจ๋ ํด๋๊ฐ --tls
๋ฅผ ํตํด ์ ๊ณต๋๋ ๊ฒฝ์ฐ Envoy ํ๋ก์์์ ์๊ฒฉ ์๋น์ค ํด๋ฌ์คํฐ๋ก์ ์ปค์คํ
SSL ์ฐ๊ฒฐ์ด ์ค์ ๋ฉ๋๋ค.
Envoy ํ๋ก์๊ฐ ์ฌ์ด๋์นด๋ก ์๋ํ๋ Istio๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ๋์์ ์ง์ ํ์ง ์์ผ๋ฉด httpbin
์์๊ฐ ์์ฑ๋ฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋์ ์๋น์ค ๋ฐฐํฌ์ ๊ด๋ จ๋ ๊ตฌ์ฑ ํ์ผ์ ์ค๋นํด์ผ ํฉ๋๋ค.
๋งค๊ฐ๋ณ์
๋งค๊ฐ๋ณ์ | ์ ํ | ์ค๋ช |
---|---|---|
-c, --config
|
๋ฌธ์์ด | (ํ์) Apigee ์๊ฒฉ ์๋น์ค ๊ตฌ์ฑ ํ์ผ์ ๊ฒฝ๋ก์
๋๋ค. ํ: ์ด ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด CLI๊ฐ ๊ตฌ์ฑ ํ์ผ์์ ๋ช ๋ น์ด ๋งค๊ฐ๋ณ์๋ฅผ ์ง์ ๊ฐ์ ธ์ฌ ์ ์์ผ๋ฏ๋ก ๋๋ถ๋ถ์ ๋ค๋ฅธ ๋ช ๋ น์ด ๋งค๊ฐ๋ณ์๋ฅผ ์๋ตํ ์ ์์ต๋๋ค. --config ์ต์
์ฌ์ฉ์ ์ฐธ์กฐํ์ธ์.
|
-f, --force
|
๊ธฐ์กด ๋๋ ํฐ๋ฆฌ๋ฅผ ๊ฐ์ ๋ก ๋ฎ์ด์๋๋ค. | |
-h, --help
|
๋ช ๋ น์ด ๋งค๊ฐ๋ณ์์ ๊ดํ ๋์๋ง์ ํ์ํฉ๋๋ค. | |
--host
|
๋์ ์๋น์ค ํธ์คํธ(๊ธฐ๋ณธ๊ฐ 'httpbin.org') | |
-n, --name
|
๋์ ์๋น์ค ์ด๋ฆ(๊ธฐ๋ณธ๊ฐ 'httpbin') | |
--out
|
์ํ ๊ตฌ์ฑ ํ์ผ์ ๋ง๋ค ๋๋ ํฐ๋ฆฌ์
๋๋ค. ๊ธฐ๋ณธ๊ฐ: ./samples
|
|
-t, --template
|
ํ ํ๋ฆฟ ์ด๋ฆ์ ๋๋ค. Istio ๋ฐฐํฌ๋ฅผ ์ํํ๋ ๊ฒฝ์ฐ(ํ์ด๋ธ๋ฆฌ๋๋ง ํด๋น) ์ฌ์ฉ ๊ฐ๋ฅํ Istio ์ต์ ์ค ํ๋๋ฅผ ์ ํํฉ๋๋ค. ๊ธฐ๋ณธ Envoy ๋ฐฐํฌ๋ฅผ ์ํ ๊ธฐ๋ณธ ์ต์ ์ ์ฌ์ฉํฉ๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ์ต์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
|
|
--tls
|
TLS ํค์ crt ํ์ผ์ ์ ์ฅํ ๋๋ ํฐ๋ฆฌ์ ๋๋ค. |
์
apigee-remote-service-cli samples create -c ./config.yaml
์ฌ์ฉ ๊ฐ๋ฅํ ํ ํ๋ฆฟ ์ต์ ๋์ด
--templates
๋งค๊ฐ๋ณ์์ ํจ๊ป ์ฌ์ฉํ ์ ์๋ ์ต์
์ ๋์ดํฉ๋๋ค.
์ฌ์ฉ
apigee-remote-service-cli samples templates
๋งค๊ฐ๋ณ์
์์
์
apigee-remote-service-cli samples templates
Supported templates (native is deprecated): envoy-1.14 envoy-1.15 envoy-1.16 istio-1.5 istio-1.6 istio-1.7 istio-1.8 native
ํ ํฐ ๋ช ๋ น์ด
API ํค๋ฅผ ์ฌ์ฉํ๋ ๋์ JWT ํ ํฐ์ ์ฌ์ฉํ์ฌ ์ธ์ฆ๋ API ํ๋ก์ ํธ์ถ์ ์ํํ ์ ์์ต๋๋ค. ํ ํฐ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ์ด ๋ชฉ์ ์ผ๋ก JWT ํ ํฐ์ ์์ฑ, ๊ฒ์ฌ, ์ํํ ์ ์์ต๋๋ค.
JWT ํ ํฐ ๋ง๋ค๊ธฐ
JWT ํ ํฐ์ ์ฌ์ฉํ์ฌ ์๊ฒฉ ์๋น์ค ๋์์ ์ธ์ฆ๋ API ํ๋ก์ ํธ์ถ์ ์ํํ ์ ์์ต๋๋ค. JWT ๊ธฐ๋ฐ ์ธ์ฆ ์ฌ์ฉ๋ ์ฐธ์กฐํ์ธ์.์ฌ์ฉ
Apigee Hybrid์ ๊ฒฝ์ฐ:apigee-remote-service-cli token create -c [config_file] --id [consumer_key] --secret [consumer_secret] -r [runtime] -o [org] -e [env]
๋งค๊ฐ๋ณ์
๋งค๊ฐ๋ณ์ | ์ ํ | ์ค๋ช |
---|---|---|
-c, --config
|
๋ฌธ์์ด | (ํ์) Apigee ์๊ฒฉ ์๋น์ค ๊ตฌ์ฑ ํ์ผ์ ๊ฒฝ๋ก์
๋๋ค. ํ: ์ด ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด CLI๊ฐ ๊ตฌ์ฑ ํ์ผ์์ ๋ช ๋ น์ด ๋งค๊ฐ๋ณ์๋ฅผ ์ง์ ๊ฐ์ ธ์ฌ ์ ์์ผ๋ฏ๋ก ๋๋ถ๋ถ์ ๋ค๋ฅธ ๋ช ๋ น์ด ๋งค๊ฐ๋ณ์๋ฅผ ์๋ตํ ์ ์์ต๋๋ค. --config ์ต์
์ฌ์ฉ์ ์ฐธ์กฐํ์ธ์.
|
-e, --env
|
๋ฌธ์์ด | (ํ์) ์กฐ์ง์ ํ๊ฒฝ์ ๋๋ค. |
-h, --help
|
๋ช ๋ น์ด ๋งค๊ฐ๋ณ์์ ๊ดํ ๋์๋ง์ ํ์ํฉ๋๋ค. | |
--insecure
|
SSL ์ฌ์ฉ ์ ์์ ํ์ง ์์ ์๋ฒ ์ฐ๊ฒฐ์ ํ์ฉํฉ๋๋ค. | |
-o, --org
|
๋ฌธ์์ด | (ํ์) Apigee ์กฐ์ง์ ๋๋ค. ์ฌ์ฉํ๋ ค๋ฉด ์กฐ์ง ๊ด๋ฆฌ์์ฌ์ผ ํฉ๋๋ค. |
-r, --runtime
|
๋ฌธ์์ด | ํ์ด๋ธ๋ฆฌ๋ ๊ตฌ์ฑ์์ ์ ์๋ ๊ฐ์ ํธ์คํธ์ hostAlias ๊ฐ ํฌํจ๋ URL์
๋๋ค. URL์ https:// ์ผ๋ก ์์ํด์ผ ํฉ๋๋ค.
์๋ฅผ ๋ค๋ฉด https://apitest.apigee-hybrid-docs.net ์
๋๋ค.
|
-v, --verbose
|
(์ ํ์ฌํญ) ์์ธ ์ถ๋ ฅ์ ์์ฑํฉ๋๋ค. |
์
./apigee-remote-service-cli token create -o $ORG -e $ENV -i YUmlZAcBKNsTAelJqPZFl3sh58ObATX9 \ -s icTARgaKHqvUH1dq -c config.yaml -r $RUNTIME -t $TOKEN
์ถ๋ ฅ
์ฑ๊ณตํ๋ฉด ๋ค์๊ณผ ๋น์ทํ JST ํ ํฐ ์ถ๋ ฅ์ด ํ์๋ฉ๋๋ค.eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJhY2Nlc3NfdG9rZW4iOiJ0a2tlVzVKQTY2a0pZYTB4bFV1cVBsUW1BMU43IiwiYXVkIjoiaXN0aW8iLCJuYmYiOjE1MzAxMzg1OTEsImFwaV9wcm9kdWN0X2xpc3QiOlsiaXN0aW8tcHJvZHVjdCJdLCJhcHBsaWNhdGlvbl9uYW1lIjoiaXN0aW8tYXBwIiwiZGV2ZWxvcGVyX2VtYWlsIjoicFluZ2Zsb3lkQGdvb2dsZS5jb20iLCJpc3MiOiJodHRwczovL2FwaWdlZXNlYXJjaC10ZXN0LmFwaWdlZS5uZXQvaXN0aW8tYXV0aC90b2tlbiIsImV4cCI6MTUzMDEzOTQ5MSwiaWF0IjoxNTMwMTM4NTkxLCJqdGkiOiIxODgzMzViZi0wMmE4LTRjZGUsOGFkOS0yMWJmNDZjNmRjZDkiLCJjbGllbnRfaWQiOiJZVW1sWkFjQktOc1RBZWxKcVBZRmwzc2g1OE9iQVRYOSJ9.AL7pKSTmond-NSPRNNHVbIzTdAnZjOXcjQ-BbOJ_8lsQvF7PuiOUrGIhY5XTcJusisKgbCdtIxBl8Wq1EiQ_fKnUc3JYYOqzpTB5bGoFy0Yqbfu96dneuWyzgZnoQBkqwZkbQTIg7WNTGx1TJX-UTePvBPxAefiAbaEUcigX9tTsXPoRJZOTrm7IOeKpxpB_gQYkxQtV1_NbERxjTPyMbHdMWal9_xRVzSt7mpTGudMN9OR-VtQ1uXA67GOqhZWcOzq57qImOiCMbaoKnKUADevyWjX_VscN5ZZUtzQUQhTrmv8aR69-uVhMIPKp9juMyYKaYn2IsYZEeCWfhfV45Q
JWT ํ ํฐ ๊ฒ์ฌ
์ด ๋ช ๋ น์ด๋ก JWT ํ ํฐ์ ๊ฒ์ฌํ ์ ์์ต๋๋ค. ํ ํฐ ๊ฒ์ฌ๋ ์ฐธ์กฐํ์ธ์.์ฌ์ฉ
Apigee Hybrid์ ๊ฒฝ์ฐ:apigee-remote-service-cli token inspect -o [organization] -e [environment] -f [token_file] --runtime [host_alias]
๋งค๊ฐ๋ณ์
๋งค๊ฐ๋ณ์ | ์ ํ | ์ค๋ช |
---|---|---|
-c, --config
|
๋ฌธ์์ด | (ํ์) Apigee ์๊ฒฉ ์๋น์ค ๊ตฌ์ฑ ํ์ผ์ ๊ฒฝ๋ก์
๋๋ค. ํ: ์ด ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด CLI๊ฐ ๊ตฌ์ฑ ํ์ผ์์ ๋ช ๋ น์ด ๋งค๊ฐ๋ณ์๋ฅผ ์ง์ ๊ฐ์ ธ์ฌ ์ ์์ผ๋ฏ๋ก ๋๋ถ๋ถ์ ๋ค๋ฅธ ๋ช ๋ น์ด ๋งค๊ฐ๋ณ์๋ฅผ ์๋ตํ ์ ์์ต๋๋ค. --config ์ต์
์ฌ์ฉ์ ์ฐธ์กฐํ์ธ์.
|
-e, --env
|
๋ฌธ์์ด | (ํ์) ์กฐ์ง์ ํ๊ฒฝ์ ๋๋ค. |
-h, --help
|
๋ช ๋ น์ด ๋งค๊ฐ๋ณ์์ ๊ดํ ๋์๋ง์ ํ์ํฉ๋๋ค. | |
--insecure
|
SSL ์ฌ์ฉ ์ ์์ ํ์ง ์์ ์๋ฒ ์ฐ๊ฒฐ์ ํ์ฉํฉ๋๋ค. | |
-o, --org
|
๋ฌธ์์ด | (ํ์) Apigee ์กฐ์ง์ ๋๋ค. ์ฌ์ฉํ๋ ค๋ฉด ์กฐ์ง ๊ด๋ฆฌ์์ฌ์ผ ํฉ๋๋ค. |
-r, --runtime
|
๋ฌธ์์ด | ํ์ด๋ธ๋ฆฌ๋ ๊ตฌ์ฑ์์ ์ ์๋ ๊ฐ์ ํธ์คํธ์ hostAlias ๊ฐ ํฌํจ๋ URL์
๋๋ค. URL์ https:// ์ผ๋ก ์์ํด์ผ ํฉ๋๋ค.
์๋ฅผ ๋ค๋ฉด https://apitest.apigee-hybrid-docs.net ์
๋๋ค.
|
-v, --verbose
|
(์ ํ์ฌํญ) ์์ธ ์ถ๋ ฅ์ ์์ฑํฉ๋๋ค. |
์
apigee-remote-service-cli token inspect -c config.yaml <<< $TOKEN
์ถ๋ ฅ
์ฑ๊ณตํ๋ฉด ๋ค์๊ณผ ๋น์ทํ ์ถ๋ ฅ์ด ํ์๋ฉ๋๋ค.{ "aud": [ "remote-service-client" ], "exp": 1591741549, "iat": 1591740649, "iss": "https://apigee-docs-test.apigee.net/remote-service/token", "jti": "99325d2e-6440-4278-9f7f-b252a1a79e53", "nbf": 1591740649, "access_token": "VfzpXzBGAQ07po0bPMKY4JgQjus", "api_product_list": [ "httpbin" ], "application_name": "httpbin", "client_id": "GYDGHy5TRpV8AejXCOlreP7dPVepA8H", "developer_email": "user@example.com", "scope": "" } verifying... token ok.
JWT ํ ํฐ ์ํ
JWT๋ฅผ ์ฒ์ ์์ฑํ ํ ์ด๋ ์ ๋ ์ง๋๋ฉด Apigee์์ ์ ์ฅ๋ ๊ณต๊ฐ ํค/๋น๊ณต๊ฐ ํค ์์ ์ํธํ๋ ํค-๊ฐ ๋งต(KVM)์ผ๋ก ๋ณ๊ฒฝํด์ผ ํ ์ ์์ต๋๋ค. ์ ํค ์์ ์์ฑํ๋ ์ด ํ๋ก์ธ์ค๋ฅผ ํค ์ํ์ด๋ผ๊ณ ํฉ๋๋ค. ํค๋ฅผ ์ํํ๋ฉด ์ ๋น๊ณต๊ฐ/๊ณต๊ฐ ํค ์์ด ์์ฑ๋๊ณ Apigee ์กฐ์ง/ํ๊ฒฝ์ 'istio' KVM์ ์ ์ฅ๋ฉ๋๋ค. ๋ํ ์ด์ ๊ณต๊ฐ ํค๋ ์๋ ํค ID ๊ฐ๊ณผ ํจ๊ป ๋ณด๊ด๋ฉ๋๋ค.์ฌ์ฉ
Apigee Hybrid์ ๊ฒฝ์ฐ
apigee-remote-service-cli token rotate-cert -o [organization] -e [environment] -t [token] -r [runtime] -k [provision_key] -s [provision_secret] --kid [new_key_id]
๋งค๊ฐ๋ณ์
๋งค๊ฐ๋ณ์ | ์ ํ | ์ค๋ช |
---|---|---|
-c, --config
|
๋ฌธ์์ด | (ํ์) Apigee ์๊ฒฉ ์๋น์ค ๊ตฌ์ฑ ํ์ผ์ ๊ฒฝ๋ก์
๋๋ค. ํ: ์ด ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด CLI๊ฐ ๊ตฌ์ฑ ํ์ผ์์ ๋ช ๋ น์ด ๋งค๊ฐ๋ณ์๋ฅผ ์ง์ ๊ฐ์ ธ์ฌ ์ ์์ผ๋ฏ๋ก ๋๋ถ๋ถ์ ๋ค๋ฅธ ๋ช ๋ น์ด ๋งค๊ฐ๋ณ์๋ฅผ ์๋ตํ ์ ์์ต๋๋ค. --config ์ต์
์ฌ์ฉ์ ์ฐธ์กฐํ์ธ์.
|
-e, --env
|
๋ฌธ์์ด | (ํ์) ์กฐ์ง์ ํ๊ฒฝ์ ๋๋ค. |
-h, --help
|
๋ช ๋ น์ด ๋งค๊ฐ๋ณ์์ ๊ดํ ๋์๋ง์ ํ์ํฉ๋๋ค. | |
--insecure
|
SSL ์ฌ์ฉ ์ ์์ ํ์ง ์์ ์๋ฒ ์ฐ๊ฒฐ์ ํ์ฉํฉ๋๋ค. | |
--truncate
|
์ ์ | jwks์ ๋ณด๊ดํ ์ธ์ฆ์์ ์(๊ธฐ๋ณธ๊ฐ: 2) |
-o, --org
|
๋ฌธ์์ด | (ํ์) Apigee ์กฐ์ง์ ๋๋ค. ์ฌ์ฉํ๋ ค๋ฉด ์กฐ์ง ๊ด๋ฆฌ์์ฌ์ผ ํฉ๋๋ค. |
-r, --runtime
|
๋ฌธ์์ด | ํ์ด๋ธ๋ฆฌ๋ ๊ตฌ์ฑ์์ ์ ์๋ ๊ฐ์ ํธ์คํธ์ hostAlias ๊ฐ ํฌํจ๋ URL์
๋๋ค. URL์ https:// ์ผ๋ก ์์ํด์ผ ํฉ๋๋ค.
์๋ฅผ ๋ค๋ฉด https://apitest.apigee-hybrid-docs.net ์
๋๋ค.
|
-v, --verbose
|
(์ ํ์ฌํญ) ์์ธ ์ถ๋ ฅ์ ์์ฑํฉ๋๋ค. |
์
./apigee-remote-service-cli token create -o $ORG -e $ENV -i YUmlZAcBKNsTAelJqPZFl3sh58ObATX9 \ -s icTARgaKHqvUH1dq -c config.yaml -r $RUNTIME -t $TOKEN
์ถ๋ ฅ
certificate successfully rotated
์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด์ .netrc ์ฌ์ฉ
Edge Public Cloud๋ฅผ ์ฌ์ฉํ๊ณ ๋จธ์api.enterprise.apigee.com
์ ํญ๋ชฉ์ด ์๋ ๊ฒฝ์ฐ apigee-remote-service-cli
๊ฐ ํ ๋๋ ํฐ๋ฆฌ์ .netrc
ํ์ผ์์ username
๋ฐ password
(๊ธฐ๋ณธ ์ธ์ฆ์ด ํ์ํ ๊ฒฝ์ฐ)๋ฅผ ์๋์ผ๋ก ์ ํํฉ๋๋ค. Apigee Private Cloud๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋จธ์ ๊ฐ์ management
URL๊ณผ ๋์ผํฉ๋๋ค(์: http://192.162.55.100
).
Edge Public Cloud์ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
machine api.enterprise.apigee.com login jdoe@google.com password abc123
machine http://192.162.55.100 login jdoe@google.com password abc123
๋ฒ์ ๋ช ๋ น์ด
CLI ๋ฒ์ ์ ํ์ํฉ๋๋ค.
apigee-remote-service-cli version
--config
๋ช
๋ น์ด ์ต์
์ฌ์ฉ
--config
์ต์
์ provision
๋ช
๋ น์ด๋ก ์์ฑ๋ ๊ตฌ์ฑ ํ์ผ์ ์์น๋ฅผ ์ง์ ํฉ๋๋ค. ์ด ์ต์
์๋ CLI๊ฐ ๊ตฌ์ฑ ํ์ผ์์ ๊ฐ์ ธ์ค๋ ๋๋ถ๋ถ์ ๋ค๋ฅธ ๋ช
๋ น์ด ๋งค๊ฐ๋ณ์๋ฅผ ์๋ตํ ์ ์๋ค๋ ์ ์ฉํ ์ด์ ์ด ์์ต๋๋ค.
์ด๋ฌํ ์ต์
์๋ ๋ค์๊ณผ ๊ฐ์ ํญ๋ชฉ์ด ํฌํจ๋ฉ๋๋ค.
- ์กฐ์ง
- ํ๊ฒฝ
- ๋ฐํ์
- management
- ์์ ํ์ง ์์
- ๋ค์์คํ์ด์ค
- legacy
- opdk
์๋ฅผ ๋ค์ด ๋ค์๊ณผ ๊ฐ์ด provision
๋ช
๋ น์ด๋ฅผ ์คํํ ์ ์์ต๋๋ค.
apigee-remote-service-cli provision --config='old-config.yaml' > new-config.yaml
๊ตฌ์ฑ ํ์ผ
์ด ์น์ ์์๋ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ ์ต์ ์ด ํฌํจ๋ ๊ตฌ์ฑ ํ์ผ์ ์์๋ฅผ ๋ณด์ฌ์ค๋๋ค.
global: temp_dir: /tmp/apigee-istio keep_alive_max_connection_age: 1m api_address: :5000 metrics_address: :5001 tls: cert_file: tls.crt key_file: tls.key tenant: internal_api: https://istioservices.apigee.net/edgemicro remote_service_api: https://org-test.apigee.net/remote-service org_name: org env_name: env key: mykey secret: mysecret client_timeout: 30s allow_unverified_ssl_cert: false products: refresh_rate: 2m analytics: legacy_endpoint: false file_limit: 1024 send_channel_size: 10 collection_interval: 10s fluentd_endpoint: apigee-udca-myorg-test.apigee.svc.cluster.local:20001 tls: ca_file: /opt/apigee/tls/ca.crt cert_file: /opt/apigee/tls/tls.crt key_file: /opt/apigee/tls/tls.key allow_unverified_ssl_cert: false auth: api_key_claim: claim api_key_cache_duration: 30m api_key_header: x-api-key api_target_header: :authority reject_unauthorized: true jwks_poll_interval: 0s jwt_provider_key: https://org-test.apigee.net/remote-service/token