3๋‹จ๊ณ„: ํ™˜๊ฒฝ ๊ทธ๋ฃน ๋งŒ๋“ค๊ธฐ

์ด ๋‹จ๊ณ„์—์„œ๋Š” ํ™˜๊ฒฝ ๋ฐ ํ™˜๊ฒฝ ๊ทธ๋ฃน์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

Apigee์—์„œ API ํ”„๋ก์‹œ๋Š” ํ”„๋ก์‹œ์— ๋Œ€ํ•ด ๊ฒฉ๋ฆฌ๋œ ์ปจํ…์ŠคํŠธ๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ™˜๊ฒฝ์— ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ํ™˜๊ฒฝ์€ ๊ทธ๋ฃน ๋‚ด ํ™˜๊ฒฝ์— ๋ฐฐํฌ๋˜๋Š” ๋ชจ๋“  ํ”„๋ก์‹œ์˜ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์ œ๊ณตํ•˜๋Š” ํ™˜๊ฒฝ ๊ทธ๋ฃน์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. 1๊ฐœ ์ด์ƒ์˜ ํ™˜๊ฒฝ๊ณผ 1๊ฐœ ์ด์ƒ์˜ ํ™˜๊ฒฝ ๊ทธ๋ฃน์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ™˜๊ฒฝ ๋ฐ ํ™˜๊ฒฝ ๊ทธ๋ฃน ์ •๋ณด๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

ํ™˜๊ฒฝ ๋งŒ๋“ค๊ธฐ

ํ™˜๊ฒฝ ๊ทธ๋ฃน์„ ๋งŒ๋“ค๊ธฐ ์ „์— ๋จผ์ € ํ™˜๊ฒฝ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. Apigee UI๋‚˜ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„์— ์ต์ˆ™ํ•ด์ง€๊ธฐ ์œ„ํ•ด์„œ๋Š” UI๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

Apigee UI

UI์— ์•ก์„ธ์Šคํ•˜๊ณ  ํ™˜๊ฒฝ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. Apigee UI๋ฅผ ์—ฝ๋‹ˆ๋‹ค. ์ฒ˜์Œ ๋กœ๊ทธ์ธํ•˜๋Š” ๊ฒฝ์šฐ Hybrid์— ๋™์˜ ๋Œ€ํ™”์ƒ์ž๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. 2๊ฐœ ์ด์ƒ์˜ ๊ณ„์ •์—์„œ ์„ ํƒํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋ฉด Apigee Hybrid๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” Google Cloud ํ”„๋กœ์ ํŠธ๋ฅผ ์†Œ์œ ํ•œ ๊ณ„์ •์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ—ˆ์šฉ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ธŒ๋ผ์šฐ์ €๋Š” UI ๊ธฐ๋ณธ ๋ฐฉ๋ฌธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    ์™ผ์ชฝ ํƒ์ƒ‰์ฐฝ๊ณผ ๋งํฌ๊ฐ€ ์žˆ๋Š” ๋Œ€ํ˜• ์ด๋ฏธ์ง€๋กœ ๊ตฌ์„ฑ๋œ Apigee UI์˜ ๋ฐฉ๋ฌธ ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค.

  3. ์กฐ์ง ๋“œ๋กญ๋‹ค์šด ๋ชฉ๋ก์—์„œ ์กฐ์ง์ด ์„ ํƒ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์„ ํƒ๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋‹ค์Œ ์˜ˆ์‹œ์™€ ๊ฐ™์ด ๋“œ๋กญ๋‹ค์šด ๋ชฉ๋ก์—์„œ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ง€์› ์กฐ์ง ๋ชฉ๋ก

  4. ๊ด€๋ฆฌ > ํ™˜๊ฒฝ > ๊ฐœ์š”๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    ๊ด€๋ฆฌ, ํ™˜๊ฒฝ, ๊ฐœ์š”๋ฅผ ํŽผ์นœ Apigee UI ๋ฉ”๋‰ด

    ํ™˜๊ฒฝ ๋ทฐ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค(์•„์ง ํ™˜๊ฒฝ ์—†์Œ).

  5. +ํ™˜๊ฒฝ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    ์ƒˆ ํ™˜๊ฒฝ ๋Œ€ํ™”์ƒ์ž๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

    ์ƒˆ ํ™˜๊ฒฝ ๋Œ€ํ™”์ƒ์ž

  6. ์ƒˆ ํ™˜๊ฒฝ ๋Œ€ํ™”์ƒ์ž์— ๋‹ค์Œ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
    1. ํ‘œ์‹œ ์ด๋ฆ„(ํ•„์ˆ˜): UI์— ์‚ฌ์šฉ๋˜๋Š” ํ™˜๊ฒฝ์˜ ๋ณ„์นญ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด 'My First Environment' ๋˜๋Š” 'test'์ž…๋‹ˆ๋‹ค. ํ™˜๊ฒฝ ์ด๋ฆ„๊ณผ ๋‹ฌ๋ฆฌ ํ‘œ์‹œ ์ด๋ฆ„์€ ๋Œ€๋ฌธ์ž์™€ ๊ธฐํƒ€ ํŠน์ˆ˜๋ฌธ์ž๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    2. ํ™˜๊ฒฝ ์ด๋ฆ„(ํ•„์ˆ˜): ํ™˜๊ฒฝ์˜ ํ”„๋กœ๊ทธ๋ž˜๋งคํ‹ฑ ์ด๋ฆ„์ด๋ฉฐ ํ™˜๊ฒฝ ID๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค.

      ์˜ˆ๋ฅผ ๋“ค๋ฉด 'my-environment' ๋˜๋Š” 'test'์ž…๋‹ˆ๋‹ค.

      ํ‘œ์‹œ ์ด๋ฆ„๊ณผ ํ™˜๊ฒฝ ์ด๋ฆ„์€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    3. ์„ค๋ช…(์„ ํƒ์‚ฌํ•ญ): ํ™˜๊ฒฝ์˜ ๋ชฉ์ ์— ๋Œ€ํ•œ ์•Œ๋ฆผ์œผ๋กœ ์ถ”๊ฐ€ํ•  ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด '์ดˆ๊ธฐ ์„ค์น˜ ์ค‘์— ์ƒ์„ฑ๋จ'์ž…๋‹ˆ๋‹ค.
  7. ๋‹ค๋ฅธ ๊ธฐ๋ณธ๊ฐ’์„ ์œ ์ง€ํ•˜๊ณ  ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    Apigee๋Š” ์ƒˆ ํ™˜๊ฒฝ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    ์ด์ œ ํ™˜๊ฒฝ ๊ทธ๋ฃน์„ ๋งŒ๋“ค๊ณ  ์ƒˆ ํ™˜๊ฒฝ์„ ๊ทธ๋ฃน์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Apigee API

