์Šน์ธ ์‹œ ๊ฒŒ์ดํŠธ ๋นŒ๋“œ

Cloud Build๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋นŒ๋“œ๋ฅผ ์ฆ‰์‹œ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ์Šน์ธ๋  ๋•Œ๊นŒ์ง€ ๋นŒ๋“œ๋ฅผ ๋Œ€๊ธฐ ์ค‘์œผ๋กœ ํ‘œ์‹œํ•˜๋Š” ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ถŒํ•œ์„ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž๊ฐ€ ๋Œ€๊ธฐ ์ค‘์ธ ๋นŒ๋“œ๋ฅผ ์Šน์ธํ•˜๋ฉด ๋นŒ๋“œ๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์Šน์ธ์ด ๊ฑฐ๋ถ€๋˜๋ฉด ๋นŒ๋“œ๊ฐ€ ์‹œ์ž‘๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€์—์„œ๋Š” ์ˆ˜๋™์œผ๋กœ ๋นŒ๋“œ๋ฅผ ์Šน์ธํ•˜๊ฑฐ๋‚˜ ๊ฑฐ๋ถ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์Šน์ธ์ด ํ•„์š”ํ•œ ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ ค๋ฉด ๋นŒ๋“œ ํŠธ๋ฆฌ๊ฑฐ ๋งŒ๋“ค๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์‹œ์ž‘ํ•˜๊ธฐ ์ „์—

  • Enable the Cloud Build API.

    Enable the API

  • Google Cloud CLI๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

  • ์•„์ง ๋งŒ๋“ค์ง€ ์•Š์•˜๋‹ค๋ฉด ์Šน์ธ์ด ํ•„์š”ํ•˜๋„๋ก ๊ตฌ์„ฑ๋œ ๋นŒ๋“œ ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

๊ถŒํ•œ ๋ถ€์—ฌ

์‚ฌ์šฉ์ž์—๊ฒŒ Cloud Build ํŽธ์ง‘์ž ์—ญํ• ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์Šน์ธ์ด ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ํ•„์š”ํ•˜์ง€ ์•Š๋„๋ก ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•  ๊ถŒํ•œ์ด ์žˆ์Šต๋‹ˆ๋‹ค. Cloud Build ๊ถŒํ•œ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ IAM ๋ฐ ๊ถŒํ•œ์„ ์ฐธ์กฐํ•˜์„ธ์š”. ํ”„๋กœ์ ํŠธ ๋‚ด์—์„œ ๋นŒ๋“œ๋ฅผ ์Šน์ธํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์šฉ์ž ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋ ค๋ฉด ์‚ฌ์šฉ์ž์—๊ฒŒ Cloud Build ์Šน์ธ ๋‹ด๋‹น์ž ์—ญํ• ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Cloud Build ์Šน์ธ ๋‹ด๋‹น์ž ์—ญํ• ์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. Google Cloud Console์—์„œ IAM ํŽ˜์ด์ง€๋ฅผ ์—ฝ๋‹ˆ๋‹ค.

    IAM ํŽ˜์ด์ง€ ์—ด๊ธฐ

  2. ์•ก์„ธ์Šค ๊ถŒํ•œ ๋ถ€์—ฌ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    ์•ก์„ธ์Šค ๊ถŒํ•œ ๋ถ€์—ฌ ํŒจ๋„์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

  3. ์ฃผ ๊ตฌ์„ฑ์› ์ถ”๊ฐ€ ์„น์…˜์—์„œ ์‚ฌ์šฉ์ž๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํ”„๋กœ์ ํŠธ ๋‚ด์—์„œ ๋Œ€๊ธฐ ์ค‘์ธ ๋นŒ๋“œ์— ๋Œ€ํ•œ ์Šน์ธ์„ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ด ์„น์…˜์—๋Š” ์ฃผ ๊ตฌ์„ฑ์›์„ ํ•œ ๋ช… ์ด์ƒ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์‹ ์„ ์ฃผ ๊ตฌ์„ฑ์›์œผ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ ํŠธ๋ฆฌ๊ฑฐ๊ฐ€ ์Šน์ธ์œผ๋กœ ๊ด€๋ฆฌ๋˜๋ฉด ๋Œ€๊ธฐ ์ค‘์ธ ๋นŒ๋“œ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์Šน์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  4. ์—ญํ•  ํ• ๋‹น ์„น์…˜์—์„œ Cloud Build > Cloud Build ์Šน์ธ ๋‹ด๋‹น์ž๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

