Eventarc ํธ๋ฆฌ๊ฑฐ๋ ํน์ ์ด๋ฒคํธ ๋๋ ์ด๋ฒคํธ ์งํฉ์ ๊ด์ฌ์ด ์์์ ์ ์ธํฉ๋๋ค. ํธ๋ฆฌ๊ฑฐ ํํฐ๋ฅผ ์ง์ ํ์ฌ ์ด๋ฒคํธ ์์ค์ ๋์ Cloud Run ์๋น์ค๋ฅผ ํฌํจํ ์ด๋ฒคํธ ๋ผ์ฐํ ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
Eventarc๋ HTTP ์์ฒญ์ ํตํด ์ด๋ฒคํธ๋ฅผ CloudEvents ํ์์ผ๋ก ์ด๋ฒคํธ ์์ ์์๊ฒ ์ ๋ฌํฉ๋๋ค.
์ด ์๋ด์์๋ ์ง์ Cloud Speech-to-Text ์ด๋ฒคํธ์ ์ํด ํธ๋ฆฌ๊ฑฐ๋๋ Cloud Run ์๋น์ค์ ๋ํ ์ด๋ฒคํธ ๋ผ์ฐํ ์ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ์์ธํ ๋ด์ฉ์ ์ง์๋๋ ์ง์ ์ด๋ฒคํธ ๋ชฉ๋ก์ ์ฐธ์กฐํ์ธ์.
ํธ๋ฆฌ๊ฑฐ ๋ง๋ค๊ธฐ ์ค๋น
ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋ง๋ค๊ธฐ ์ ์ ๋ค์ ๊ธฐ๋ณธ ์๊ฑด์ ์ถฉ์กฑํ์ธ์.
์ฝ์
Google Cloud ์ฝ์์ ํ๋ก์ ํธ ์ ํ๊ธฐ ํ์ด์ง์์ Google Cloud ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ฑฐ๋ ์ ํํฉ๋๋ค.
Cloud Logging, Eventarc, Eventarc Publishing API๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.
ํด๋นํ๋ ๊ฒฝ์ฐ ์ง์ ์ด๋ฒคํธ์ ๊ด๋ จ๋ API๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด Cloud Speech-to-Text ์ด๋ฒคํธ์ ๊ฒฝ์ฐCloud Speech-to-Text API๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.
์์ง ๊ณ์ ์ด ์๋ ๊ฒฝ์ฐ ์ฌ์ฉ์ ๊ด๋ฆฌํ ์๋น์ค ๊ณ์ ์ ๋ง๋ค๊ณ Eventarc์์ ๋์ ์๋น์ค์ ์ด๋ฒคํธ๋ฅผ ๊ด๋ฆฌํ ์ ์๋๋ก ํ์ํ ์ญํ ๊ณผ ๊ถํ์ ๊ณ์ ์ ๋ถ์ฌํฉ๋๋ค.
Google Cloud ์ฝ์์์ ์๋น์ค ๊ณ์ ๋ง๋ค๊ธฐ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
ํ๋ก์ ํธ๋ฅผ ์ ํํฉ๋๋ค.
์๋น์ค ๊ณ์ ์ด๋ฆ ํ๋์ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค. Google Cloud ์ฝ์์ ์ด ์ด๋ฆ์ ๊ธฐ๋ฐ์ผ๋ก ์๋น์ค ๊ณ์ ID ํ๋๋ฅผ ์ฑ์๋๋ค.
์๋น์ค ๊ณ์ ์ค๋ช ํ๋์ ์ค๋ช ์ ์ ๋ ฅํฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด
Service account for event trigger
์ ๋๋ค.๋ง๋ค๊ณ ๊ณ์ํ๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ ์ ํ ์ก์ธ์ค ๊ถํ์ ์ ๊ณตํ๋ ค๋ฉด ์ญํ ์ ํ ๋ชฉ๋ก์์ ์ธ์ฆ๋์๊ฑฐ๋ ์ธ์ฆ๋์ง ์์ ํธ์ถ๊ณผ ๊ด๋ จํด ์๋น์ค ๊ณ์ ์ ๋ถ์ฌํ ํ์ Identity and Access Management(IAM) ์ญํ ์ ์ ํํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Cloud Run ๋์์ ์ญํ ๋ฐ ๊ถํ์ ์ฐธ์กฐํ์ธ์.
์ญํ ์ ์ถ๊ฐํ๋ ค๋ฉด
๋ค๋ฅธ ์ญํ ์ถ๊ฐ๋ฅผ ํด๋ฆญํ๊ณ ๊ฐ ์ญํ ์ ์ถ๊ฐํฉ๋๋ค.๊ณ์์ ํด๋ฆญํฉ๋๋ค.
๊ณ์ ๋ง๋ค๊ธฐ๋ฅผ ๋ง์น๋ ค๋ฉด ์๋ฃ๋ฅผ ํด๋ฆญํฉ๋๋ค.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Cloud Logging, Eventarc, Eventarc Publishing API๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.
gcloud services enable logging.googleapis.com \ eventarc.googleapis.com \ eventarcpublishing.googleapis.com
ํด๋นํ๋ ๊ฒฝ์ฐ ์ง์ ์ด๋ฒคํธ์ ๊ด๋ จ๋ API๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด Cloud Speech-to-Text ์ด๋ฒคํธ์ ๊ฒฝ์ฐ
speech.googleapis.com
๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.์์ง ๊ณ์ ์ด ์๋ ๊ฒฝ์ฐ ์ฌ์ฉ์ ๊ด๋ฆฌํ ์๋น์ค ๊ณ์ ์ ๋ง๋ค๊ณ Eventarc์์ ๋์ ์๋น์ค์ ์ด๋ฒคํธ๋ฅผ ๊ด๋ฆฌํ ์ ์๋๋ก ํ์ํ ์ญํ ๊ณผ ๊ถํ์ ๊ณ์ ์ ๋ถ์ฌํฉ๋๋ค.
์๋น์ค ๊ณ์ ์ ๋ง๋ญ๋๋ค.
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
SERVICE_ACCOUNT_NAME
์ ์๋น์ค ๊ณ์ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค. 6~30์(์๋ฌธ ๊ธฐ์ค) ์ฌ์ด์ฌ์ผ ํ๋ฉฐ ์๋ฌธ์ ์์ซ์ ๋ฌธ์์ ๋์๋ฅผ ํฌํจํ ์ ์์ต๋๋ค. ์๋น์ค ๊ณ์ ์ ๋ง๋ ํ์๋ ์ด๋ฆ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.์ธ์ฆ๋์๊ฑฐ๋ ์ธ์ฆ๋์ง ์์ ํธ์ถ์ ํ์ํ Identity and Access Management(IAM) ์ญํ ๋๋ ๊ถํ์ ๋ถ์ฌํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Cloud Run ๋์์ ์ญํ ๋ฐ ๊ถํ์ ์ฐธ์กฐํ์ธ์.
ํธ๋ฆฌ๊ฑฐ ๋ง๋ค๊ธฐ
Google Cloud CLI๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ Google Cloud ์ฝ์์ ํตํด Eventarc ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
์ฝ์
- Google Cloud ์ฝ์์์ Eventarc ํธ๋ฆฌ๊ฑฐ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
- ํธ๋ฆฌ๊ฑฐ ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ํธ๋ฆฌ๊ฑฐ ์ด๋ฆ์ ์
๋ ฅํฉ๋๋ค.
ํธ๋ฆฌ๊ฑฐ์ ID์ด๋ฉฐ ๋ฌธ์๋ก ์์ํด์ผ ํฉ๋๋ค. ์ต๋ 63์(์๋ฌธ ๊ธฐ์ค)์ ์๋ฌธ์, ์ซ์, ํ์ดํ์ ํฌํจํ ์ ์์ต๋๋ค.
- ํธ๋ฆฌ๊ฑฐ ์ ํ์ผ๋ก Google ์์ค๋ฅผ ์ ํํฉ๋๋ค.
- ์ด๋ฒคํธ ์ ๊ณต์ ๋ชฉ๋ก์์ Cloud Speech-to-Text๋ฅผ ์ ํํฉ๋๋ค.
์ฐ๊ฒฐ๋ Google Cloud ๋ฌธ์์ ์ฌ์ฉ๋ ์ด๋ฒคํธ ์ ๊ณต์ ์ด๋ฆ์ Cloud ๋๋ Google Cloud ํ๋ฆฌํฝ์ค๊ฐ ์์ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ฝ์์์๋ Redis์ฉ Memorystore๋ฅผ Redis์ฉGoogle Cloud Memorystore๋ผ๊ณ ํฉ๋๋ค.
- ์ด๋ฒคํธ ์ ํ ๋ชฉ๋ก์ ์ง์ ์ด๋ฒคํธ์์ ์ด๋ฒคํธ ์ ํ์ ์ ํํฉ๋๋ค.
- ์ด๋ฒคํธ ํ์ด๋ก๋์ ์ธ์ฝ๋ฉ์ ์ง์ ํ๋ ค๋ฉด ์ด๋ฒคํธ ๋ฐ์ดํฐ ์ฝํ
์ธ ์ ํ ๋ชฉ๋ก์์ application/json ๋๋ application/protobuf๋ฅผ ์ ํํฉ๋๋ค.
JSON์ผ๋ก ํ์์ด ์ง์ ๋ ์ด๋ฒคํธ ํ์ด๋ก๋๋ Protobuf๋ก ํ์์ด ์ง์ ๋ ์ด๋ฒคํธ ํ์ด๋ก๋๋ณด๋ค ํฝ๋๋ค. ๊ทธ๋ก ์ธํด ์ด๋ฒคํธ ๋์ ๋ฐ ์ด๋ฒคํธ ํฌ๊ธฐ ํ๋์ ๋ฐ๋ผ ์์ ์ฑ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์๋ ค์ง ๋ฌธ์ ๋ฅผ ์ฐธ์กฐํ์ธ์.
- ๋ฆฌ์ ๋ชฉ๋ก์์ ์ ์ญ(์ ์ญ)์ ์ ํํฉ๋๋ค.
์์ธํ ๋ด์ฉ์ Eventarc ์์น๋ฅผ ์ฐธ์กฐํ์ธ์.
- ์ด๋ฒคํธ ์ ๊ณต์์ ํด๋นํ๋ ๊ฒฝ์ฐ ํํฐ ์ถ๊ฐ๋ฅผ ํด๋ฆญํ๊ณ ๋ค์์ ์ง์ ํฉ๋๋ค.
- ์์ฑ 1 ํ๋์์ ์ ํํ ์ง์ ์ด๋ฒคํธ์ ๋ฐ๋ผ ์ด๋ฒคํธ ํํฐ ์ญํ ์ ํ ์ ์๋ ๋ฆฌ์์ค ID๋ฅผ ์ ํํฉ๋๋ค.
- ์ฐ์ฐ์๋ฅผ ์ ํํฉ๋๋ค.
- Equal
- ๊ฒฝ๋ก ํจํด
์์ธํ ๋ด์ฉ์ ๊ฒฝ๋ก ํจํด ์ดํด๋ฅผ ์ฐธ์กฐํ์ธ์.
- ์์ฑ ๊ฐ 1 ํ๋์์ ์ ํํ ์ฐ์ฐ์์ ๋ฐ๋ผ ์ ํํ ๊ฐ์ ์ ๋ ฅํ๊ฑฐ๋ ๊ฒฝ๋ก ํจํด์ ์ ์ฉํฉ๋๋ค.
- ๋ ๋ง์ ์์ฑ ํํฐ๋ฅผ ์ ์ฉํ ์ ์์ผ๋ฉด ํํฐ ์ถ๊ฐ๋ฅผ ํด๋ฆญํ๊ณ ์ ํฉํ ๊ฐ์ ์ง์ ํฉ๋๋ค.
- ์๋น์ค ๋๋ ์ํฌํ๋ก๋ฅผ ํธ์ถํ ์๋น์ค ๊ณ์ ์ ์ ํํฉ๋๋ค.
๋๋ ์ ์๋น์ค ๊ณ์ ์ ๋ง๋ค ์ ์์ต๋๋ค.
์ด๋ ํธ๋ฆฌ๊ฑฐ์ ์ฐ๊ฒฐ๋์ด ์๊ณ ์ด์ ์ Eventarc์ ํ์ํ ํน์ ์ญํ ์ ๋ถ์ฌํ Identity and Access Management (IAM) ์๋น์ค ๊ณ์ ์ด๋ฉ์ผ์ ์ง์ ํฉ๋๋ค.
- ์ด๋ฒคํธ ๋์ ๋ชฉ๋ก์์ Cloud Run์ ์ ํํฉ๋๋ค.
- ์๋น์ค๋ฅผ ์ ํํฉ๋๋ค.
ํธ๋ฆฌ๊ฑฐ์ ์ด๋ฒคํธ๋ฅผ ์์ ํ๋ ์๋น์ค์ ์ด๋ฆ์ ๋๋ค. ์๋น์ค๋ ํธ๋ฆฌ๊ฑฐ์ ๋์ผํ ํ๋ก์ ํธ์ ์์ด์ผ ํ๋ฉฐ ์ด๋ฒคํธ๊ฐ ์์ฑ๋ ๋๋ง๋ค ํด๋น ์ด๋ฒคํธ๋ฅผ ๊ธฐ์ค URL ๊ฒฝ๋ก(
/
)๋ก ์ ์ก๋๋ HTTP POST ์์ฒญ์ผ๋ก ์์ ํฉ๋๋ค. - ํ์ํ ๊ฒฝ์ฐ, ๋ค์ด์ค๋ ์์ฒญ์ ๋ณด๋ผ ์๋น์ค URL ๊ฒฝ๋ก๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.
์ด๋ ํธ๋ฆฌ๊ฑฐ์ ์ด๋ฒคํธ๊ฐ ์ ์ก๋์ด์ผ ํ๋ ๋์ ์๋น์ค์ ์๋ ๊ฒฝ๋ก์ ๋๋ค. ์๋ฅผ ๋ค๋ฉด
/
,/route
,route
,route/subroute
์ ๋๋ค. - ์ํ๋ ๊ฒฝ์ฐ ๋ผ๋ฒจ์ ์ถ๊ฐํ๋ ค๋ฉด ๋ผ๋ฒจ์ด๋ ๋ฌด์์ธ๊ฐ์?๋ฅผ ์ฐธ์กฐํ์ธ์. ๋ผ๋ฒจ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค. ๋ผ๋ฒจ์Google Cloud ๋ฆฌ์์ค๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐ ๋์์ด ๋๋ ํค-๊ฐ ์์ ๋๋ค. ์์ธํ ๋ด์ฉ์
- ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
ํธ๋ฆฌ๊ฑฐ๊ฐ ์์ฑ๋ ํ์๋ ์ด๋ฒคํธ ์์ค ํํฐ๋ฅผ ์์ ํ ์ ์์ต๋๋ค. ๋์ ์ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋ง๋ค๊ณ ์ด์ ํธ๋ฆฌ๊ฑฐ๋ฅผ ์ญ์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ํธ๋ฆฌ๊ฑฐ ๊ด๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
gcloud
ํ์ ๋ฐ ์ ํ์ ํ๋๊ทธ์ ํจ๊ป gcloud eventarc triggers create
๋ช
๋ น์ด๋ฅผ ์คํํ์ฌ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
gcloud eventarc triggers create TRIGGER \ --location=global \ --destination-run-service=DESTINATION_RUN_SERVICE \ --destination-run-region=DESTINATION_RUN_REGION \ --event-filters="type=EVENT_FILTER_TYPE" \ --event-filters="COLLECTION_ID=RESOURCE_ID" \ --event-filters-path-pattern="COLLECTION_ID=PATH_PATTERN" \ --event-data-content-type="EVENT_DATA_CONTENT_TYPE" \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"
๋ค์์ ๋ฐ๊ฟ๋๋ค.
TRIGGER
: ํธ๋ฆฌ๊ฑฐ์ ID ๋๋ ์ ๊ทํ๋ ์๋ณ์์ ๋๋ค.--location
ํ๋๊ทธ๋global
์ฌ์ผ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Eventarc ์์น๋ฅผ ์ฐธ์กฐํ์ธ์.-
DESTINATION_RUN_SERVICE
: ํธ๋ฆฌ๊ฑฐ์ ์ด๋ฒคํธ๋ฅผ ์์ ํ๋ Cloud Run ์๋น์ค์ ์ด๋ฆ์ ๋๋ค. ์๋น์ค๋ Cloud Run์์ ์ง์ํ๋ ๋ชจ๋ ์์น์ ์์ ์ ์์ผ๋ฉฐ ํธ๋ฆฌ๊ฑฐ์ ๋์ผํ ์์น์ ์์ง ์์๋ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์๋น์ค๋ ํธ๋ฆฌ๊ฑฐ์ ๋์ผํ ํ๋ก์ ํธ์ ์์ด์ผ ํ๋ฉฐ ์ด๋ฒคํธ๊ฐ ์์ฑ๋ ๋๋ง๋ค ํด๋น ์ด๋ฒคํธ๋ฅผ ๊ธฐ์ค URL ๊ฒฝ๋ก(/
)๋ก ์ ์ก๋๋ HTTP POST ์์ฒญ์ผ๋ก ์์ ํฉ๋๋ค. -
DESTINATION_RUN_REGION
: (์ ํ์ฌํญ) ๋์ Cloud Run ์๋น์ค๋ฅผ ์ฐพ์ ์ ์๋ ๋ฆฌ์ ์ ๋๋ค. ์ง์ ํ์ง ์์ผ๋ฉด ์๋น์ค๊ฐ ํธ๋ฆฌ๊ฑฐ์ ๋์ผํ ๋ฆฌ์ ์ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. EVENT_FILTER_TYPE
: ์ด๋ฒคํธ ์๋ณ์์ ๋๋ค. ๋ฉ์๋์ API ํธ์ถ์ด ์ฑ๊ณตํ๋ฉด ์ด๋ฒคํธ๊ฐ ์์ฑ๋ฉ๋๋ค. ์ฅ๊ธฐ ์คํ ์์ ์ ๊ฒฝ์ฐ ์์ ์ด ๋๋ ๋์ ์์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋ ๊ฒฝ์ฐ์๋ง ์ด๋ฒคํธ๊ฐ ์์ฑ๋ฉ๋๋ค. ์ง์๋๋ ์ด๋ฒคํธ ์ ํ ๋ชฉ๋ก์ Eventarc์์ ์ง์๋๋ Google ์ด๋ฒคํธ ์ ํ์ ์ฐธ์กฐํ์ธ์.
COLLECTION_ID
(์ ํ์ฌํญ): ์ด๋ฒคํธ ํํฐ ์ญํ ์ ํ ์ ์๋ ๋ฆฌ์์ค ๊ตฌ์ฑ์์์ด๋ฉฐ ๋ค์ ์ค ํ๋์ ๋๋ค.customclass
phraseset
RESOURCE_ID
: ์ฐ๊ฒฐ๋ ์ปฌ๋ ์ ์ ํํฐ๋ง ๊ฐ์ผ๋ก ์ฌ์ฉ๋๋ ๋ฆฌ์์ค์ ์๋ณ์์ ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ฆฌ์์ค ID๋ฅผ ์ฐธ์กฐํ์ธ์.PATH_PATTERN
: ๋ฆฌ์์ค๋ฅผ ํํฐ๋งํ ๋ ์ ์ฉํ ๊ฒฝ๋ก ํจํด์ ๋๋ค.-
EVENT_DATA_CONTENT_TYPE
: (์ ํ์ฌํญ) ์ด๋ฒคํธ ํ์ด๋ก๋์ ์ธ์ฝ๋ฉ์ ๋๋ค. ์ด ๊ฐ์application/json
๋๋application/protobuf
์ ๋๋ค. ๊ธฐ๋ณธ ์ธ์ฝ๋ฉ์application/json
์ ๋๋ค.JSON์ผ๋ก ํ์์ด ์ง์ ๋ ์ด๋ฒคํธ ํ์ด๋ก๋๋ Protobuf๋ก ํ์์ด ์ง์ ๋ ์ด๋ฒคํธ ํ์ด๋ก๋๋ณด๋ค ํฝ๋๋ค. ๊ทธ๋ก ์ธํด ์ด๋ฒคํธ ๋์ ๋ฐ ์ด๋ฒคํธ ํฌ๊ธฐ ํ๋์ ๋ฐ๋ผ ์์ ์ฑ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์๋ ค์ง ๋ฌธ์ ๋ฅผ ์ฐธ์กฐํ์ธ์.
SERVICE_ACCOUNT_NAME
: ์ฌ์ฉ์ ๊ด๋ฆฌํ ์๋น์ค ๊ณ์ ์ด๋ฆ์ ๋๋ค.PROJECT_ID
: Google Cloud ํ๋ก์ ํธ ID์ ๋๋ค.
์ฐธ๊ณ :
--event-filters="type=EVENT_FILTER_TYPE"
ํ๋๊ทธ๋ ํ์ ํญ๋ชฉ์ ๋๋ค. ๋ค๋ฅธ ์ด๋ฒคํธ ํํฐ๊ฐ ์ค์ ๋์ง ์์ผ๋ฉด ๋ชจ๋ ๋ฆฌ์์ค์ ์ด๋ฒคํธ๊ฐ ์ผ์นํฉ๋๋ค.- ์์ฑ ํ์๋
EVENT_FILTER_TYPE
์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.EVENT_FILTER_TYPE
์ ๋ณ๊ฒฝํ๋ ค๋ฉด ์ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋ง๋ค๊ณ ์ด์ ํธ๋ฆฌ๊ฑฐ๋ฅผ ์ญ์ ํฉ๋๋ค. - ๊ฐ ํธ๋ฆฌ๊ฑฐ์ ์ฌ๋ฌ ์ด๋ฒคํธ ํํฐ๋ฅผ ๋ฃ๊ฑฐ๋(
--event-filters
=[ATTRIBUTE
=VALUE
,...] ํ๋๊ทธ ํ๋์ ์ผํ๋ก ๊ตฌ๋ถํ์ฌ ์ ๋ ฅ) ํ๋๊ทธ๋ฅผ ๋ฐ๋ณตํ์ฌ ํํฐ๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. ๋ชจ๋ ํํฐ์ ์ผ์นํ๋ ์ด๋ฒคํธ๋ง ๋์์ผ๋ก ์ ์ก๋ฉ๋๋ค. ์์ผ๋ ์นด๋์ ์ ๊ท ํํ์์ ์ง์๋์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋--event-filters-path-pattern
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฆฌ์์ค ๊ฒฝ๋ก ํจํด์ ์ ์ํ ์ ์์ต๋๋ค. --service-account
ํ๋๊ทธ๋ ํธ๋ฆฌ๊ฑฐ์ ์ฐ๊ฒฐ๋ Identity and Access Management(IAM) ์๋น์ค ๊ณ์ ์ด๋ฉ์ผ์ ์ง์ ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.- ํ์ํ ๊ฒฝ์ฐ
--destination-run-path
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ํธ๋ฆฌ๊ฑฐ ์ด๋ฒคํธ๊ฐ ์ ์ก๋์ด์ผ ํ๋ ๋์ Cloud Run ์๋น์ค์ ์๋ ๊ฒฝ๋ก๋ฅผ ์ง์ ํฉ๋๋ค.
์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
gcloud eventarc triggers create helloworld-trigger \ --location=global \ --destination-run-service=helloworld-events \ --destination-run-region=us-central1 \ --event-filters="type=google.cloud.speech.phraseSet.v1.created" \ --event-filters-path-pattern="phraseset=my-phraseset-*" \ --service-account=${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com
์ด ๋ช
๋ น์ด๋ google.cloud.speech.phraseSet.v1.created
๋ก ์๋ณ๋ ์ด๋ฒคํธ์ ํธ๋ฆฌ๊ฑฐ(helloworld-trigger
)๋ฅผ ๋ง๋ค๊ณ my-phraseset-
๋ก ์์ํ๋ phraseset
ID์ ์ด๋ฒคํธ์ ์ผ์นํฉ๋๋ค.
Terraform
Terraform์ ์ฌ์ฉํ์ฌ Cloud Run ๋์์ ๋ํ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ Terraform์ ์ฌ์ฉํ์ฌ ํธ๋ฆฌ๊ฑฐ ๋ง๋ค๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
ํธ๋ฆฌ๊ฑฐ ๋์ด
Google Cloud CLI๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ Google Cloud ์ฝ์์ ํตํด Eventarc ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋์ดํ์ฌ ํธ๋ฆฌ๊ฑฐ ์์ฑ์ ํ์ธํ ์ ์์ต๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ Eventarc ํธ๋ฆฌ๊ฑฐ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์ด ํ์ด์ง์์๋ ๋ชจ๋ ์์น์ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋์ดํ๊ณ ์ด๋ฆ, ๋ฆฌ์ , ์ด๋ฒคํธ ์ ๊ณต์, ๋์ ๋ฑ๊ณผ ๊ฐ์ ์ธ๋ถ์ ๋ณด๋ฅผ ํฌํจํฉ๋๋ค.
ํธ๋ฆฌ๊ฑฐ๋ฅผ ํํฐ๋งํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
- ํํฐ ๋๋ ํธ๋ฆฌ๊ฑฐ ํํฐ๋ง ํ๋๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์์ฑ ๋ชฉ๋ก์์ ํธ๋ฆฌ๊ฑฐ๋ฅผ ํํฐ๋งํ๋ ์ต์ ์ ์ ํํฉ๋๋ค.
๋จ์ผ ์์ฑ์ ์ ํํ๊ฑฐ๋
OR
๋ ผ๋ฆฌ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.ํธ๋ฆฌ๊ฑฐ๋ฅผ ์ ๋ ฌํ๋ ค๋ฉด ์ง์๋๋ ์ด ์ ๋ชฉ ์์ ์๋
์ ๋ ฌ์ ํด๋ฆญํฉ๋๋ค.
gcloud
๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํ์ฌ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋์ดํฉ๋๋ค.
gcloud eventarc triggers list --location=-
์ด ๋ช ๋ น์ด๋ ๋ชจ๋ ์์น์ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋์ดํ๊ณ ์ด๋ฆ, ์ ํ, ๋์, ์ํ์ ๊ฐ์ ์ธ๋ถ์ ๋ณด๋ฅผ ํฌํจํฉ๋๋ค.