ํ™˜๊ฒฝ ๋งŒ๋“ค๊ธฐ API๋กœ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. Apigee๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๊ธฐ์—์„œ ํ„ฐ๋ฏธ๋„์„ ์—ฝ๋‹ˆ๋‹ค.
  2. ๋ช…๋ น์ค„์—์„œ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 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%

    ๊ทธ๋Ÿฌ๋ฉด ํ† ํฐ์ด ์ธ์ฝ”๋”ฉ๋œ ๋ฌธ์ž์—ด๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

  3. ๋‹ค์Œ์˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    Linux/macOS

    export ENV_NAME="YOUR_ENV_NAME"

    Windows

    set ENV_NAME="YOUR_ENV_NAME"

    ๊ฐ ํ•ญ๋ชฉ์˜ ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    • ENV_NAME (ํ•„์ˆ˜) ํ™˜๊ฒฝ ์ด๋ฆ„์€ ์†Œ๋ฌธ์ž, ๋Œ€์‹œ, ์ˆซ์ž๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์†Œ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ด๋ฆ„์€ ์‹๋ณ„์ž๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ ํ™˜๊ฒฝ์„ ๋งŒ๋“  ํ›„์—๋Š” ๋ณ€๊ฒฝ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  4. ๋‹ค์Œ 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์ž…๋‹ˆ๋‹ค.

  5. ํ™˜๊ฒฝ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ƒ์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    curl -H "Authorization: Bearer $TOKEN" \
              "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/environments"

    ์ƒ์„ฑ ์š”์ฒญ์— ์„ฑ๊ณตํ•˜๋ฉด Environments API๊ฐ€ ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•œ ๋ฉ”์‹œ์ง€๋กœ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.

    [
      "your-environment-name"
    ]

ํ™˜๊ฒฝ ๊ทธ๋ฃน ๋งŒ๋“ค๊ธฐ

์ด์ œ ํ™˜๊ฒฝ ๊ทธ๋ฃน์„ ๋งŒ๋“ค๊ณ  ๋ฐ”๋กœ ์ „์— ๋งŒ๋“  ํ™˜๊ฒฝ์„ ์—ฌ๊ธฐ์— ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.

Apigee UI