์ง€์ •ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ์ด์ œ ๋Œ€๊ธฐ ์ค‘์ธ ๋นŒ๋“œ๋ฅผ ์Šน์ธํ•˜๊ฑฐ๋‚˜ ๊ฑฐ๋ถ€ํ•  ์ˆ˜ ์žˆ๋Š” ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋นŒ๋“œ ์Šน์ธ

์ฝ˜์†”

Google Cloud Console์—์„œ ๋Œ€๊ธฐ ์ค‘์ธ ๋นŒ๋“œ๋ฅผ ์Šน์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. Google Cloud ์ฝ˜์†”์—์„œ Cloud Build ๋Œ€์‹œ๋ณด๋“œ ํŽ˜์ด์ง€๋ฅผ ์—ฝ๋‹ˆ๋‹ค.

    Cloud Build ๋Œ€์‹œ๋ณด๋“œ ํŽ˜์ด์ง€ ์—ด๊ธฐ

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

  3. ์Šน์ธํ•˜๋ ค๋Š” ๋นŒ๋“œ์˜ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ์Šน์ธํ•  ๋นŒ๋“œ ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ์Šน์ธํ•  ๋นŒ๋“œ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  4. ํŽ˜์ด์ง€ ์ƒ๋‹จ์—์„œ ์Šน์ธ์„ ํด๋ฆญํ•˜์—ฌ ์„ ํƒํ•œ ๋นŒ๋“œ๋ฅผ ์Šน์ธํ•ฉ๋‹ˆ๋‹ค.

  5. ๋นŒ๋“œ๊ฐ€ ์‹œ์ž‘๋˜๊ธฐ ์ „์— ๋นŒ๋“œ ์Šน์ธ ๋Œ€ํ™”์ƒ์ž๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋Œ€ํ™”์ƒ์ž์—์„œ ์„ ํƒ์‚ฌํ•ญ ๋ฉ”์‹œ์ง€ ๋ฐ ๋นŒ๋“œ์˜ ์Šน์ธ๊ณผ ํ•จ๊ป˜ ํ‘œ์‹œํ•  URL์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. URL์„ ํฌํ•จํ•˜๋ ค๋ฉด ์ถ”๊ฐ€ ์˜ต์…˜ ํ‘œ์‹œ๋ฅผ ํด๋ฆญํ•˜์—ฌ URL์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  6. ๋Œ€ํ™”์ƒ์ž์—์„œ ์Šน์ธ์„ ํด๋ฆญํ•˜์—ฌ ๋นŒ๋“œ๋ฅผ ์Šน์ธํ•ฉ๋‹ˆ๋‹ค.

์Šน์ธํ•˜๋ฉด ๋นŒ๋“œ๊ฐ€ ์ฆ‰์‹œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์กฐ์ง ์ •์ฑ…(constraints/cloudbuild.allowedIntegrations)์—์„œ ์—ฐ๊ฒฐ๋œ ์ €์žฅ์†Œ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ๊ฑฐ๋ถ€ํ•˜๋ฉด ์ •์ฑ…์ด ์Šน์ธ์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์กฐ์ง ์ •์ฑ… ๊ธฐ๋ฐ˜ ๊ฒŒ์ดํŠธ ๋นŒ๋“œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

gcloud

gcloud commands๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ€๊ธฐ ์ค‘์ธ ๋นŒ๋“œ๋ฅผ ์Šน์ธํ•˜๋ ค๋ฉด ํ„ฐ๋ฏธ๋„ ์ฐฝ์—์„œ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

gcloud builds approve BUILD_ID \
  --project=PROJECT_ID \
  --url=URL \
  --comment=COMMENT

