์ฐธ์กฐ

์ด ํŽ˜์ด์ง€๋Š” 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 ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ๊ธฐ๋ณธ ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • istio-1.6(๊ธฐ๋ณธ๊ฐ’)
  • istio-1.7
  • native
--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
Edge Private Cloud์˜ ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
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