ํน์ Eventarc Advanced ๋ฒ์ค์ Google ์์ค์์ ์ด๋ฒคํธ๋ฅผ ์์งํ๊ณ ๊ฒ์ํ๋๋ก ์ฌ์ฉ ์ค์ ํ๊ฑฐ๋ ์ฌ์ฉ ์ค์งํ ์ ์์ต๋๋ค.
Google ์์ค์ ์ด๋ฒคํธ๋ Cloud Run ํจ์ ์์ฑ ๋๋ Dataflow ์์ ์ ์ํ ๋ณ๊ฒฝ๊ณผ ๊ฐ์ ๋ฏธ๋์์ด์ ๋์ง ์์ ์ด๋ฒคํธ์ ์ํด ์ง์ ํธ๋ฆฌ๊ฑฐ๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Eventarc์์ ์ง์๋๋ Google ์ด๋ฒคํธ ์ ํ์ ์ฐธ์กฐํ์ธ์.
๋ค์์ ์ ์ํ์ธ์.
- Google Cloud ํ๋ก์ ํธ๋น
GoogleApiSource
๋ฆฌ์์ค๋ 1๊ฐ๋ก ์ ํ๋ฉ๋๋ค. GoogleApiSource
๋ฆฌ์์ค์ ๋์ผํ Google Cloud ํ๋ก์ ํธ์์๋ง Google ์์ค์ ์ด๋ฒคํธ๋ฅผ ๊ฒ์ํ ์ ์์ต๋๋ค.GoogleApiSource
๋ฆฌ์์ค๊ฐ ์๋ Google Cloud ํ๋ก์ ํธ์ ๋ค๋ฅธ Google Cloud ํ๋ก์ ํธ์ ๋ฒ์ค์ ์ด๋ฒคํธ๋ฅผ ๊ฒ์ํ ์ ์์ต๋๋ค. gcloud CLI๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ Eventarc API์ ์์ฒญ์ ์ ์กํ์ฌ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
Google ์์ค์์ ์ด๋ฒคํธ ์ฌ์ฉ ์ค์
Google ์์ค์์ ์ด๋ฒคํธ๋ฅผ ๊ฒ์ํ๋ ค๋ฉด GoogleApiSource
๋ฆฌ์์ค๋ฅผ ๋ง๋ค์ด์ผ ํฉ๋๋ค. ์ด ๋ฆฌ์์ค๋ ํน์ Eventarc Advanced ๋ฒ์ค์ ํน์ Google Cloud ํ๋ก์ ํธ์์ Google API ์ด๋ฒคํธ๋ฅผ ๊ตฌ๋
ํ๋ ๊ฒ์ ๋ํ๋
๋๋ค.
๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก Google ์์ค์์ ์ด๋ฒคํธ ๊ฒ์๋ฅผ ์ฌ์ฉ ์ค์ ํ ์ ์์ต๋๋ค.
- Google Cloud Console ์ฌ์ฉ
- ํฐ๋ฏธ๋ ๋๋ Cloud Shell์์ Google Cloud CLI ์ฌ์ฉ
Eventarc API์ ์์ฒญ ๋ณด๋ด๊ธฐ
์ฝ์
Google Cloud ์ฝ์์์ Eventarc > ๋ฒ์ค ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๋ฒ์ค๋ฅผ ๋ง๋ค๊ฑฐ๋ ๋ฒ์ค๋ฅผ ์ ๋ฐ์ดํธํ๋ ๊ฒฝ์ฐ ์์ ์ ํด๋ฆญํฉ๋๋ค.
๋ฒ์ค ์์ ํ์ด์ง์์ ๋ฉ์์ง ์์ค๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด
์์ค ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.- ๋ฉ์์ง ์์ค ์ถ๊ฐ ์ฐฝ์์ Google API ๋ฉ์์ง ์ ๊ณต์
์ฒด์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ๊ฐ์ธ
google-api-source
๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ๋ค๋ฅธ ๋ฉ์์ง ์์ค ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค. - ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ๋ฉ์์ง ์์ค ์ถ๊ฐ ์ฐฝ์์ Google API ๋ฉ์์ง ์ ๊ณต์
์ฒด์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ๊ฐ์ธ
์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
gcloud
ํฐ๋ฏธ๋์ ์ฝ๋๋ค.
gcloud beta eventarc google-api-sources create
๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ Google ์์ค์ ์ด๋ฒคํธ๋ฅผ ์ฌ์ฉ ์ค์ ํ ์ ์์ต๋๋ค.gcloud beta eventarc google-api-source create GOOGLE_API_SOURCE_NAME \ --destination-message-bus=BUS_NAME \ --destination-message-bus-project=BUS_PROJECT_ID
๋ค์์ ๋ฐ๊ฟ๋๋ค.
GOOGLE_API_SOURCE_NAME
: ํน์ ๋ฒ์ค์ Google API ์ด๋ฒคํธ ๊ตฌ๋ ์ ๋ํ๋ด๋GoogleApiSource
๋ฆฌ์์ค์ ID ๋๋ ์ ๊ทํ๋ ์๋ณ์์ ๋๋ค.BUS_NAME
: Google API ์ด๋ฒคํธ๋ฅผ ๊ตฌ๋ ํ๋ ค๋ ๋ฒ์ค์ ID ๋๋ ์ ๊ทํ๋ ์๋ณ์์ ๋๋ค.BUS_PROJECT_ID
: ๋ฒ์ค์ Google Cloud ํ๋ก์ ํธ ID์ ๋๋ค.
์ ํ์ฌํญ: ๋ค์ ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
--async
: ์งํ ์ค์ธ ์์ ์ด ์๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋ช ๋ น์ด์์ ์ฆ์ ๋ฐํํฉ๋๋ค.--crypto-key
: ๊ณ ๊ฐ ๊ด๋ฆฌ ์ํธํ ํค์ ์ ๊ทํ๋ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. ์ง์ ํ์ง ์์ผ๋ฉด Google-owned and managed keys ๊ฐ ์ฌ์ฉ๋ฉ๋๋ค.--logging-config
: ๋ก๊น ์์ค์ ๊ตฌ์ฑํฉ๋๋ค. ๋ก๊น ์์ค์NONE
,DEBUG
,INFO
,NOTICE
,WARNING
,ERROR
,CRITICAL
,ALERT
,EMERGENCY
์ค ํ๋์ฌ์ผ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์LogSeverity
๋ฅผ ์ฐธ์กฐํ์ธ์.
REST API
Google ์์ค์ ์ด๋ฒคํธ๋ฅผ ์ฌ์ฉ ์ค์ ํ๋ ค๋ฉด projects.locations.googleApiSources.create
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ธ์.
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
GOOGLE_API_SOURCE_NAME
: ํน์ ๋ฒ์ค์ Google API ์ด๋ฒคํธ ๊ตฌ๋ ์ ๋ํ๋ด๋GoogleApiSource
๋ฆฌ์์ค์ ํ์ ์ด๋ฆ์ ๋๋ค(์:my_google_source
).LABEL_KEY
๋ฐLABEL_VALUE
: (์ ํ์ฌํญ) Google Cloud ๋ฆฌ์์ค๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐ ๋์์ด ๋๋ ๋ผ๋ฒจ ํค ๋ฐ ๊ฐ ์์ ๋งต์ ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ผ๋ฒจ์ด๋ ๋ฌด์์ธ๊ฐ์?๋ฅผ ์ฐธ์กฐํ์ธ์.ANNOTATION_KEY
๋ฐANNOTATION_VALUE
: (์ ํ์ฌํญ) ์์ ํ์ ํ ์คํธ์ ์ฃผ์ ํค ๋ฐ ๊ฐ ์์ ๋งต์ ๋๋ค. ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ์์ค์ ์ฐ๊ฒฐ๋ ์์์ ์ ๋ณด๋ฅผ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์ฃผ์์ ์ฐธ์กฐํ์ธ์.DESTINATION
: Google ์์ค ์ด๋ฒคํธ๋ฅผprojects/PROJECT_NAME/locations/LOCATION/messageBuses/BUS_NAME
ํ์์ผ๋ก ๊ฒ์ํด์ผ ํ๋ Eventarc Advanced ๋ฒ์ค์ ์ ๊ทํ๋ ์๋ณ์์ ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ฉ์์ง ๋ผ์ฐํ ์ ์ํ ๋ฒ์ค ๋ง๋ค๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.ENCRYPT_KEY
: ์ ํ์ฌํญ์ ๋๋ค.GoogleApiSource
๋ฆฌ์์ค๊ฐprojects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
ํ์์ผ๋ก ๋ฐ์ดํฐ ์ํธํ์ ์ฌ์ฉํด์ผ ํ๋ Cloud KMS ํค์ ๋๋ค. ์์ธํ ๋ด์ฉ์ ๊ณ ๊ฐ ๊ด๋ฆฌ ์ํธํ ํค ์ฌ์ฉ์ ์ฐธ์กฐํ์ธ์.PROJECT_ID
:GoogleApiSource
๋ฆฌ์์ค๋ฅผ ๋ง๋ค Google Cloudํ๋ก์ ํธ ID์ ๋๋ค.LOCATION
:GoogleApiSource
๋ฆฌ์์ค๋ฅผ ๋ง๋ค ์ง์๋๋ ๋ฆฌ์ (์:us-central1
)์ ๋๋ค.LOG_SEVERITY
: ์ ํ์ฌํญ์ ๋๋ค. ๋ก๊ทธ ํญ๋ชฉ์ ์ค๋ช ๋ ์ด๋ฒคํธ์ ์ต์ ์ฌ๊ฐ๋์ ๋๋ค.NONE
,DEBUG
,INFO
,NOTICE
,WARNING
,ERROR
,CRITICAL
,ALERT
,EMERGENCY
์ค ํ๋์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ์NONE
์ ๋๋ค. ์์ธํ ๋ด์ฉ์LogSeverity
๋ฅผ ์ฐธ์กฐํ์ธ์.
JSON ์์ฒญ ๋ณธ๋ฌธ:
{ "displayName": "GOOGLE_API_SOURCE_NAME", "labels": {"LABEL_KEY":"LABEL_VALUE"}, "annotations": {"ANNOTATION_KEY":"ANNOTATION_VALUE"}, "destination": "DESTINATION", "cryptoKeyName": "ENCRYPT_KEY", "loggingConfig": {"logSeverity":"LOG_SEVERITY"} }
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ํผ์นฉ๋๋ค.
์ฑ๊ณตํ ๊ฒฝ์ฐ ์๋ต ๋ณธ๋ฌธ์ ์๋ก ์์ฑ๋ Operation
์ธ์คํด์ค๊ฐ ํฌํจ๋ฉ๋๋ค.
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata", "createTime": "2024-01-25T17:17:45.782370139Z", "target": "projects/PROJECT_ID/locations/LOCATION/googleApiSources/GOOGLE_API_SOURCE_NAME", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
์ด์ GoogleApiSource
๋ฆฌ์์ค์ ๋์ผํ Google Cloud ํ๋ก์ ํธ์ Google ์์ค์์ ๋ฐ์ํ ์ด๋ฒคํธ๊ฐ ์์ง๋์ด ๋ฒ์ค์ ๊ฒ์๋ฉ๋๋ค.
Google ์์ค์์ ์ด๋ฒคํธ ์ฌ์ฉ ์ค์ง
ํน์ Google Cloud ํ๋ก์ ํธ์ Google ์์ค์์ Eventarc Advanced ๋ฒ์ค๋ก์ ์ด๋ฒคํธ ๊ฒ์๋ฅผ ์ฌ์ฉ ์ค์งํ๋ ค๋ฉด GoogleApiSource
๋ฆฌ์์ค๋ฅผ ์ญ์ ํด์ผ ํฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก Google ์์ค์์ ์ด๋ฒคํธ ๊ฒ์๋ฅผ ์ฌ์ฉ ์ค์งํ ์ ์์ต๋๋ค.
- Google Cloud Console ์ฌ์ฉ
- ํฐ๋ฏธ๋ ๋๋ Cloud Shell์์ gcloud CLI ์ฌ์ฉ
Eventarc API์ ์์ฒญ ๋ณด๋ด๊ธฐ
์ฝ์
Google Cloud ์ฝ์์์ Eventarc > ๋ฒ์ค ์ธ๋ถ์ ๋ณด ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์์ ์ ํด๋ฆญํฉ๋๋ค.
๋ฒ์ค ์์ ํ์ด์ง์์ Google API ๋ฉ์์ง ์ ๊ณต์ ์ฒด๋ฅผ ์ญ์ ํ๋ ค๋ฉด google-api-source ๋ฉ์์ง ์์ค(๋๋ ์ง์ ํ ์ด๋ฆ)์
๋ฆฌ์์ค ์ญ์ ๋ฅผ ํด๋ฆญํฉ๋๋ค.๋ฆฌ์์ค ์ญ์ ํ๋กฌํํธ์์ ํ์ธ์ ํด๋ฆญํฉ๋๋ค.
์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
gcloud
ํฐ๋ฏธ๋์ ์ฝ๋๋ค.
gcloud beta eventarc google-api-sources delete
๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ Google ์์ค์ ์ด๋ฒคํธ๋ฅผ ์ฌ์ฉ ์ค์งํ ์ ์์ต๋๋ค.gcloud beta eventarc google-api-source delete GOOGLE_API_SOURCE_NAME \ --location=REGION
๋ค์์ ๋ฐ๊ฟ๋๋ค.
GOOGLE_API_SOURCE_NAME
:GoogleApiSource
๋ฆฌ์์ค์ ID ๋๋ ์ ๊ทํ๋ ์๋ณ์์ ๋๋ค.REGION
:GoogleApiSource
๋ฆฌ์์ค์ ์์น์ ๋๋ค.
REST API
Google ์์ค์ ์ด๋ฒคํธ๋ฅผ ์ฌ์ฉ ์ค์งํ๋ ค๋ฉด projects.locations.googleApiSources.delete
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ธ์.
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
PROJECT_ID
:GoogleApiSource
๋ฆฌ์์ค๊ฐ ์์ฑ๋๋ Google Cloud ํ๋ก์ ํธ ID์ ๋๋ค.LOCATION
:GoogleApiSource
๋ฆฌ์์ค๊ฐ ์์ฑ๋๋ ๋ฆฌ์ ์ ๋๋ค(์:us-central1
).GOOGLE_API_SOURCE_NAME
: ์ญ์ ํ๋ ค๋GoogleApiSource
๋ฆฌ์์ค์ ์ด๋ฆ์ ๋๋ค.
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ํผ์นฉ๋๋ค.
์ฑ๊ณตํ ๊ฒฝ์ฐ ์๋ต ๋ณธ๋ฌธ์ ์๋ก ์์ฑ๋ Operation
์ธ์คํด์ค๊ฐ ํฌํจ๋ฉ๋๋ค.
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata", "createTime": "2024-01-25T17:17:45.782370139Z", "target": "projects/PROJECT_ID/locations/LOCATION/googleApiSources/GOOGLE_API_SOURCE_NAME", "verb": "delete", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
์ญ์ ๋ GoogleApiSource
๋ฆฌ์์ค์ ๋์ผํ Google Cloud ํ๋ก์ ํธ์ Google ์์ค์์ ๋ฐ์ํ๋ ์ด๋ฒคํธ๋ ๋ ์ด์ ์์ง ๋ฐ ๊ฒ์๋์ง ์์ต๋๋ค.