์œ„ ๋ช…๋ น์–ด์˜ ์ž๋ฆฌํ‘œ์‹œ์ž ๊ฐ’์„ ๋‹ค์Œ์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • BUILD_ID๋Š” ์Šน์ธํ•  ๋นŒ๋“œ์˜ ID์ž…๋‹ˆ๋‹ค.
  • PROJECT_ID๋Š” ํ”„๋กœ์ ํŠธ ID์ž…๋‹ˆ๋‹ค.
  • [์„ ํƒ์‚ฌํ•ญ] URL์€ JIRA ํ‹ฐ์ผ“ ๋งํฌ์™€ ๊ฐ™์€ ์Šน์ธ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ URL์ž…๋‹ˆ๋‹ค.
  • [์„ ํƒ์‚ฌํ•ญ] COMMENT๋Š” ๋นŒ๋“œ ์Šน์ธ ์‹œ ํ‘œ์‹œํ•  ๋ฉ”์‹œ์ง€์ž…๋‹ˆ๋‹ค.

์Šน์ธํ•˜๋ฉด ๋นŒ๋“œ๊ฐ€ ์ฆ‰์‹œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ํ—ˆ์šฉ๋œ ํ†ตํ•ฉ(constraints/cloudbuild.allowedIntegrations)์˜ ๋นŒ๋“œ๋ฅผ ์ •์˜ํ•˜๋Š” ์กฐ์ง ์ •์ฑ…์ด ์„ค์ •๋˜๋ฉด ์ด ์ •์ฑ…์—์„œ ์Šน์ธ์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ๋นŒ๋“œํ•˜๋„๋ก ์กฐ์ง ์ •์ฑ… ์ ์šฉ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋นŒ๋“œ ๊ฑฐ๋ถ€

์ฝ˜์†”

Google Cloud Console์—์„œ ๋Œ€๊ธฐ ์ค‘์ธ ๋นŒ๋“œ๋ฅผ ๊ฑฐ๋ถ€ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. Google Cloud ์ฝ˜์†”์—์„œ Cloud Build ๋Œ€์‹œ๋ณด๋“œ ํŽ˜์ด์ง€๋ฅผ ์—ฝ๋‹ˆ๋‹ค.

    Cloud Build ๋Œ€์‹œ๋ณด๋“œ ํŽ˜์ด์ง€ ์—ด๊ธฐ

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

  3. ๊ฑฐ๋ถ€ํ•  ๋นŒ๋“œ ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ๊ฑฐ๋ถ€ํ•  ๋นŒ๋“œ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฑฐ๋ถ€ํ•˜๋ ค๋Š” ๋นŒ๋“œ์˜ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ํŽ˜์ด์ง€ ์ƒ๋‹จ์˜ ๊ฑฐ๋ถ€๋ฅผ ํด๋ฆญํ•˜์—ฌ ๋นŒ๋“œ๋ฅผ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค.

๋นŒ๋“œ๋ฅผ ๊ฑฐ๋ถ€ํ•˜๋ฉด ๋นŒ๋“œ๊ฐ€ ์‹œ์ž‘๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

gcloud

gcloud commands๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ€๊ธฐ ์ค‘์ธ ๋นŒ๋“œ๋ฅผ ๊ฑฐ๋ถ€ํ•˜๋ ค๋ฉด ํ„ฐ๋ฏธ๋„ ์ฐฝ์—์„œ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

gcloud builds reject BUILD_ID \
  --project=PROJECT_ID \
  --url=URL \
  --comment=COMMENT

์œ„ ๋ช…๋ น์–ด์˜ ์ž๋ฆฌํ‘œ์‹œ์ž ๊ฐ’์„ ๋‹ค์Œ์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • BUILD_ID๋Š” ๊ฑฐ๋ถ€ํ•  ๋นŒ๋“œ์˜ ID์ž…๋‹ˆ๋‹ค.
  • PROJECT_ID๋Š” ํ”„๋กœ์ ํŠธ ID์ž…๋‹ˆ๋‹ค.
  • [์„ ํƒ์‚ฌํ•ญ] URL์€ JIRA ํ‹ฐ์ผ“ ๋งํฌ์™€ ๊ฐ™์€ ๊ฑฐ๋ถ€์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ URL์ž…๋‹ˆ๋‹ค.
  • [์„ ํƒ์‚ฌํ•ญ] COMMENT๋Š” ๋นŒ๋“œ ๊ฑฐ๋ถ€ ์‹œ ํ‘œ์‹œํ•  ๋ฉ”์‹œ์ง€์ž…๋‹ˆ๋‹ค.

