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

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

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

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

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

Apigee Hybrid UI

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

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

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

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

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

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

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

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

    ๋น„์–ด ์žˆ๋Š” ํ™˜๊ฒฝ ๋ทฐ(ํ™˜๊ฒฝ ์—†์Œ)

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

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

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

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

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

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

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

    Apigee์—์„œ ์ƒˆ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค๊ณ  ํ”„๋กœ๋น„์ €๋‹ ๋Œ€๊ธฐ์ค‘์ž„์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

    ํ”„๋กœ๋น„์ €๋‹ ๋Œ€๊ธฐ์ค‘ ์ƒํƒœ ๋ฉ”์‹œ์ง€

    ์ž ์‹œ ํ›„ ํ”„๋กœ๋น„์ €๋‹๋จ์œผ๋กœ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

    ์ƒˆ ํ™˜๊ฒฝ์ด ํ”„๋กœ๋น„์ €๋‹๋˜์—ˆ๋‹ค๋Š” ๋ฉ”์‹œ์ง€

    ํ•˜์ง€๋งŒ ์•„์ง ์™„๋ฃŒ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ƒˆ ํ™˜๊ฒฝ์„ ๋Ÿฐํƒ€์ž„์˜ overrides.yaml ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ ์ „์— ๋จผ์ € ๋Ÿฐํƒ€์ž„์„ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

gcloud CLI

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

  1. Apigee๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๊ธฐ์—์„œ ํ„ฐ๋ฏธ๋„์„ ์—ฝ๋‹ˆ๋‹ค.
  2. ๋‹ค์Œ ์˜ˆ์‹œ์™€ ๊ฐ™์ด ๋ช…๋ น์ค„์—์„œ gcloud ์ธ์ฆ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

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

    ํ† ํฐ์ด ์ž…๋ ฅ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ ์˜ˆ์‹œ์™€ ๊ฐ™์ด echo๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    echo $TOKEN

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

    ์ž์„ธํ•œ ๋‚ด์šฉ์€ gcloud ๋ช…๋ น์ค„ ๋„๊ตฌ ๊ฐœ์š”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

  3. ํ™˜๊ฒฝ ์š”์†Œ์— ๋Œ€ํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋ช…๋ น์–ด์—์„œ ๋‹ค์Œ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
    • 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
  4. ์ธ์ฆ๋œ 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๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™˜๊ฒฝ ๊ทธ๋ฃน์„ ๋งŒ๋“ค๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

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

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

    ์ƒ์„ฑ๋œ ํ™˜๊ฒฝ ๊ทธ๋ฃน๊ณผ ํ•จ๊ป˜ ํ™˜๊ฒฝ ๊ทธ๋ฃน ๊ฐœ์š” ๋ทฐ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

    ์ƒ์„ฑ๋œ ๋ชจ๋“  ๊ทธ๋ฃน์„ ๋ณด์—ฌ์ฃผ๋Š” ํ™˜๊ฒฝ ๊ทธ๋ฃน ๋ทฐ

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

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

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

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

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

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

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

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

gcloud CLI

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

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

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

    ํ† ํฐ์ด ์ž…๋ ฅ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ ์˜ˆ์‹œ์™€ ๊ฐ™์ด echo๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    echo $TOKEN

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

    ์ž์„ธํ•œ ๋‚ด์šฉ์€ gcloud ๋ช…๋ น์ค„ ๋„๊ตฌ ๊ฐœ์š”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

  2. ๋‹ค์Œ ์˜ˆ์‹œ์™€ ๊ฐ™์ด ๋„๋ฉ”์ธ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    echo $DOMAIN

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

    ์„ค์ •๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด Apigee Hybrid ์„ค์น˜์šฉ์œผ๋กœ ์‚ฌ์šฉํ•  ๋„๋ฉ”์ธ์œผ๋กœ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    export DOMAIN=domain-name.com
  3. ENV_NAME ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ์ด์ „ ๋‹จ๊ณ„์—์„œ ๋งŒ๋“  ํ™˜๊ฒฝ์œผ๋กœ ์„ค์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    echo $ENV_NAME
  4. ์›ํ•˜๋Š” ํ™˜๊ฒฝ ๊ทธ๋ฃน ์ด๋ฆ„์„ ์œ„ํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    export ENV_GROUP=environment-group-name
  5. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™˜๊ฒฝ ๊ทธ๋ฃน์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
    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"
        
  6. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ๊ทธ๋ฃน์— ํ™˜๊ฒฝ์„ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.
    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"
        

๋‹ค์Œ ๋‹จ๊ณ„

์„ค์น˜๋ฅผ ๊ณ„์†ํ•˜๋ ค๋ฉด ๋Ÿฐํƒ€์ž„ ์„ค์น˜: ์‹œ์ž‘ํ•˜๊ธฐ ์ „์—๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.