Eventarc ํธ๋ฆฌ๊ฑฐ๋ฅผ ์ด์ฉํ๋ฉด ํน์ ์ด๋ฒคํธ ๋๋ ์ด๋ฒคํธ ์งํฉ์ ๊ด์ฌ์ด ์์์ ์ ์ธํ ์ ์์ต๋๋ค. ์ด๋ฒคํธ ์์ค๋ ๋์ ์๋น์ค ๋ฑ์ ํธ๋ฆฌ๊ฑฐ ํํฐ๋ฅผ ์ง์ ํ์ฌ ์ด๋ฒคํธ ๋ผ์ฐํ ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
์ด๋ฒคํธ๋ HTTP ์์ฒญ์ ํตํด CloudEvents ํ์์ผ๋ก ์ ๋ฌ๋ฉ๋๋ค. Workflows ์๋น์ค๋ ์ด๋ฒคํธ๋ฅผ JSON ๊ฐ์ฒด(CloudEvents ์ฌ์์ ๋ฐ๋ฆ)๋ก ๋ณํํ๊ณ ์ด๋ฒคํธ๋ฅผ ์ํฌํ๋ก ์คํ์ ์ํฌํ๋ก ๋ฐํ์ ์ธ์๋ก ์ ๋ฌํฉ๋๋ค. ์ด๋ฒคํธ ํฌ๊ธฐ๊ฐ 512KB๋ฅผ ์ด๊ณผํ์ง ์๋๋ก ์ ์ํ์ธ์. ์ด๋ฒคํธ๊ฐ ์ต๋ Workflows ์ธ์ ํฌ๊ธฐ๋ณด๋ค ํฐ ๊ฒฝ์ฐ ์ํฌํ๋ก ์คํ์ด ํธ๋ฆฌ๊ฑฐ๋์ง ์์ต๋๋ค.
์ด ์๋ด์์๋ ์ง์ Dataflow ์ด๋ฒคํธ์ ๋ํ ์๋ต์ผ๋ก ์ํฌํ๋ก ์คํ์ด ํธ๋ฆฌ๊ฑฐ๋๋๋ก ์ด๋ฒคํธ ๋ผ์ฐํ ์ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ์์ธํ ๋ด์ฉ์ ์ง์๋๋ ์ง์ ์ด๋ฒคํธ ๋ชฉ๋ก์ ์ฐธ์กฐํ์ธ์.ํธ๋ฆฌ๊ฑฐ ๋ง๋ค๊ธฐ ์ค๋น
๋์ ์ํฌํ๋ก์ ๋ํ Eventarc ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋ง๋ค๊ธฐ ์ ์ ๋ค์ ์์ ์ ์๋ฃํด์ผ ํฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์ ํ๋ก์ ํธ ์ ํ๊ธฐ ํ์ด์ง์์ Google Cloud ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ฑฐ๋ ์ ํํฉ๋๋ค.
Eventarc, Eventarc Publishing, Workflows, Workflow Executions API๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.
ํด๋นํ๋ ๊ฒฝ์ฐ ์ง์ ์ด๋ฒคํธ์ ๊ด๋ จ๋ API๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด Dataflow ์ด๋ฒคํธ์ ๊ฒฝ์ฐDataflow API๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.
์์ง ๊ณ์ ์ด ์๋ ๊ฒฝ์ฐ ์ฌ์ฉ์ ๊ด๋ฆฌํ ์๋น์ค ๊ณ์ ์ ๋ง๋ค๊ณ Eventarc๊ฐ ๋์ ์ํฌํ๋ก์ ์ด๋ฒคํธ๋ฅผ ๊ด๋ฆฌํ ์ ์๋๋ก ํ์ํ ์ญํ ๊ณผ ๊ถํ์ ๊ณ์ ์ ๋ถ์ฌํฉ๋๋ค.
Google Cloud ์ฝ์์์ ์๋น์ค ๊ณ์ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
ํ๋ก์ ํธ๋ฅผ ์ ํํฉ๋๋ค.
์๋น์ค ๊ณ์ ์ด๋ฆ ํ๋์ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค. Google Cloud ์ฝ์์ ์ด ์ด๋ฆ์ ๊ธฐ๋ฐ์ผ๋ก ์๋น์ค ๊ณ์ ID ํ๋๋ฅผ ์ฑ์๋๋ค.
์๋น์ค ๊ณ์ ์ค๋ช ํ๋์ ์ค๋ช ์ ์ ๋ ฅํฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด
Service account for event trigger
์ ๋๋ค.๋ง๋ค๊ณ ๊ณ์ํ๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ ์ ํ ์ก์ธ์ค ๊ถํ์ ์ ๊ณตํ๊ธฐ ์ํด ์ญํ ์ ํ ๋ชฉ๋ก์์ ์๋น์ค ๊ณ์ ์ ๋ถ์ฌํ ํ์ํ Identity and Access Management(IAM) ์ญํ ์ ์ ํํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Workflows ๋์์ ์ญํ ๋ฐ ๊ถํ์ ์ฐธ์กฐํ์ธ์.
์ญํ ์ ์ถ๊ฐํ๋ ค๋ฉด
๋ค๋ฅธ ์ญํ ์ถ๊ฐ๋ฅผ ํด๋ฆญํ๊ณ ๊ฐ ์ญํ ์ ์ถ๊ฐํฉ๋๋ค.๊ณ์์ ํด๋ฆญํฉ๋๋ค.
๊ณ์ ๋ง๋ค๊ธฐ๋ฅผ ๋ง์น๋ ค๋ฉด ์๋ฃ๋ฅผ ํด๋ฆญํฉ๋๋ค.
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.
Eventarc, Eventarc Publishing, Workflows, Workflow Executions API๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.
gcloud services enable eventarc.googleapis.com \ eventarcpublishing.googleapis.com \ workflows.googleapis.com \ workflowexecutions.googleapis.com
ํด๋นํ๋ ๊ฒฝ์ฐ ์ง์ ์ด๋ฒคํธ์ ๊ด๋ จ๋ API๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด Dataflow ์ด๋ฒคํธ์ ๊ฒฝ์ฐ
dataflow.googleapis.com
๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.์์ง ๊ณ์ ์ด ์๋ ๊ฒฝ์ฐ ์ฌ์ฉ์ ๊ด๋ฆฌํ ์๋น์ค ๊ณ์ ์ ๋ง๋ค๊ณ Eventarc๊ฐ ๋์ ์ํฌํ๋ก์ ์ด๋ฒคํธ๋ฅผ ๊ด๋ฆฌํ ์ ์๋๋ก ํ์ํ ์ญํ ๊ณผ ๊ถํ์ ๊ณ์ ์ ๋ถ์ฌํฉ๋๋ค.
์๋น์ค ๊ณ์ ์ ๋ง๋ญ๋๋ค.
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
SERVICE_ACCOUNT_NAME
์ ์๋น์ค ๊ณ์ ์ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค. 6~30์(์๋ฌธ ๊ธฐ์ค) ์ฌ์ด์ฌ์ผ ํ๋ฉฐ ์๋ฌธ์ ์์ซ์ ๋ฌธ์์ ๋์๋ฅผ ํฌํจํ ์ ์์ต๋๋ค. ์๋น์ค ๊ณ์ ์ ๋ง๋ ํ์๋ ์ด๋ฆ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.ํ์ํ Identity and Access Management(IAM) ์ญํ ๋๋ ๊ถํ์ ๋ถ์ฌํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Workflows ๋์์ ์ญํ ๋ฐ ๊ถํ์ ์ฐธ์กฐํ์ธ์.
ํธ๋ฆฌ๊ฑฐ ๋ง๋ค๊ธฐ
Google Cloud CLI(gcloud
๋๋ Terraform)๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ Google Cloud ์ฝ์์ ํตํด ๋ฐฐํฌ๋ ์ํฌํ๋ก๋ฅผ ์ด๋ฒคํธ ์์ ์๋ก ์ฌ์ฉํ์ฌ Eventarc ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
์ฝ์
- Google Cloud ์ฝ์์์ Eventarc ํธ๋ฆฌ๊ฑฐ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
- ํธ๋ฆฌ๊ฑฐ ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ํธ๋ฆฌ๊ฑฐ ์ด๋ฆ์ ์
๋ ฅํฉ๋๋ค.
ํธ๋ฆฌ๊ฑฐ์ ID์ด๋ฉฐ ๋ฌธ์๋ก ์์ํด์ผ ํฉ๋๋ค. ์ต๋ 63์(์๋ฌธ ๊ธฐ์ค)์ ์๋ฌธ์, ์ซ์, ํ์ดํ์ ํฌํจํ ์ ์์ต๋๋ค.
- ํธ๋ฆฌ๊ฑฐ ์ ํ์ผ๋ก Google ์์ค๋ฅผ ์ ํํฉ๋๋ค.
- ์ด๋ฒคํธ ์ ๊ณต์ ๋ชฉ๋ก์์ Dataflow๋ฅผ ์ ํํฉ๋๋ค.
์ฐ๊ฒฐ๋ Google Cloud ๋ฌธ์์ ์ฌ์ฉ๋ ์ด๋ฒคํธ ์ ๊ณต์ ์ด๋ฆ์ Cloud ๋๋ Google Cloud ํ๋ฆฌํฝ์ค๊ฐ ์์ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ฝ์์์๋ Redis์ฉ Memorystore๋ฅผ Redis์ฉGoogle Cloud Memorystore๋ผ๊ณ ํฉ๋๋ค.
- ์ด๋ฒคํธ ์ ํ ๋ชฉ๋ก์ ์ง์ ์ด๋ฒคํธ์์ ์ด๋ฒคํธ ์ ํ์ ์ ํํฉ๋๋ค.
- ์ด๋ฒคํธ ํ์ด๋ก๋์ ์ธ์ฝ๋ฉ์ ์ง์ ํ๋ ค๋ฉด ์ด๋ฒคํธ ๋ฐ์ดํฐ ์ฝํ
์ธ ์ ํ ๋ชฉ๋ก์์ application/json ๋๋ application/protobuf๋ฅผ ์ ํํฉ๋๋ค.
JSON์ผ๋ก ํ์์ด ์ง์ ๋ ์ด๋ฒคํธ ํ์ด๋ก๋๋ Protobuf๋ก ํ์์ด ์ง์ ๋ ์ด๋ฒคํธ ํ์ด๋ก๋๋ณด๋ค ํฝ๋๋ค. ๊ทธ๋ก ์ธํด ์ด๋ฒคํธ ๋์ ๋ฐ ์ด๋ฒคํธ ํฌ๊ธฐ ํ๋์ ๋ฐ๋ผ ์์ ์ฑ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์๋ ค์ง ๋ฌธ์ ๋ฅผ ์ฐธ์กฐํ์ธ์.
- ๋ฆฌ์ ๋ชฉ๋ก์์ ์ด๋ฒคํธ๋ฅผ ์์ฑํ๋Google Cloud ์๋น์ค์ ๋์ผํ ๋ฆฌ์ ์ ์ ํํฉ๋๋ค.
์์ธํ ๋ด์ฉ์ Eventarc ์์น๋ฅผ ์ฐธ์กฐํ์ธ์.
- ์ด๋ฒคํธ ์ ๊ณต์์ ํด๋นํ๋ ๊ฒฝ์ฐ ํํฐ ์ถ๊ฐ๋ฅผ ํด๋ฆญํ๊ณ ๋ค์์ ์ง์ ํฉ๋๋ค.
- ์์ฑ 1 ํ๋์์ ์ ํํ ์ง์ ์ด๋ฒคํธ์ ๋ฐ๋ผ ์ด๋ฒคํธ ํํฐ ์ญํ ์ ํ ์ ์๋ ๋ฆฌ์์ค ID๋ฅผ ์ ํํฉ๋๋ค.
- ์ฐ์ฐ์๋ฅผ ์ ํํฉ๋๋ค.
- Equal
- ๊ฒฝ๋ก ํจํด
์์ธํ ๋ด์ฉ์ ๊ฒฝ๋ก ํจํด ์ดํด๋ฅผ ์ฐธ์กฐํ์ธ์.
- ์์ฑ ๊ฐ 1 ํ๋์์ ์ ํํ ์ฐ์ฐ์์ ๋ฐ๋ผ ์ ํํ ๊ฐ์ ์ ๋ ฅํ๊ฑฐ๋ ๊ฒฝ๋ก ํจํด์ ์ ์ฉํฉ๋๋ค.
- ๋ ๋ง์ ์์ฑ ํํฐ๋ฅผ ์ ์ฉํ ์ ์์ผ๋ฉด ํํฐ ์ถ๊ฐ๋ฅผ ํด๋ฆญํ๊ณ ์ ํฉํ ๊ฐ์ ์ง์ ํฉ๋๋ค.
- ์๋น์ค ๋๋ ์ํฌํ๋ก๋ฅผ ํธ์ถํ ์๋น์ค ๊ณ์ ์ ์ ํํฉ๋๋ค.
๋๋ ์ ์๋น์ค ๊ณ์ ์ ๋ง๋ค ์ ์์ต๋๋ค.
์ด๋ ํธ๋ฆฌ๊ฑฐ์ ์ฐ๊ฒฐ๋์ด ์๊ณ ์ด์ ์ Eventarc์ ํ์ํ ํน์ ์ญํ ์ ๋ถ์ฌํ Identity and Access Management(IAM) ์๋น์ค ๊ณ์ ์ด๋ฉ์ผ์ ์ง์ ํฉ๋๋ค.
- ์ด๋ฒคํธ ๋์ ๋ชฉ๋ก์์ Workflows์ ์ ํํฉ๋๋ค.
- ์ํฌํ๋ก๋ฅผ ์ ํํฉ๋๋ค.
์ด๋ฒคํธ๋ฅผ ์ ๋ฌํ ์ํฌํ๋ก์ ์ด๋ฆ์ ๋๋ค. ์ํฌํ๋ก ์คํ ์ด๋ฒคํธ๊ฐ ๋ณํ๋์ด ๋ฐํ์ ์ธ์๋ก ์ํฌํ๋ก์ ์ ๋ฌ๋ฉ๋๋ค.
์์ธํ ๋ด์ฉ์ Workflows์ ํธ๋ฆฌ๊ฑฐ ๋ง๋ค๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
- ์ํ๋ ๊ฒฝ์ฐ ๋ผ๋ฒจ์ ์ถ๊ฐํ๋ ค๋ฉด ๋ผ๋ฒจ์ด๋ ๋ฌด์์ธ๊ฐ์?๋ฅผ ์ฐธ์กฐํ์ธ์. ๋ผ๋ฒจ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค. ๋ผ๋ฒจ์Google Cloud ๋ฆฌ์์ค๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐ ๋์์ด ๋๋ ํค-๊ฐ ์์ ๋๋ค. ์์ธํ ๋ด์ฉ์
- ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
ํธ๋ฆฌ๊ฑฐ๊ฐ ์์ฑ๋ ํ์๋ ์ด๋ฒคํธ ์์ค ํํฐ๋ฅผ ์์ ํ ์ ์์ต๋๋ค. ๋์ ์ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋ง๋ค๊ณ ์ด์ ํธ๋ฆฌ๊ฑฐ๋ฅผ ์ญ์ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ํธ๋ฆฌ๊ฑฐ ๊ด๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
gcloud
ํ์ ๋ฐ ์ ํ์ ํ๋๊ทธ์ ํจ๊ป gcloud eventarc triggers create
๋ช
๋ น์ด๋ฅผ ์คํํ์ฌ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
gcloud eventarc triggers create TRIGGER \ --location=LOCATION \ --destination-workflow=DESTINATION_WORKFLOW \ --destination-workflow-location=DESTINATION_WORKFLOW_LOCATION \ --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
: Eventarc ํธ๋ฆฌ๊ฑฐ ์์น์ ๋๋ค. ๋๋eventarc/location
์์ฑ์ ์ค์ ํ ์ ์์ต๋๋ค(์:gcloud config set eventarc/location us-central1
).์ฑ๋ฅ ๋ฐ ๋ฐ์ดํฐ ์์ฃผ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๋ ค๋ฉด ์ด ์์น๊ฐ ์ด๋ฒคํธ๋ฅผ ์์ฑํ๋ Google Cloud ์๋น์ค์ ์์น์ ์ผ์นํด์ผ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Eventarc ์์น๋ฅผ ์ฐธ์กฐํ์ธ์.
-
DESTINATION_WORKFLOW
: ํธ๋ฆฌ๊ฑฐ์์ ์ด๋ฒคํธ๋ฅผ ์์ ํ๋ ๋ฐฐํฌ๋ ์ํฌํ๋ก์ ID์ ๋๋ค. ์ํฌํ๋ก๋ Workflows ์ง์ ์์น ์ค ํ๋์ ์์ ์ ์์ผ๋ฉฐ ํธ๋ฆฌ๊ฑฐ์ ๋์ผํ ์์น์ ์์ ํ์๋ ์์ต๋๋ค. ํ์ง๋ง ์ํฌํ๋ก๋ ํธ๋ฆฌ๊ฑฐ์ ๋์ผํ ํ๋ก์ ํธ์ ์์ด์ผ ํฉ๋๋ค. -
DESTINATION_WORKFLOW_LOCATION
(์ ํ์ฌํญ): ๋์ ์ํฌํ๋ก๊ฐ ๋ฐฐํฌ๋๋ ์์น์ ๋๋ค. ์ง์ ํ์ง ์์ผ๋ฉด ์ํฌํ๋ก๊ฐ ํธ๋ฆฌ๊ฑฐ์ ๋์ผํ ์์น์ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. EVENT_FILTER_TYPE
: ์ด๋ฒคํธ ์๋ณ์์ ๋๋ค. ๋ฉ์๋์ API ํธ์ถ์ด ์ฑ๊ณตํ๋ฉด ์ด๋ฒคํธ๊ฐ ์์ฑ๋ฉ๋๋ค. ์ฅ๊ธฐ ์คํ ์์ ์ ๊ฒฝ์ฐ ์์ ์ด ๋๋ ๋์ ์์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋ ๊ฒฝ์ฐ์๋ง ์ด๋ฒคํธ๊ฐ ์์ฑ๋ฉ๋๋ค. ์ง์๋๋ ์ด๋ฒคํธ ์ ํ ๋ชฉ๋ก์ Eventarc์์ ์ง์๋๋ Google ์ด๋ฒคํธ ์ ํ์ ์ฐธ์กฐํ์ธ์.
COLLECTION_ID
(์ ํ์ฌํญ): ์ด๋ฒคํธ ํํฐ ์ญํ ์ ํ ์ ์๋ ๋ฆฌ์์ค ๊ตฌ์ฑ์์๋ก,job
์ ๋๋ค.-
RESOURCE_ID
: ์ฐ๊ฒฐ๋ ์ปฌ๋ ์ ์ ํํฐ๋ง ๊ฐ์ผ๋ก ์ฌ์ฉ๋๋ ๋ฆฌ์์ค์ ์๋ณ์์ ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ฆฌ์์ค ID๋ฅผ ์ฐธ์กฐํ์ธ์. -
PATH_PATTERN
: ๋ฆฌ์์ค๋ฅผ ํํฐ๋งํ ๋ ์ ์ฉํ ๊ฒฝ๋ก ํจํด์ ๋๋ค. -
EVENT_DATA_CONTENT_TYPE
: (์ ํ์ฌํญ) ์ด๋ฒคํธ ํ์ด๋ก๋์ ์ธ์ฝ๋ฉ์ ๋๋ค. ์ด ๊ฐ์application/json
๋๋application/protobuf
์ ๋๋ค. ๊ธฐ๋ณธ ์ธ์ฝ๋ฉ์application/json
์ ๋๋ค.JSON์ผ๋ก ํ์์ด ์ง์ ๋ ์ด๋ฒคํธ ํ์ด๋ก๋๋ Protobuf๋ก ํ์์ด ์ง์ ๋ ์ด๋ฒคํธ ํ์ด๋ก๋๋ณด๋ค ํฝ๋๋ค. ๊ทธ๋ก ์ธํด ์ด๋ฒคํธ ๋์ ๋ฐ ์ด๋ฒคํธ ํฌ๊ธฐ ํ๋์ ๋ฐ๋ผ ์์ ์ฑ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์๋ ค์ง ๋ฌธ์ ๋ฅผ ์ฐธ์กฐํ์ธ์.
-
SERVICE_ACCOUNT_NAME
: Workflows์ ํ์ํ ํน์ ์ญํ ์ ๋ถ์ฌํ์ฌ ๋ง๋ IAM ์๋น์ค ๊ณ์ ์ ์ด๋ฆ์ ๋๋ค. 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) ์๋น์ค ๊ณ์ ์ด๋ฉ์ผ์ ์ง์ ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
gcloud eventarc triggers create helloworld-trigger \ --location=us-central1 \ --destination-workflow=my-workflow \ --destination-workflow-location=us-central1 \ --event-filters="type=google.cloud.dataflow.job.v1beta3.statusChanged" \ --event-filters-path-pattern="job=my-job-*" \ --service-account="${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com"
์ด ๋ช
๋ น์ด๋ google.cloud.dataflow.job.v1beta3.statusChanged
๋ก ์๋ณ๋ ์ด๋ฒคํธ์ ํธ๋ฆฌ๊ฑฐ(helloworld-trigger
)๋ฅผ ๋ง๋ค๊ณ my-job-
๋ก ์์ํ๋ job
ID์ ์ด๋ฒคํธ์ ์ผ์นํฉ๋๋ค.
Terraform
Terraform์ ์ฌ์ฉํ์ฌ ์ํฌํ๋ก์ ๋ํ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ Eventarc ๋ฐ Terraform์ ์ฌ์ฉํ์ฌ ์ํฌํ๋ก ํธ๋ฆฌ๊ฑฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
ํธ๋ฆฌ๊ฑฐ ๋์ด
Google Cloud CLI๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ Google Cloud ์ฝ์์ ํตํด Eventarc ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋์ดํ์ฌ ํธ๋ฆฌ๊ฑฐ ์์ฑ์ ํ์ธํ ์ ์์ต๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ Eventarc ํธ๋ฆฌ๊ฑฐ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์ด ํ์ด์ง์์๋ ๋ชจ๋ ์์น์ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋์ดํ๊ณ ์ด๋ฆ, ๋ฆฌ์ , ์ด๋ฒคํธ ์ ๊ณต์, ๋์ ๋ฑ๊ณผ ๊ฐ์ ์ธ๋ถ์ ๋ณด๋ฅผ ํฌํจํฉ๋๋ค.
ํธ๋ฆฌ๊ฑฐ๋ฅผ ํํฐ๋งํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
- ํํฐ ๋๋ ํธ๋ฆฌ๊ฑฐ ํํฐ๋ง ํ๋๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์์ฑ ๋ชฉ๋ก์์ ํธ๋ฆฌ๊ฑฐ๋ฅผ ํํฐ๋งํ๋ ์ต์ ์ ์ ํํฉ๋๋ค.
๋จ์ผ ์์ฑ์ ์ ํํ๊ฑฐ๋
OR
๋ ผ๋ฆฌ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.ํธ๋ฆฌ๊ฑฐ๋ฅผ ์ ๋ ฌํ๋ ค๋ฉด ์ง์๋๋ ์ด ์ ๋ชฉ ์์ ์๋
์ ๋ ฌ์ ํด๋ฆญํฉ๋๋ค.
gcloud
๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํ์ฌ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋์ดํฉ๋๋ค.
gcloud eventarc triggers list --location=-
์ด ๋ช ๋ น์ด๋ ๋ชจ๋ ์์น์ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋์ดํ๊ณ ์ด๋ฆ, ์ ํ, ๋์, ์ํ์ ๊ฐ์ ์ธ๋ถ์ ๋ณด๋ฅผ ํฌํจํฉ๋๋ค.