๋นŒ๋“œ๋ฅผ ๊ฑฐ๋ถ€ํ•˜๋ฉด ๋นŒ๋“œ๊ฐ€ ์‹œ์ž‘๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์Šน์ธ ๋Œ€๊ธฐ ์ค‘์ธ ๋นŒ๋“œ์— ๋Œ€ํ•œ ์•Œ๋ฆผ ์ˆ˜์‹ 

Cloud Build ์•Œ๋ฆฌ๋ฏธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Slack ๋˜๋Š” SMTP ์„œ๋ฒ„์™€ ๊ฐ™์€ Cloud Build ์œ ์ง€๋ณด์ˆ˜ ์•Œ๋ฆฌ๋ฏธ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์ž์ฒด ์•Œ๋ฆฌ๋ฏธ๋ฅผ ๋งŒ๋“ค์–ด ๋Œ€๊ธฐ ์ค‘์ธ ๋นŒ๋“œ์— ๊ด€ํ•œ ์•Œ๋ฆผ์„ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•Œ๋ฆผ์„ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. ๋‹ค์Œ ํŽ˜์ด์ง€ ์ค‘ ํ•˜๋‚˜์˜ ์•ˆ๋‚ด์— ๋”ฐ๋ผ ์›ํ•˜๋Š” ์„œ๋น„์Šค์˜ ์•Œ๋ฆผ์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  2. ์œ„ ํŽ˜์ด์ง€ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•Œ๋ฆผ์„ ๊ตฌ์„ฑํ•  ๋•Œ๋Š” ๋Œ€๊ธฐ์ค‘ ์ƒํƒœ๋กœ ๋นŒ๋“œ๋ฅผ ํ•„ํ„ฐ๋งํ•˜๋„๋ก ์•Œ๋ฆฌ๋ฏธ๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์Šน์ธ ๋Œ€๊ธฐ ์ค‘์ธ ๋นŒ๋“œ์— ๊ด€ํ•œ ์•Œ๋ฆผ์ด ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ SMTP ์•Œ๋ฆฌ๋ฏธ ๊ตฌ์„ฑ ํŒŒ์ผ ์˜ˆ์‹œ์—์„œ๋Š” ํ•„ํ„ฐ ํ•„๋“œ๊ฐ€ Common Expression Language(CEL)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ€๊ธฐ์ค‘ ์ƒํƒœ๋กœ ๋นŒ๋“œ ์ด๋ฒคํŠธ๋ฅผ ํ•„ํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค.

    apiVersion: cloud-build-notifiers/v1
    kind: SMTPNotifier
    metadata:
      name: example-smtp-notifier
    spec:
      notification:
        filter: build.status == Build.Status.PENDING
        delivery:
          server: example.gmail.com
          port: 0000
          sender: sender@example.com
          ...
    

    ์ „์ฒด ์˜ˆ์‹œ๋ฅผ ๋ณด๋ ค๋ฉด SMTP ์•Œ๋ฆฌ๋ฏธ์— ๋Œ€ํ•œ ์•Œ๋ฆฌ๋ฏธ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

  3. ์•Œ๋ฆฌ๋ฏธ๋ฅผ ๋ฐฐํฌํ•˜๋ ค๋ฉด ํ„ฐ๋ฏธ๋„์—์„œ gcloud run ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์˜ˆ์‹œ์—์„œ๋Š” Cloud Run์„ ์‚ฌ์šฉํ•˜์—ฌ SMTP ์•Œ๋ฆฌ๋ฏธ๋ฅผ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.

    gcloud run deploy example.gmail.com \
      --image=us-east1-docker.pkg.dev/gcb-release/cloud-build-notifiers/smtp:latest \
      --update-env-vars=CONFIG_PATH=smtp.yaml, PROJECT_ID=my-project
    

์ด์ œ ์„œ๋น„์Šค์— ๋Œ€๊ธฐ ์ค‘์ธ ๋นŒ๋“œ์— ๋Œ€ํ•œ ์•Œ๋ฆผ์ด ์ˆ˜์‹ ๋ฉ๋‹ˆ๋‹ค.

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