Apigee UI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™˜๊ฒฝ ๊ทธ๋ฃน์„ ๋งŒ๋“ค๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. Apigee UI๋ฅผ ์—ฝ๋‹ˆ๋‹ค.
  2. ๋ธŒ๋ผ์šฐ์ €๋Š” Apigee UI ๊ธฐ๋ณธ ๋ฐฉ๋ฌธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  3. ์กฐ์ง ๋“œ๋กญ๋‹ค์šด ๋ชฉ๋ก์—์„œ ์กฐ์ง์ด ์„ ํƒ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์„ ํƒํ•˜์ง€ ์•Š์•˜์œผ๋ฉด ๋“œ๋กญ๋‹ค์šด ๋ชฉ๋ก์—์„œ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  4. ๊ด€๋ฆฌ > ํ™˜๊ฒฝ > ๊ทธ๋ฃน์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    ํ™˜๊ฒฝ ๊ทธ๋ฃน ๊ฐœ์š” ๋ทฐ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

    ํ™˜๊ฒฝ ๊ทธ๋ฃน ๋ทฐ

  5. +ํ™˜๊ฒฝ ๊ทธ๋ฃน์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    ํ™˜๊ฒฝ ๊ทธ๋ฃน ์ถ”๊ฐ€ ๋Œ€ํ™”์ƒ์ž๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

    ๋นˆ ์ด๋ฆ„ ํ•„๋“œ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ํ™˜๊ฒฝ ๊ทธ๋ฃน ์ถ”๊ฐ€ ๋Œ€ํ™”์ƒ์ž

  6. ์ด๋ฆ„์„ ์ž…๋ ฅํ•œ ๋‹ค์Œ ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  7. ์ƒˆ๋กœ ๋งŒ๋“  ํ™˜๊ฒฝ ๊ทธ๋ฃน ์œ„์— ๋งˆ์šฐ์Šค ํฌ์ธํ„ฐ๋ฅผ ์˜ฌ๋ ค๋†“๊ณ  ์ˆ˜์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    ์ด ๊ทธ๋ฃน ๋‚ด ํ™˜๊ฒฝ์— ๋ฐฐํฌ๋˜๋Š” ๋ชจ๋“  ํ”„๋ก์‹œ์— ์‚ฌ์šฉ๋  ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ด๋ฆ„์€ ๊ด€๋ฆฌ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š” ๋„๋ฉ”์ธ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์€ example.com๊ณผ ๊ฐ™์ด ๋„๋ฉ”์ธ ์ž์ฒด์ด๊ฑฐ๋‚˜ my-proxies.example.com๊ณผ ๊ฐ™์ด ํ•˜์œ„ ๋„๋ฉ”์ธ์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋„๋ฉ”์ธ์„ ๋“ฑ๋กํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ Google Domains์™€ ๊ฐ™์€ ๋„๋ฉ”์ธ ๋“ฑ๋ก๊ธฐ๊ด€์„ ์ฐธ์กฐํ•˜์„ธ์š”.

  8. ํ• ๋‹น๋œ ํ™˜๊ฒฝ์ด ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š” ํ™˜๊ฒฝ ๊ทธ๋ฃน ์ฐฝ ์ˆ˜์ •

  9. ํ™˜๊ฒฝ ์ƒ์ž์—์„œ ์ถ”๊ฐ€(+)๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  10. ํ™˜๊ฒฝ ์ถ”๊ฐ€ ๋Œ€ํ™”์ƒ์ž๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  11. ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ™˜๊ฒฝ์„ ๋‚˜์—ดํ•˜๋Š” ํ™˜๊ฒฝ ์ถ”๊ฐ€ ๋Œ€ํ™”์ƒ์ž

  12. ๋ชฉ๋ก์—์„œ ํ™˜๊ฒฝ์„ ์„ ํƒํ•œ ๋‹ค์Œ ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

Apigee API

Apigee API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™˜๊ฒฝ ๊ทธ๋ฃน์„ ๋งŒ๋“ค๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. ๋ช…๋ น์ค„์—์„œ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ gcloud ์ธ์ฆ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

    Linux/MacOS

    TOKEN=$(gcloud auth print-access-token)

    Windows

    for /f "tokens=*" %a in ('gcloud auth print-access-token') do set TOKEN=%a
  2. ๋‹ค์Œ์˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    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 (ํ•„์ˆ˜) ํ™˜๊ฒฝ ์ด๋ฆ„์€ ์†Œ๋ฌธ์ž, ๋Œ€์‹œ, ์ˆซ์ž๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์†Œ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ด๋ฆ„์€ ์‹๋ณ„์ž๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ ์ƒ์„ฑ ํ›„์—๋Š” ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  3. ํ™˜๊ฒฝ ๊ทธ๋ฃน์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
    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"
        
  4. ์ƒˆ ๊ทธ๋ฃน์— ํ™˜๊ฒฝ์„ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.
    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"
        
  5. ๋‹ค์Œ 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"
              }
            ]
          }
        
  6. ๋‹ค์Œ 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๋ถ€: ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋Ÿฐํƒ€์ž„ ์„ค์ •์œผ๋กœ ์ด๋™ํ•˜์—ฌ ์„ค์น˜ ๊ณ„์†ํ•˜๊ธฐ